[Bf-committers] Looking into HFSM and blender
Ton Roosendaal
ton at blender.org
Thu Jul 20 22:26:31 CEST 2006
Hi,
I guess you've read the notes about Nodes in the logs?
http://www.blender.org/cms/Blender_2_42.727.0.html
> I was looking into implementing HFSM functionality in blender for my
> master's project similar to Softimage Behavior
> (http://www.softimage.com/products/xsi/pricing_and_packaging/advanced/
> behavior/) since I have played quite a lot with it at a former game
> cie. I am glad that you started work for a Node editor, since I can
> reuse a lot of the node editor for my HFSM editing.
I've only quickly checked on this XSI feature, but it seems to be
script based, allowing the scripts to be visualized as hierarchical
nodes.
> I just wanted to know if someone else had already mentioned in
> performing a similar functionality for blender?
There have been Python scripts coded for it. I've added the
Group-duplicator with NLA option just for this reason too btw. Groups
allow instances quite nicely.
> 1.I need nodes to support dynamic inlet and outlet connections, but I
> saw that node types are staticly declared? How would you go about
> creating dynamic outlets? A good example would be the javascript patch
> in Quartz Composer, whre we could have an equivalent Python node in
> Blender with a dynamic number of inlet depending on the written
> script?
Experiments with Python nodes have been done already, including dynamic
generated ones.
The static definition is for being able to save setups, and keeping
upward/downward compatibility. It's not really static in the sense it
cannot change, but static in sense that you have to be able to
reconstruct saved data into something that works. Or change
functionality in next releases without losing older saved file
functionality.
BTW; Probably Quartz Composer is script based too... which is a
different approach.
> 2.I need sub-nodes. I like the group concept, but I would have liked
> for all nodes to permit to have sub-nodes and hierarchical outlet
> forwarding. I played quite a bit with Quartz Composer and I was
> wondering why you didn't treat all nodes as groups?
I've only really looked at compositing and shader trees, which is quite
static compared to game logic or behaviour trees. That latter I don't
know requirements of really, we don't have design specs for it.
The Node Group was meant to be the library-linkable part for node
trees. So you can share data among files or create custom libraries. In
theory groups can contain groups and so on, but that was a feature I
rather not think of in a first release, the complexity of that code
will be a nightmare (with node tree definitions recursively propagating
around...)
What I saw of XSI's behaviour editor is really not something I'd do
with the current Node editor from scratch... you probably could first
design it entirely script based, as a new Python module. And then use a
Python-Node tree editor to have a more visual editing of the linked
scripts.
That latter idea is what I've discussed with Nathan Letwory, who worked
on Py-node. Not sure where this code is now btw!
With this approach, it probably will be not a showstoper that sub-nodes
only go 1 level deep then. If you want more complex behaviour nodes, a
script can be adjusted as well.
Hope the info helps,
-Ton-
>
> Sorry if these questions are already implemented or answered, but I
> could not find much advanced info on what you are planning to do with
> the Node editor.
>
> Anyways keep up the great job!!!
>
> Thank you,
>
> Paul Gavazzi
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers
>
>
>
------------------------------------------------------------------------
--
Ton Roosendaal Blender Foundation ton at blender.org
http://www.blender.org
More information about the Bf-committers
mailing list