TecnoFreak: Blend Tree Animation System[1.2 Blendmasks]
- alexdbkim
- Greenskin
- Posts: 130
- Joined: Sat Oct 18, 2008 7:50 am
- Location: Sydney, Australia / Seoul, Korea
- Contact:
-
- Gnoblar
- Posts: 7
- Joined: Sun Oct 26, 2008 10:54 am
I've downloaded the binary package, but it doesn't work on my (old) card.
I've believe it's because that's an hardcoded FSAA=4
Will it be possible to have a version with FSAA=0 (or configurable)?
Thank you for sharing this editor.
I've believe it's because that's an hardcoded FSAA=4
Code: Select all
20:25:11: ***************************************
20:25:11: *** D3D9 : Subsystem Initialised OK ***
20:25:11: ***************************************
20:25:11: D3D9RenderSystem::createRenderWindow "Ogre Window 132846", 0x0 windowed miscParams: FSAA=4 externalWindowHandle=132846
20:25:11: D3D9 : Created D3D9 Rendering Window 'Ogre Window 132846' : 489x438, 32bpp
20:25:11: D3D9 : WARNING - disabling VSync in windowed mode can cause timing issues at lower frame rates, turn VSync on if you observe this problem.
20:25:11: OGRE EXCEPTION(3:RenderingAPIException): Failed to create Direct3D9 Device: Invalid call in D3D9RenderWindow::createD3DResources at ..\src\OgreD3D9RenderWindow.cpp (line 546)
20:25:15: *-*-* OGRE Shutdown
Thank you for sharing this editor.
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
- ahmedali
- Gnome
- Posts: 302
- Joined: Fri Feb 20, 2004 8:52 pm
- Location: Lahore, Pakistan
Man!! this is exactly what I had planned 2 years back but could not manage time and also couldnt spend time to setup a GUI for node & connections. I was mainly working on Node based animation blending, but flatten the heirarchy. I wanted it for an alternative IK and simplifying the inputs to manage animations states.
Cheers to you .
Can it manage the transition of different frequences of animation states like, Walking to Running ?
Cheers to you .
Can it manage the transition of different frequences of animation states like, Walking to Running ?
- sinbad
- OGRE Retired Team Member
- Posts: 19269
- Joined: Sun Oct 06, 2002 11:19 pm
- Location: Guernsey, Channel Islands
- x 66
- Contact:
-
- Gnoblar
- Posts: 7
- Joined: Sun Oct 26, 2008 10:54 am
novaumas wrote:
Thank you! I'm going to download the new version soon!@Flix01: Sorry, my bad.
I just updated the sourceforge package with a new version of the editor that has a file called viewport.xml where you can set the FSAA level ( default is still 4 ).
Hope you are able to try it out now Very Happy
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
Thanks! It means a lot . My wish here is that people have complete freedom on how they use it in their projects.Fantastic work, and thanks for releasing it openly.
I assume you are referring to blending walking and running animations to make something like jogging, and vary the amount at which the character is running: from walking to different amounts of jogging to running.Can it manage the transition of different frequences of animation states like, Walking to Running ?
If so, yes, you can, ( with a BlendNode ) but you must take some small details into account.
With the current version (r30):
- You'll need a Parameter that controls the amount of blending between the 'walk' animation and the 'run' animation. This parameter is what you'd modify in your game to tell how much the character is running.
- 'walk' and 'run' animations must have the same length, and be synchronized.
- You can complicate it a little bit more and make it look nicer by making the 'walk' and 'run' animation speed dependent on the 'run amount' parameter that controls the blending.
That's all there is to it. You can build this simple tree in the editor, and tweak there the values to see how it'll look in our application.
And of course, if there is a functionality you need that isn't there, you can always write your own nodes... it's very easy!
- Lee04
- Minaton
- Posts: 945
- Joined: Mon Jul 05, 2004 4:06 pm
- Location: Sweden
- x 1
Vista 64 the editor dosn't start at all.
Vista 64 the editor dosn't start at all.
No clues are given to what caused it.
Yes you would say Vista 64 bits right?
Hmmm.
Has someone tried this editor with Vista 32 or 64 and had it running?
Cheers
Lee
No clues are given to what caused it.
Yes you would say Vista 64 bits right?
Hmmm.
Has someone tried this editor with Vista 32 or 64 and had it running?
Cheers
Lee
Ph.D. student in game development
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
- Lee04
- Minaton
- Posts: 945
- Joined: Mon Jul 05, 2004 4:06 pm
- Location: Sweden
- x 1
-
- Kobold
- Posts: 25
- Joined: Tue Mar 07, 2006 6:24 pm
- Contact:
Take a look at thisnovaumas wrote: It's a custom control.
I did look hard for something that did what I needed, and the most similar thing I found was a lib called SchematicControl ( I haven't found links to download it anymore though ).
I didn't like the usability of it from an end user perspective, but it esthetically matched what I needed. I looked at how he did it and rolled my own control. I basically involves overriding the mouse functions and writing your own paint routine.
If anyone finds a good library ( and free ) to do this kind of stuff as a C# control, I'm also very interested.
http://www.codeproject.com/KB/WPF/WPFDi ... Part1.aspx
http://www.codeproject.com/KB/WPF/WPFDi ... Part2.aspx
http://www.codeproject.com/KB/WPF/WPFDi ... Part3.aspx
http://www.codeproject.com/KB/WPF/WPFDi ... Part4.aspx
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
I don't think it justifies opening a new thread, as it isn't Ogre related, but I've received enough requests to know that it might be of interest to people here.
I have released an improved version of the diagram node .NET control I made so that anyone can use it in their own applications.
Here is the link to the sourceforge project.
I must be honest though, I don't know how much maintenance time I'll be able to dedicate to it ( if at all ), as Monday I'm starting on my first job ( yay! ) and they have a non compete clause I intend to respect. This is in fact why I've decided to release it as it is. Don't get me wrong here either, it's quite usable right now as it is.
It does need improvements, and there are many rough edges I wish I had time to take care of, but at the moment it will have to wait. I do have a friend who will be taking up development while I'm gone.
I hope it will be useful to you guys!
I have released an improved version of the diagram node .NET control I made so that anyone can use it in their own applications.
Here is the link to the sourceforge project.
I must be honest though, I don't know how much maintenance time I'll be able to dedicate to it ( if at all ), as Monday I'm starting on my first job ( yay! ) and they have a non compete clause I intend to respect. This is in fact why I've decided to release it as it is. Don't get me wrong here either, it's quite usable right now as it is.
It does need improvements, and there are many rough edges I wish I had time to take care of, but at the moment it will have to wait. I do have a friend who will be taking up development while I'm gone.
I hope it will be useful to you guys!
- jacmoe
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
Wow - that looks awesome!
Funny coincidence!
It's only two hours ago that I searched for the wxWidgets port of your excellent node controls. And found it.
I just wish I needed a .NET version.
<edit>
And congratulations on your new job!
</edit>
Funny coincidence!
It's only two hours ago that I searched for the wxWidgets port of your excellent node controls. And found it.
I just wish I needed a .NET version.
<edit>
And congratulations on your new job!
</edit>
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
That's interesting, I'm in the middle of creating this for my editor. Do you have a link?It's only two hours ago that I searched for the wxWidgets port of your excellent node controls. And found it.
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
- jacmoe
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
Sure: It's junkyardcode @ google.
http://code.google.com/p/junkyardcode/
Here's it's Ogre forum topic:
http://www.ogre3d.org/forums/viewtopic.php?t=45305
Kudos to Eber for porting it.
http://code.google.com/p/junkyardcode/
Here's it's Ogre forum topic:
http://www.ogre3d.org/forums/viewtopic.php?t=45305
Kudos to Eber for porting it.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
-
- Gnome
- Posts: 334
- Joined: Thu Jun 28, 2007 2:12 pm
- Location: Brazil
- x 5
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
hello, where is the animation runtime parser?
-
- Gnome
- Posts: 334
- Joined: Wed Aug 02, 2006 9:27 am
- Location: Toronto, Canada
Re: TecnoFreak: Blend Tree Animation System and Editor
Looks excellent. I can't use it as-is because I separate I use "collection" of .skeleton files vs. a single .skeleton file...
- aguru
- Goblin
- Posts: 236
- Joined: Tue Feb 26, 2008 5:48 pm
- x 3
Re: TecnoFreak: Blend Tree Animation System and Editor
you can find the code in the svn: http://tecnofreakanima.svn.sourceforge. ... ima/trunk/dudeabot wrote:hello, where is the animation runtime parser?
-
- Gnome
- Posts: 334
- Joined: Thu Jun 28, 2007 2:12 pm
- Location: Brazil
- x 5
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
thanks!aguru wrote:you can find the code in the svn: http://tecnofreakanima.svn.sourceforge. ... ima/trunk/dudeabot wrote:hello, where is the animation runtime parser?
very handy tool!
i have one doubt, how the trigger system works, for example?
Code: Select all
<animation_info>
<name>Jump_Post</name>
<loop>false</loop>
<trigger_info_list>
<trigger_info>
<name>jump_end</name>
<time>-0.15</time>
<time_type>absolute</time_type>
</trigger_info>
</trigger_info_list>
</animation_info>
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
The trigger system is a bit undocummented and I'm not entirely happy with how I designed it. Anyway, it's an optional feature to use, so you're actually free to ignore it completely, but I'll try to shed some light on it.
The first important thing to know is that triggers are identified by name. In code, you can subscribe to specific triggers using the name you've given them in the xml file.
The time can be absolute or relative:
Absolute means time in seconds from the animation start point. So, for example, if we have absolute time of 0.15, it means after 0.15 seconds the animation starts playing, the trigger will be activated. If a negative value is used, then time is counted since the animation end. Therefore, an absolute value of -0.15 would be 0.15 seconds before the animation ends.
Relative time is measured from 0 to 1. 0 means the animation start, and 1 the animation end. For example, a relative time of 0.5 would activate the trigger when the animation is at the middle.
Internally, absolute times are converted to relative times.
Anyway, if any more questions arise, ask away and I'll try to help out... I try to check the forums here as often as I can.
The first important thing to know is that triggers are identified by name. In code, you can subscribe to specific triggers using the name you've given them in the xml file.
The time can be absolute or relative:
Absolute means time in seconds from the animation start point. So, for example, if we have absolute time of 0.15, it means after 0.15 seconds the animation starts playing, the trigger will be activated. If a negative value is used, then time is counted since the animation end. Therefore, an absolute value of -0.15 would be 0.15 seconds before the animation ends.
Relative time is measured from 0 to 1. 0 means the animation start, and 1 the animation end. For example, a relative time of 0.5 would activate the trigger when the animation is at the middle.
Internally, absolute times are converted to relative times.
Anyway, if any more questions arise, ask away and I'll try to help out... I try to check the forums here as often as I can.
-
- Gnome
- Posts: 334
- Joined: Thu Jun 28, 2007 2:12 pm
- Location: Brazil
- x 5
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
thanks novauma, that helped a lot =)
-
- Gnome
- Posts: 334
- Joined: Thu Jun 28, 2007 2:12 pm
- Location: Brazil
- x 5
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
i win
this tool is what we needed =D
btw, i ve lost one file, that wouldnt load anymore, at least i had a backup of a not so old working one
heres the one with problems:
this tool is what we needed =D
btw, i ve lost one file, that wouldnt load anymore, at least i had a backup of a not so old working one
heres the one with problems:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<diagram>
<properties>
<Size xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Width>1024</Width>
<Height>1024</Height>
</Size>
</properties>
<node_list>
<node id="0" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>389</X>
<Y>334</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="1" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>390</X>
<Y>254</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="2" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>390</X>
<Y>176</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="3" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>388</X>
<Y>106</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="4" name="WalkForward" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>166</X>
<Y>11</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="5" name="ArmL_Walk" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>180</X>
<Y>70</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="6" name="Parameter : Speed" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.ParameterNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>15</X>
<Y>58</Y>
</Point>
</position>
<custom parameter="Speed" />
<port_list>
<in_port_list />
<out_port_list>
<port name="value" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="7" name="ArmR_Walk" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>95</X>
<Y>141</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="8" name="Mix" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.MixNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>261</X>
<Y>129</Y>
</Point>
</position>
<custom number_of_mix_in_ports="2" />
<port_list>
<in_port_list>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="9" name="WalkRight" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>99</X>
<Y>205</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="10" name="WalkLeft" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>97</X>
<Y>269</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="11" name="WalkBackwards" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>93</X>
<Y>328</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="12" name="Jump" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>92</X>
<Y>385</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="13" name="ArmL_WalkBackwards" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>91</X>
<Y>450</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="14" name="ArmR_WalkBackwards" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>86</X>
<Y>514</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="15" name="Land" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>79</X>
<Y>571</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="16" name="IdleLook" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>74</X>
<Y>633</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="17" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>275</X>
<Y>529</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="18" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>266</X>
<Y>597</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="19" name="Parameter : currentAnimation" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.ParameterNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>451</X>
<Y>35</Y>
</Point>
</position>
<custom parameter="currentAnimation" />
<port_list>
<in_port_list />
<out_port_list>
<port name="value" value="0">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="20" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>336</X>
<Y>431</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="0.5">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="21" name="Mix" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.MixNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>263</X>
<Y>370</Y>
</Point>
</position>
<custom number_of_mix_in_ports="2" />
<port_list>
<in_port_list>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="22" name="PokeLong" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>413</X>
<Y>593</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="23" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>566</X>
<Y>677</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="24" name="Windmilling" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>404</X>
<Y>756</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="25" name="Land" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>256</X>
<Y>735</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="26" name="Jump" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>221</X>
<Y>670</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="27" name="Blend" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.BlendNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>302</X>
<Y>824</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="weight" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="in0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="in1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="28" name="Parameter : fallSpeed" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.ParameterNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>28</X>
<Y>737</Y>
</Point>
</position>
<custom parameter="fallSpeed" />
<port_list>
<in_port_list />
<out_port_list>
<port name="value" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="29" name="Transition : Select" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.TransitionSelectNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>702</X>
<Y>321</Y>
</Point>
</position>
<custom number_of_animation_in_ports="12" />
<port_list>
<in_port_list>
<port name="select" value="11">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="time in" value="0.2">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="time out" value="0.2">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="animation 0">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 1">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 2">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 3">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 4">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 5">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 6">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 7">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 8">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 9">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 10">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="animation 11">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="30" name="Output" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.OutputNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>911</X>
<Y>300</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="in">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list />
</port_list>
</node>
<node id="31" name="AimUp" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>759</X>
<Y>861</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="32" name="LookAt" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.LookAtNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>720</X>
<Y>821</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="horizontal_amount" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="vertical_amount" value="0.925">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="left">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="right">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="up">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
<port name="down">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="33" name="SmoothValue" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.SmoothValueNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>373</X>
<Y>899</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="value" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="smooth_time" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="34" name="AimUp" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>555</X>
<Y>841</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="35" name="AimDown" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.AnimationNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>565</X>
<Y>934</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="speed" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Animation</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
<node id="36" name="SmoothValue" type="TecnoFreak.v2.Model.AnimationEngine.Nodes.SmoothValueNode">
<position>
<Point xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<X>374</X>
<Y>957</Y>
</Point>
</position>
<custom />
<port_list>
<in_port_list>
<port name="value" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
<port name="smooth_time" value="1">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</in_port_list>
<out_port_list>
<port name="out">
<user_data>
<PortDataType>Number</PortDataType>
</user_data>
</port>
</out_port_list>
</port_list>
</node>
</node_list>
<connection_list>
<connection node_from="0" port_from="in0" node_to="21" port_to="out" />
<connection node_from="0" port_from="in1" node_to="11" port_to="out" />
<connection node_from="1" port_from="in0" node_to="8" port_to="out" />
<connection node_from="1" port_from="in1" node_to="10" port_to="out" />
<connection node_from="2" port_from="in0" node_to="8" port_to="out" />
<connection node_from="2" port_from="in1" node_to="9" port_to="out" />
<connection node_from="3" port_from="in0" node_to="4" port_to="out" />
<connection node_from="3" port_from="in1" node_to="8" port_to="out" />
<connection node_from="4" port_from="speed" node_to="6" port_to="value" />
<connection node_from="5" port_from="speed" node_to="6" port_to="value" />
<connection node_from="7" port_from="speed" node_to="6" port_to="value" />
<connection node_from="8" port_from="in0" node_to="5" port_to="out" />
<connection node_from="8" port_from="in1" node_to="7" port_to="out" />
<connection node_from="17" port_from="in1" node_to="16" port_to="out" />
<connection node_from="18" port_from="in1" node_to="15" port_to="out" />
<connection node_from="20" port_from="in1" node_to="12" port_to="out" />
<connection node_from="21" port_from="in0" node_to="13" port_to="out" />
<connection node_from="21" port_from="in1" node_to="14" port_to="out" />
<connection node_from="23" port_from="weight" node_to="28" port_to="value" />
<connection node_from="23" port_from="in0" node_to="24" port_to="out" />
<connection node_from="27" port_from="weight" node_to="28" port_to="value" />
<connection node_from="27" port_from="in0" node_to="25" port_to="out" />
<connection node_from="29" port_from="animation 0" node_to="3" port_to="out" />
<connection node_from="29" port_from="animation 1" node_to="2" port_to="out" />
<connection node_from="29" port_from="animation 2" node_to="1" port_to="out" />
<connection node_from="29" port_from="animation 3" node_to="0" port_to="out" />
<connection node_from="29" port_from="animation 4" node_to="20" port_to="out" />
<connection node_from="29" port_from="animation 5" node_to="18" port_to="out" />
<connection node_from="29" port_from="animation 6" node_to="17" port_to="out" />
<connection node_from="29" port_from="animation 7" node_to="26" port_to="out" />
<connection node_from="29" port_from="animation 8" node_to="27" port_to="out" />
<connection node_from="29" port_from="animation 9" node_to="22" port_to="out" />
<connection node_from="29" port_from="animation 10" node_to="23" port_to="out" />
<connection node_from="29" port_from="animation 11" node_to="32" port_to="out" />
<connection node_from="30" port_from="in" node_to="29" port_to="out" />
<connection node_from="32" port_from="up" node_to="34" port_to="out" />
<connection node_from="32" port_from="down" node_to="35" port_to="out" />
<connection node_from="34" port_from="speed" node_to="33" port_to="out" />
<connection node_from="35" port_from="speed" node_to="36" port_to="out" />
</connection_list>
</diagram>
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
Thanks for taking the time to report the problem, I've uploaded a new version of the editor to the sourceforge project page that attempts to solve it. With this new version ( 1.0.3440 ) I was able to load your file. If you have some time to try it out let me know if it works fine.
I'm happy that you like the tool, right now it's ( very slowly ) in process of improvement and eventual opensource release
I'm happy that you like the tool, right now it's ( very slowly ) in process of improvement and eventual opensource release
- aguru
- Goblin
- Posts: 236
- Joined: Tue Feb 26, 2008 5:48 pm
- x 3
Re: TecnoFreak: Blend Tree Animation System and Editor
That's great news! Btw did you see the Ogitor editor? It's rapidly progressing. Once open-sourced I think the Blend Tree Animation System would be an awesome plugin for Ogitor.... well first things first I guessnovaumas wrote:(...) right now it's ( very slowly ) in process of improvement and eventual opensource release
- novaumas
- Greenskin
- Posts: 107
- Joined: Mon Jan 21, 2008 9:44 am
- Location: Barcelona
- x 4
- Contact:
Re: TecnoFreak: Blend Tree Animation System and Editor
Didn't know about the Ogitor project.. I guess I've been pretty disconnected from what's going on here lately. It seems like it can be a very useful project !
The animation tree editor is written in C# so it may take some effort to get it ported to C++ and integrate it as a plugin though.
The animation tree editor is written in C# so it may take some effort to get it ported to C++ and integrate it as a plugin though.