Integrate SmartBody into Ember

Registered by Erik Ogenvik

SmartBody is an advanced and FOSS system for making humanoid bodies in a 3d environment behave in fluid ways.
Basically it allow Ember to have human characters which can perform advanced physical actions, walk and run in natural and smooth ways, pick up arbitrary object and follow other characters with both eyes and head. Amongst many other things.

It's available from http://smartbody.ict.usc.edu/ and already has Ogre integration.

This task would entail integrating the SmartBody system with Ember, and adapt the media so that the humanoid characters in game are controlled through SmartBody.
Dean Bouvier (demarii) has already prepared assets for this occasion.

Changes to the Model format would also have to be made, as it needs to be extended to allow for full usage of the SmartBody system.

Blueprint information

Status:
Not started
Approver:
Erik Ogenvik
Priority:
High
Drafter:
Erik Ogenvik
Direction:
Needs approval
Assignee:
None
Definition:
Approved
Series goal:
None
Implementation:
Not started
Milestone target:
None

Related branches

Sprints

Whiteboard

The plan is for Ember to utilize all of the main features provided the only feature which I believe is not compatible with WorldForge is "Steering" because the server or player is likely to handle this.

Here are some important things to note:
- The goal is for all humanoid skeletons to share one universal Skeleton format.
- Hardware Skinning is being implemented and a "base" 24 bone skeleton has been created for this purpose.
- The base skeleton should provide bones necessary for Locomotion, Reaching, Gazing, Animation Blending, Physics, Constraints, and some Non-verbal.
- To include SmartBody's facial and hand articulation features we need to supply more bones. The plan is that we will only do that for a humanoid creature who is close enough to see this fidelity, at further distances its a waste of animation and simulation processes to articulate the mesh. This would be achieved by swapping out the head and hand (sub)meshes at close range with meshes that are bound to special face and hand skeletons which share a common "root" bone as the base skeleton to maintain alignment. Some early test cases for this have been created.
- Currently the model framework for Ember supports having multiple (sub)mesh be able to be applied and allows for swapping and ordering by groups. For example when you wear boots which are of group "feet" you turn on the boots mesh, and turn off the bare feet mesh. This new case of swapping would need to be handled as a Level Of Detail by distance mechanic.
- The model definition framework only allows for one skeleton, support for the extra Face and Hand skeletons would need to be added.
- It's worth noting that in the past I have discussed the multi-armature idea and desire with the lead developer of SmartBody and he thought that adding the functionality of turning on/off simulation ticks for joints based on LOD was a very good idea, and would be increasingly beneficial for performance. So that might be worth looking into at some point.
- A universal Skeleton, and a Library of animations is being created to allow Artists to more quickly bind their humanoid creatures to skeleton and get them in game animating with minimal work. This video explains the motivations and the process involved: http://www.youtube.com/watch?v=i-jm4Lsbwkk (Please note this is an old video and was made prior to SmartBody being released to public, which has changed some of the overall goals and process, but the overall process and idea is still valid for understanding things from an artists side.)
- Smartbody provides a set of tools built into its viewer which artists and builder types could use to create their own variations or blends for gameplay actions. This removes the need for us to have to develop our own in client editing/blending solution initially.
-Dean

QUESTION
SmartBody provides 3 different methods for interfacing with an application. I think its important in outlining your proposal that you explain what interface method you would use and the decisions for that choice.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.