TecnoFreak: Blend Tree Animation System[1.2 Blendmasks]

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
novaumas
Greenskin
Posts: 107
Joined: Mon Jan 21, 2008 9:44 am
Location: Barcelona
x 4
Contact:

TecnoFreak: Blend Tree Animation System[1.2 Blendmasks]

Post by novaumas »

TecnoFreak Animation System

Sourceforge project page

I recently posted about The Teddy Incident game and said I'd create a new one to talk about the animation system.

Mandatory screenshots follow :D
( click for larger images )

Image

Image

This project focuses on providing a higher level of control over animation on what currently is offered by Ogre.

It has two parts, a runtime, and an editor.

The runtime has the job of updating the animation trees and gives access to parameters to change the behaviour of the tree. All control of the animation tree is done through a simple parameter interface.

The editor is used to create the files that the runtime uses.

The main objective is moving the responsibilities of controlling animations away from the programmer as much as possible, and handing them to an artist or technical artist. This way, the artist will have more control over the final result and has a quick way of seeing how his animations will display and transition in the game, and toy with it to get better visual results much more quickly.

The animation runtime source code is available in the sourceforge svn. Here is the project page.

The editor can also be downloaded from sourceforge, although source code for it isn't there.

Here is a video showing the editor in action, it's actually the best way to see what this project is all about.

Image

For more information on animation blend trees, this is the article that inspired the project.

I've also talked a little about the animation system on my blog, so it may be of interest.
Last edited by novaumas on Sat Dec 04, 2010 8:22 pm, edited 3 times in total.
Vectrex
Ogre Magi
Posts: 1266
Joined: Tue Aug 12, 2003 1:53 am
Location: Melbourne, Australia
x 1
Contact:

Post by Vectrex »

that's really cool and useful. With ogre 1.6's blend masking added it'll be a great tool.
eber
Halfling
Posts: 42
Joined: Sun Mar 09, 2008 2:54 am
Location: Southern California
Contact:

Post by eber »

Looks great! Almost like a lite version of Morpheme from Natural Motion.

All the gui is C# right? How do you get that type of work area, with boxes and connections between them etc? Do you, or anyone else for that matter, know if you can do something similar with wxWidgets?

Again, the editor looks great and i'm loving the art direction. Good stuff!
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

eber wrote:Looks great! Almost like a lite version of Morpheme from Natural Motion.

All the gui is C# right? How do you get that type of work area, with boxes and connections between them etc? Do you, or anyone else for that matter, know if you can do something similar with wxWidgets?
I second that question, the graph widget looks great. Is it custom made or a bought component, if not part of the GUI toolkit originally?
User avatar
TheSpaceMan
Gremlin
Posts: 151
Joined: Tue Jan 23, 2007 3:44 am
Contact:

Post by TheSpaceMan »

Yeah i like it, you make it actualy look fun to make tools.
Using:
Ogre3D v1.4.9,
OIS,
Physx v2.8.1,
Personal Physx<->Ogre3D Bindings,
FMOD.
Goal: Current day Retro Engine.
Keywords: Dynamic Terrain, Lowpoly, Engine, Nostalgia
Visit my Blog: http://spacedev.wordpress.com
User avatar
novaumas
Greenskin
Posts: 107
Joined: Mon Jan 21, 2008 9:44 am
Location: Barcelona
x 4
Contact:

Post by novaumas »

With ogre 1.6's blend masking added it'll be a great tool
Definitely. It's currently built for 1.4, but adding blend masking has been on the todo list since I saw the patch for the feature. I haven't downloaded Ogre 1.6 yet, but will do soon.
How do you get that type of work area, with boxes and connections between them etc?
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.
you make it actualy look fun to make tools
:lol: Building tools is fun!
eber
Halfling
Posts: 42
Joined: Sun Mar 09, 2008 2:54 am
Location: Southern California
Contact:

Post by eber »

Strange that that kind of widget/control hasn't been made available by anyone. Especially for the open gui/libs. I might have to try making a custom widget type for wxWidgets similar to this.

Thanks for the reply, keep up the good work :]
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

Could you make at least the source of this control public? It's not, that I wouldn't know how to do such, but having a working implementation makes the design of the programming interface much more easier Your solution looks *very* polished, especially with the subcontrols in it - havn't seen such in that flavour before... Great work!
User avatar
Nauk
Gnoll
Posts: 653
Joined: Thu May 11, 2006 9:12 pm
Location: Bavaria
x 36
Contact:

