Download

Integrating SmartBody with UE4

Hello everyone,

I am trying to integrate SmartBody(SB in short) With UE4. This topic has been discussed before but no solution. SB is a character animation platform originally developed at the USC Institute for Creative Technologies. It provides locomotion, steering, object manipulation, lip syncing, gazing, nonverbal behavior and retargeting in real time.

Here it is:
http://smartbody.ict.usc.edu/

In SB documentation there are some suggested integration techniques, and I prefer to achieve the integration with C++ programming:

*"The main C++ API allows you to have access to most of SmartBody’s internal structures, and are generally located in the /sb/ directory. There is also a simplified interface that can be used with C or C++ (located in smartbody-dll/include). In addition, there is a Python API which is nearly identical to the C++ API (generated from Boost-Python) which can be used to control the entire simulation, to set up the scene, or to run snippets of code during runtime.

The following pages describe the C++, C, Python and BoneBus interfaces. One strategy for integrating SmartBody into a game or simulation is to run chave SmartBody indicate when the character’s are created and to response to those events. Then, the run the SmartBody ento create a proxy character in your own engine or simulation based on the function of the SmartBody engine and to have that character’s state be controlled by a corresponding SmartBody character:

1.In your engine/simulation, create a character. Simultaneously, create a SmartBody character in the SmartBody context with the same name.

2.Implement the SBSceneListener interface which handles character creation/deletion and modification of SmartBody characters, and perform the equivalent actions in your engine/simulation.

3.Send SmartBody commands to control the character and change the scene every frame as needed.

4.Query SmartBody every frame to obtain the character state, and change the engine/simulation character’s state to match it"*

Seems that you need to implement such an interface:

捕获.PNG

I think the integration must be very cool. I am not familiar with the source code of the engine but I suppose the chief difficulty is to do the character animation, to perform the actions of characters using C++ code only(no buleprint)?

In each step, advance SmartBody, then copy over the SmartBody character state to the Unreal character state