Post by Nauk »

Building tools is fun!
So is :) Excellent job!
User avatar
novaumas
Greenskin
Posts: 107
Joined: Mon Jan 21, 2008 9:44 am
Location: Barcelona
x 4
Contact:

Post by novaumas »

Thanks :)
Strange that that kind of widget/control hasn't been made available by anyone
It also perplexed me... I haven't looked for some time for such a control though, so it may actually exist.

On opening the editor source code for the editor: It will eventually happen, but not for the current version. I will keep it up to date with the development version of the runtime.

On opening the source code for the diagram controls: In case I did ( and I'll probably will :) ), I'd like to make sure that additions to the controls would be also released back for public use. I'm not very knowledgeable about open source licenses, so I'll have a look around. Suggestions welcome of course.
User avatar
Kentamanos
Minaton
Posts: 980
Joined: Sat Aug 07, 2004 12:08 am
Location: Dallas, TX

Post by Kentamanos »

Nice work! :)
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

novaumas wrote: On opening the source code for the diagram controls: In case I did ( and I'll probably will :) ), I'd like to make sure that additions to the controls would be also released back for public use. I'm not very knowledgeable about open source licenses, so I'll have a look around. Suggestions welcome of course.
Don't get me wrong, I don't intend to use your control directly, I would like to do something similar for wxWidgets. Maybe you could be so nice to mail me the sources of the control, I really only want to look *how* you did it, as it really impresses me (Which is definitly not easy...) - even the header would suffice me.
Too, it would be really great if you would make your control open source. There is a real lack of certain controls and anything that can close these gaps is a win for everyone. E.g., I'm currently working on a NLE control for wxWidgets, as there is nothing for any GUI library I would be aware of.
ppClarity
Gremlin
Posts: 194
Joined: Sat Sep 02, 2006 12:27 am
x 2

Post by ppClarity »

novaumas wrote:On opening the source code for the diagram controls: In case I did ( and I'll probably will :) ), I'd like to make sure that additions to the controls would be also released back for public use. I'm not very knowledgeable about open source licenses, so I'll have a look around. Suggestions welcome of course.
I have all sorts of uses for a node control and would love to have a wxWidgets version.

If you're looking for a license with commit-back, it's hard to go wrong with LGPL 2. I am somewhat leery of 3 as that strays into areas that potentially make it far less useful in a professional project. I'd also check to see what kind of license wxWidgets use.

Qt is dual licensed: GPL or paid. That requires you to either GPL your project or pay for a license. I personally avoid them because of that.
ppClarity
Gremlin
Posts: 194
Joined: Sat Sep 02, 2006 12:27 am
x 2

Post by ppClarity »

SunSailor wrote:I really only want to look *how* you did it, as it really impresses me (Which is definitly not easy...) - even the header would suffice me.
Blender has had a node editor for a few versions now.
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

ppClarity wrote:
SunSailor wrote:I really only want to look *how* you did it, as it really impresses me (Which is definitly not easy...) - even the header would suffice me.
Blender has had a node editor for a few versions now.
Besides that nobody really wants to look into the blender sources, it ain't a common usable GUI widget, this one seems to. Its the API I'm interested in, as such controls are wide spreaded, but commonly application specific.
User avatar
xadhoom
Minaton
Posts: 973
Joined: Fri Dec 28, 2007 4:35 pm
Location: Germany
x 1

Post by xadhoom »

Fantastic work novaumas!
User avatar
novaumas
Greenskin
Posts: 107
Joined: Mon Jan 21, 2008 9:44 am
Location: Barcelona
x 4
Contact:

Post by novaumas »

@SunSailor: Thank you for your interest, and please don't take this the wrong way, but when I release the source for the controls I'll do so for everyone.
It's not like the API is that great. You'd probably get better ideas from something like this.

@ppClarity: LGPL seems a reasonable way to go. I'm not too fond either of GPL and have a tendency to avoid it all together.
I also don't like the Qt way much, GPL or paid... It seems a little bit like extortion. The Ogre dual license makes much more sense to me.
I'll have to set aside a moment to carefully read the LGPL.
eber
Halfling
Posts: 42
Joined: Sun Mar 09, 2008 2:54 am
Location: Southern California
Contact:

Post by eber »

Not to detract from this thread, but I was tinkering with wxWidgets last night and I added a very basic version of node connections. There are some focus bugs (when the mouse leaves the work area etc) and it flickers a bit because it I do too many refreshes per-draw, but it wasn't as hard as I thought.

Right now you can create 'port' types (float, int, whatever) and have them link to compatible ports. You can also have normal widgets/controls within the nodes because it's a plain wxWindow...Hurray!

What's in:
- Node creation
- Adding ports to nodes
- Custom port drawing

What's missing:
- work area pan/scroll
- pretty graphics (I want icon support amongst other eye-candy features)
- node auto-resize when additional controls/ports are added
- any type of serialization...not sure if I care about this actually...

What's nasty:
- drawing is buggy
- there is no memory handling (leaks like a sieve no doubt)
- it looks like ass (can't get transparencies working correctly)
- it's rather cpu intensive...I think (only when effecting nodes/connections)

When it's clean/stable enough I'll stick it up somewhere for all to test and play around with. I'll also post it in a separate thread *sry*
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

Very offtopic, but very appreciated, too ;). Please, keep me informed, maybe we can join forces. Simply drop me a PM for contact, we could exchange mail adresses then.
User avatar
alexdbkim
Greenskin
Posts: 130
Joined: Sat Oct 18, 2008 7:50 am
Location: Sydney, Australia / Seoul, Korea
Contact:

Post by alexdbkim »

Looking very nice. =) I wonder how you made that tree control thing. Did you use some GUI library? or did you create it by your self?

cheers,
Alexander Dong Back Kim - ê¹€ë
User avatar
SunSailor
Gnoll
Posts: 699
Joined: Sun Jan 02, 2005 5:45 pm
Location: Velbert, Germany
x 2
Contact:

Post by SunSailor »

Sorry, maybe I missed something, but what's so special about the tree control? Looks to me like a standard tree control available in every recent GUI toolkit... Even .net ;).
User avatar
alexdbkim
Greenskin
Posts: 130
Joined: Sat Oct 18, 2008 7:50 am
Location: Sydney, Australia / Seoul, Korea
Contact:

Post by alexdbkim »

SunSailor wrote:Sorry, maybe I missed something, but what's so special about the tree control? Looks to me like a standard tree control available in every recent GUI toolkit... Even .net ;).
:) I didn't mean the normal tree control but the one shows linkages between elements in the middle of the screen shorts. It is looking cool =)

cheers,
Alexander Dong Back Kim - ê¹€ë
User avatar
alexdbkim
Greenskin
Posts: 130
Joined: Sat Oct 18, 2008 7:50 am
Location: Sydney, Australia / Seoul, Korea
Contact:

Post by alexdbkim »

SunSailor wrote:
eber wrote:Looks great! Almost like a lite version of Morpheme from Natural Motion.

All the gui is C# right? How do you get that type of work area, with boxes and connections between them etc? Do you, or anyone else for that matter, know if you can do something similar with wxWidgets?
I second that question, the graph widget looks great. Is it custom made or a bought component, if not part of the GUI toolkit originally?
oh You called it "the graph widget" =) and you did the same question already =)

sorry I should've read the entire thread first.

cheers,
Alexander Dong Back Kim - ê¹€ë
User avatar
SpannerMan
Gold Sponsor
Gold Sponsor
Posts: 446
Joined: Fri May 02, 2003 10:05 am
Location: UK
Contact:

Post by SpannerMan »

Hey novaumas, this animation tool looks excellant! Releasing this system (the runtime and the editor) to the public would be a very much appreciated!
User avatar
novaumas
Greenskin
Posts: 107
Joined: Mon Jan 21, 2008 9:44 am
Location: Barcelona
x 4
Contact:

Post by novaumas »

I've added a more clear link to first post in the thread to the sourceforge project page. The runtime source code is in the SVN there, and the editor is available as a download.

I think the bandwith for googlepages has been exceeded and images don't show up any more :(... Anyone know of somewhere more reliable to host them?

@eber: Nice to see someone working on a component like this. I'm working on an cleaner version of mine. If you want to discuss anything about it PM me and I'll be more than happy to help out with what I can.
Post Reply