University of Southern CaliforniaUSC
USC ICT TwitterUSC ICT FacebookUSC ICT YouTube

Adding ChrRachel to Ogre | General SmartBody Discussion | Forum

Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Adding ChrRachel to Ogre
May 16, 2014
8:08 am
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

I have tried two methods to convert the COLLADA file of ChrRachel to Ogre mesh, material, and skeleton but unsuccessfully.

I tried using Maya with the ogre exporter and ogreassimp ( https://bitbucket.org/jacmoe/ogreassimp ) and both give the same results. In ogreviewer, the hair is misaligned and the character remains in T-Pose which makes me think that there is something wrong with the skeleton or the animations...

The existing ChrBrad (not Brad) loads in ogreviewer however the face looks messed up (perhaps due to a face-bone mislabeling in the ogre .skeleton?)

My question is, has anyone successfully used a .dae in ogreviewer either by converting to ogre formats or using a COLLADA plugin?

What does sbgui use for rendering the .dae?

 

Thank you!

May 16, 2014
4:46 pm
Avatar
Member
Members
Forum Posts: 47
Member Since:
March 1, 2014
sp_UserOfflineSmall Offline

Hi Marios,

In my understanding, the sbgui renders the morphs which are of .skm format. You can find these files with smartbody itself. There is FbxToSbConverter.exe which can convert the .fbx files into .skm files. SBGUI can render these .skm files easily. While SBGUI has the potential to render the .dae and .fbx files itself, it will be more easier if you can get the corresponding .skm files.

 

Thanks.

May 16, 2014
7:42 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Loading up Rachel via her COLLADA file in Maya does show her hair rotated 90 degress the wrong way.

You can fix this by:

* opening the outliner, selecting ChrFemaleWriter_Hair (under SklRef/CharacterRoot/Mesh/SkinnedMesh/MeshRef) going to the Transform Attributes section of the Attribute Editor, right click to unlock the y-transform, then set it to zero (instead of -90). Do this for and ChrFemaleWriter_Hair1 and the hair should be aligned properly.

 

Which Ogre exporter are you using? Rachel has a total of 4 texture files, so you'd need an exporter that can accommodate that.

 

Ari

May 19, 2014
9:36 am
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

Hello Ari,

I have used the ogremax exporter for maya (I am using maya 2014) but the textures are not loading from ogreviewer and the character remains in the T-Pose with the hair rotated. I could attribute this to not having the commercial version of ogremax which limits the number of textures and animations...

I have also used ogreassimp which works with the textures (although some colors are a bit off) but the character remains in the T-Pose (with the hair rotated)

I got Maya 2013 now so I can use another exporter. The textures look perfect, the hair is in the correct position but the normals seem to be switched (when looking around in ogreviewer parts of the hair are no visible). The character remains in the T-Pose.

Regarding the hair: when I import the COLLADA in Maya 2014, the hair is not rotated in any way... The rotation in the attributes is already 0.

May 19, 2014
2:57 pm
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

I looked at the smartbody.log that is produced when running ogreviewer and I see the following error at the end:

 

Face neutral motion is now 'ChrRachel@face_neutral'.

Character ChrRachel will use FAC 45 left and right to control blinking.
outDir = ../../../../data/retarget/motion/ChrRachel.sk/
Traceback (most recent call last):

File "<string>", line 1, in <module>

File "../../../../data/sbm-common/scripts/ChrRachel.py", line 156, in <module>

retargetCharacter("ChrRachel", "ChrRachel.sk")

File "../../../../data/sbm-common/scripts/motion-retarget.py", line 365, in retargetCharacter

retargetSetup(targetSkelName) # make sure all retargeted motions are already created

File "../../../../data/sbm-common/scripts/motion-retarget.py", line 342, in retargetSetup

if not os.path.exists(outDir):

NameError
:
global name 'os' is not defined

 

Perhaps this is what is causing the character to remain in T-Pose.

May 19, 2014
8:03 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Try using the following script (I copied it from the examples/AddCharacterDemo.py, replaced 'Brad' with 'Rachel' and eliminated any camera commands):

 

print "|--------------------------------------------|"
print "|         Starting Character Demo            |"
print "|--------------------------------------------|"

# Add asset paths
scene.addAssetPath('mesh', 'mesh')
#scene.addAssetPath('mesh', 'retarget/mesh')
scene.addAssetPath('motion', 'ChrRachel')
#scene.addAssetPath('motion', 'sbm-common/common-sk')
scene.addAssetPath("script", "behaviorsets")
scene.addAssetPath('script', 'scripts')
scene.loadAssets()

# Set scene parameters and camera
print 'Configuring scene parameters and camera'
scene.setScale(1.0)
scene.setBoolAttribute('internalAudio', True)
'''
scene.run('default-viewer.py')

camera = getCamera()
camera.setEye(0, 1.71, 1.86)
camera.setCenter(0, 1, 0.01)
camera.setUpVector(SrVec(0, 1, 0))
camera.setScale(1)
camera.setFov(1.0472)
camera.setFarPlane(100)
camera.setNearPlane(0.1)
camera.setAspectRatio(0.966897)
cameraPos = SrVec(0, 1.6, 10)
scene.getPawn('camera').setPosition(cameraPos)
'''
# Set up joint map for Rachel
print 'Setting up joint map and configuring Rachel\'s skeleton'
scene.run('zebra2-map.py')
zebra2Map = scene.getJointMapManager().getJointMap('zebra2')
RachelSkeleton = scene.getSkeleton('ChrRachel.sk')
zebra2Map.applySkeleton(RachelSkeleton)
zebra2Map.applyMotionRecurse('ChrRachel')

# Establish lip syncing data set
print 'Establishing lip syncing data set'
scene.run('init-diphoneDefault.py')

# Set up face definition
print 'Setting up face definition'
# Rachel's face definition
RachelFace = scene.createFaceDefinition('ChrRachel')
RachelFace.setFaceNeutral('ChrRachel@face_neutral')
RachelFace.setAU(1,  "left",  "ChrRachel@001_inner_brow_raiser_lf")
RachelFace.setAU(1,  "right", "ChrRachel@001_inner_brow_raiser_rt")
RachelFace.setAU(2,  "left",  "ChrRachel@002_outer_brow_raiser_lf")
RachelFace.setAU(2,  "right", "ChrRachel@002_outer_brow_raiser_rt")
RachelFace.setAU(4,  "left",  "ChrRachel@004_brow_lowerer_lf")
RachelFace.setAU(4,  "right", "ChrRachel@004_brow_lowerer_rt")
RachelFace.setAU(5,  "both",  "ChrRachel@005_upper_lid_raiser")
RachelFace.setAU(6,  "both",  "ChrRachel@006_cheek_raiser")
RachelFace.setAU(7,  "both",  "ChrRachel@007_lid_tightener")
RachelFace.setAU(10, "both",  "ChrRachel@010_upper_lip_raiser")
RachelFace.setAU(12, "left",  "ChrRachel@012_lip_corner_puller_lf")
RachelFace.setAU(12, "right", "ChrRachel@012_lip_corner_puller_rt")
RachelFace.setAU(25, "both",  "ChrRachel@025_lips_part")
RachelFace.setAU(26, "both",  "ChrRachel@026_jaw_drop")
RachelFace.setAU(45, "left",  "ChrRachel@045_blink_lf")
RachelFace.setAU(45, "right", "ChrRachel@045_blink_rt")

RachelFace.setViseme("open",    "ChrRachel@open")
RachelFace.setViseme("W",       "ChrRachel@W")
RachelFace.setViseme("ShCh",    "ChrRachel@ShCh")
RachelFace.setViseme("PBM",     "ChrRachel@PBM")
RachelFace.setViseme("FV",      "ChrRachel@FV")
RachelFace.setViseme("wide",    "ChrRachel@wide")
RachelFace.setViseme("tBack",   "ChrRachel@tBack")
RachelFace.setViseme("tRoof",   "ChrRachel@tRoof")
RachelFace.setViseme("tTeeth",  "ChrRachel@tTeeth")

print 'Adding character into scene'
# Set up Rachel
Rachel = scene.createCharacter('ChrRachel', 'ChrRachel')
RachelSkeleton = scene.createSkeleton('ChrRachel.sk')
Rachel.setSkeleton(RachelSkeleton)
# Set position
RachelPos = SrVec(0, 0, 0)
Rachel.setPosition(RachelPos)
# Set facing direction
RachelFacing = SrVec(0, 0, 0)
Rachel.setHPR(RachelFacing)
# Set face definition
Rachel.setFaceDefinition(RachelFace)
# Set standard controller
Rachel.createStandardControllers()
# Deformable mesh
#Rachel.setDoubleAttribute('deformableMeshScale', .01)
#Rachel.setStringAttribute('deformableMesh', 'ChrRachel.dae')

# Lip syncing diphone setup
Rachel.setStringAttribute('lipSyncSetName', 'default')
Rachel.setBoolAttribute('usePhoneBigram', True)
Rachel.setVoice('remote')
Rachel.setVoiceCode('Microsoft|Anna')

# setup locomotion
scene.run('BehaviorSetMaleMocapLocomotion.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')

# setup gestures
scene.run('BehaviorSetGestures.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')

# setup reach 
scene.run('BehaviorSetReaching.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')
# Turn on GPU deformable geometry
Rachel.setStringAttribute("displayType", "GPUmesh")

# Set up steering
print 'Setting up steering'
steerManager = scene.getSteerManager()
steerManager.setEnable(False)
Rachel.setBoolAttribute('steering.pathFollowingMode', False) # disable path following mode so that obstacles will be respected
steerManager.setEnable(True)
# Start the simulation
print 'Starting the simulation'
sim.start()

bml.execBML('ChrRachel', '<body posture="ChrMarine@Idle01"/>')
bml.execBML('ChrRachel', '<saccade mode="listen"/>')
#bml.execBML('ChrRachel', '<gaze sbm:handle="Rachel" target="camera"/>')

sim.resume()


May 20, 2014
2:11 pm
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

Hello Ari,

Yes, seems like I had something wrong in my script! The code you provided solved some problems but there are some things that are still not quite working:

locomotion target, ChrRachel does the motions in place but does not actually go anywhere

facs, setting the AUs does not seem to work

 

(Something I noticed when looking into the ChrRachel.dae was that there was a reference to a texture "ChrRachel_Head_Spc.png", however this file is not with the other textures, perhaps it is not used.)

May 20, 2014
10:36 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

I think there is a scaling issue: the .dae files are in centimeters, but the motions are in meters. So there are two solutions to this:

 

1) Scale the Ogre mesh down by 100x to match the meter scale, or

To scale up the Ogre mesh you need to change the C++ code by adding the following line to ogre-viewer\src\SBListener.cpp after line 95:

mSceneNode->scale(.01, .01, .01);

This could also be done automatically by listening to the deformableMeshScale attribute on the character, then dynamically changing the mesh size based on that value.

 

2) alternatively, scale the SmartBody skeleton and face motion files up by 100x

To scale the skeleton file, after the Python command:

RachelSkeleton = scene.getSkeleton('ChrRachel.sk')

do this:

RachelSkeleton.rescale(100)

then scale each of the facial motions before you define the FaceDefinition in the script:

 

scene.getMotion("ChrRachel@face_neutral").scale(100)
scene.getMotion("ChrRachel@001_inner_brow_raiser_lf").scale(100)
scene.getMotion("ChrRachel@001_inner_brow_raiser_rt").scale(100)

etc.

 

the body motions don't need to be scaled, since the behaviors are automatically scaled when they are retargeted onto a new character.

 

Ari

May 22, 2014
1:02 pm
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

I did the scaling in the script (2nd alternative) and it indeed solved the problem with the facs. The locomotion still has an issue. The first locomotion target command works as it should, but any subsequent command will cause the character to temporarily flail the legs without going anywhere.

Example:

After locomotion target = "0 2" the character moves and then stops and the following appears in the smatbody.log

Character ChrRachel is out of range of grid (0.934655, 17.585611). All goals will be cancelled.

Any subsequent command will do the leg flail and the log will update with an out of range message.

Does smartbody think that the character moved 100x further than it actually did after the completion of the motion due to the rescaling? I tried sending locomotion targets of 0.01, or 0.02 but the character did not move and no message appeared in the log (since the target was so close that there was no need to move probably)

Also tried the 1st option (changing the scaling in ogreviewer code) adding the scaling of the mSceneNode in line 95 after the scene node was created in SBListener. Besides that the character is now tiny (0.01x scaled) compared to the rest of the scene, everything seems to work.

Using the scene scaling in the code seems to need the scaling of other things in the scene (including camera motions) which may not be ideal. Adding the listener you suggested should automate this, but it is still not ideal. I will prefer the rescaling the motions in the script method as it seems more modular when it comes to adding multiple characters that may need different scalings (will just need to update the script for each character without the need to rescale everything else).

May 22, 2014
6:38 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Whoops - forgot to set the scene scale. At the beginning of the script, change this line:

scene.setScale(1.0)

to

scene.setScale(.01)

The locomotion error message you are getting is related to scene scale and to the steering boundaries that are set. 
The steering algorithm creates a grid from a space that you create. By default it is 35x35 meters
(you can look at the attributes for the steering service and set them to whatever you want).

steerManager = scene.getSteerManager()
steerManager.setIntAttribute("gridDatabaseOptions.gridSizeX", 35) 
etc.

I'll need to look into the strange leg flail. It might be related to the online IK algorithm; try turning that off by doing:

mycharacter = scene.getCharacter("ChrRachel") # or whatever your character's name is
ikController = mycharacter.getControllerByName(mycharacter.getName() + "_postprocessController")
ikController.setEnable(False)

Do you mind posting a short video of this problem?

Ari

May 23, 2014
10:14 am
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

OK, with scene.scale(0.01) the character stays in bounds and locomotion is working well.

For some odd reason smartbody says that the SBcontroller ikController has no attribute "setEnable", so I couldn't test this.

Here is a video of the flailing before the scene scale was set to 0.01:  youtube

May 23, 2014
8:19 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Yes, this looks familar.

I gave you the wrong variable:

try:

 

mycharacter = scene.getCharacter("ChrRachel") # or whatever your character's name is
ikController = mycharacter.getControllerByName(mycharacter.getName() + "_postprocessController")
ikController.setBoolAttribute("enable", False)

that should disable the IK. If the weirdness goes away, then it's definitely related to the IK controller.

Ari

May 26, 2014
8:19 am
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

Ok, had a chance to test it with the ikController disabled

The flailing is gone, you can see the video here (Just a very small translation backwards for each out-of-range target)

May 27, 2014
6:03 pm
Avatar
Admin
Forum Posts: 52
Member Since:
August 8, 2012
sp_UserOfflineSmall Offline

Hi Marlos,

This indicates the issue is in the IK controller for removing foot sliding. I would hope to fix the bug that is causing this flailing artifacts. Can you share with me the setup script and locomotion commands you used to reproduce this problem ?

Thanks,

Andrew

May 30, 2014
9:05 am
Avatar
Geneva, Switzerland
Member
Members
Forum Posts: 9
Member Since:
May 15, 2014
sp_UserOfflineSmall Offline

Hello,

The commands are bml.execBML('ChrRachel','<locomotion target = "0 2"/>')

The script I used was the following:

print "|--------------------------------------------|"
print "| Starting Character Demo |"
print "|--------------------------------------------|"

# Add asset paths
scene.addAssetPath('mesh', 'mesh')
#scene.addAssetPath('mesh', 'retarget/mesh')
scene.addAssetPath('motion', 'ChrRachel')
#scene.addAssetPath('motion', 'sbm-common/common-sk')
scene.addAssetPath("script", "behaviorsets")
scene.addAssetPath('script', 'scripts')
scene.loadAssets()

# Set scene parameters and camera
print 'Configuring scene parameters and camera'
scene.setScale(1.0) # MAKE SURE THIS SCALE IS APPROPRIATE!!!!
scene.setBoolAttribute('internalAudio', True)
'''
scene.run('default-viewer.py')

camera = getCamera()
camera.setEye(0, 1.71, 1.86)
camera.setCenter(0, 1, 0.01)
camera.setUpVector(SrVec(0, 1, 0))
camera.setScale(1)
camera.setFov(1.0472)
camera.setFarPlane(100)
camera.setNearPlane(0.1)
camera.setAspectRatio(0.966897)
cameraPos = SrVec(0, 1.6, 10)
scene.getPawn('camera').setPosition(cameraPos)
'''
# Set up joint map for Rachel
print 'Setting up joint map and configuring Rachel\'s skeleton'
scene.run('zebra2-map.py')
zebra2Map = scene.getJointMapManager().getJointMap('zebra2')
RachelSkeleton = scene.getSkeleton('ChrRachel.sk')

RachelSkeleton.rescale(100)

zebra2Map.applySkeleton(RachelSkeleton)
zebra2Map.applyMotionRecurse('ChrRachel')

# Establish lip syncing data set
print 'Establishing lip syncing data set'
scene.run('init-diphoneDefault.py')

# Set up face definition
print 'Setting up face definition'

scene.getMotion("ChrRachel@face_neutral").scale(100)
scene.getMotion("ChrRachel@001_inner_brow_raiser_lf").scale(100)
scene.getMotion("ChrRachel@001_inner_brow_raiser_rt").scale(100)
scene.getMotion("ChrRachel@002_outer_brow_raiser_lf").scale(100)
scene.getMotion("ChrRachel@002_outer_brow_raiser_rt").scale(100)
scene.getMotion("ChrRachel@004_brow_lowerer_lf").scale(100)
scene.getMotion("ChrRachel@004_brow_lowerer_rt").scale(100)
scene.getMotion("ChrRachel@005_upper_lid_raiser").scale(100)
scene.getMotion("ChrRachel@006_cheek_raiser").scale(100)
scene.getMotion("ChrRachel@007_lid_tightener").scale(100)
scene.getMotion("ChrRachel@010_upper_lip_raiser").scale(100)
scene.getMotion("ChrRachel@012_lip_corner_puller_lf").scale(100)
scene.getMotion("ChrRachel@012_lip_corner_puller_rt").scale(100)
scene.getMotion("ChrRachel@025_lips_part").scale(100)
scene.getMotion("ChrRachel@026_jaw_drop").scale(100)
scene.getMotion("ChrRachel@045_blink_lf").scale(100)
scene.getMotion("ChrRachel@045_blink_rt").scale(100)

scene.getMotion("ChrRachel@open").scale(100)
scene.getMotion("ChrRachel@W").scale(100)
scene.getMotion("ChrRachel@ShCh").scale(100)
scene.getMotion("ChrRachel@PBM").scale(100)
scene.getMotion("ChrRachel@FV").scale(100)
scene.getMotion("ChrRachel@wide").scale(100)
scene.getMotion("ChrRachel@tBack").scale(100)
scene.getMotion("ChrRachel@tRoof").scale(100)
scene.getMotion("ChrRachel@tTeeth").scale(100)

# Rachel's face definition
RachelFace = scene.createFaceDefinition('ChrRachel')
RachelFace.setFaceNeutral('ChrRachel@face_neutral')
RachelFace.setAU(1, "left", "ChrRachel@001_inner_brow_raiser_lf")
RachelFace.setAU(1, "right", "ChrRachel@001_inner_brow_raiser_rt")
RachelFace.setAU(2, "left", "ChrRachel@002_outer_brow_raiser_lf")
RachelFace.setAU(2, "right", "ChrRachel@002_outer_brow_raiser_rt")
RachelFace.setAU(4, "left", "ChrRachel@004_brow_lowerer_lf")
RachelFace.setAU(4, "right", "ChrRachel@004_brow_lowerer_rt")
RachelFace.setAU(5, "both", "ChrRachel@005_upper_lid_raiser")
RachelFace.setAU(6, "both", "ChrRachel@006_cheek_raiser")
RachelFace.setAU(7, "both", "ChrRachel@007_lid_tightener")
RachelFace.setAU(10, "both", "ChrRachel@010_upper_lip_raiser")
RachelFace.setAU(12, "left", "ChrRachel@012_lip_corner_puller_lf")
RachelFace.setAU(12, "right", "ChrRachel@012_lip_corner_puller_rt")
RachelFace.setAU(25, "both", "ChrRachel@025_lips_part")
RachelFace.setAU(26, "both", "ChrRachel@026_jaw_drop")
RachelFace.setAU(45, "left", "ChrRachel@045_blink_lf")
RachelFace.setAU(45, "right", "ChrRachel@045_blink_rt")

RachelFace.setViseme("open", "ChrRachel@open")
RachelFace.setViseme("W", "ChrRachel@W")
RachelFace.setViseme("ShCh", "ChrRachel@ShCh")
RachelFace.setViseme("PBM", "ChrRachel@PBM")
RachelFace.setViseme("FV", "ChrRachel@FV")
RachelFace.setViseme("wide", "ChrRachel@wide")
RachelFace.setViseme("tBack", "ChrRachel@tBack")
RachelFace.setViseme("tRoof", "ChrRachel@tRoof")
RachelFace.setViseme("tTeeth", "ChrRachel@tTeeth")

print 'Adding character into scene'
# Set up Rachel
Rachel = scene.createCharacter('ChrRachel', 'ChrRachel')
RachelSkeleton = scene.createSkeleton('ChrRachel.sk')
Rachel.setSkeleton(RachelSkeleton)
# Set position
RachelPos = SrVec(0, 0, 0)
Rachel.setPosition(RachelPos)
# Set facing direction
RachelFacing = SrVec(0, 0, 0)
Rachel.setHPR(RachelFacing)
# Set face definition
Rachel.setFaceDefinition(RachelFace)
# Set standard controller
Rachel.createStandardControllers()
# Deformable mesh
#Rachel.setDoubleAttribute('deformableMeshScale', .01)
#Rachel.setStringAttribute('deformableMesh', 'ChrRachel.dae')

# Lip syncing diphone setup
Rachel.setStringAttribute('lipSyncSetName', 'default')
Rachel.setBoolAttribute('usePhoneBigram', True)
Rachel.setVoice('remote')
Rachel.setVoiceCode('Microsoft|Anna')

# setup locomotion
scene.run('BehaviorSetMaleMocapLocomotion.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')

# setup gestures
scene.run('BehaviorSetGestures.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')

# setup reach
scene.run('BehaviorSetReaching.py')
setupBehaviorSet()
retargetBehaviorSet('ChrRachel')
# Turn on GPU deformable geometry
Rachel.setStringAttribute("displayType", "GPUmesh")

# Set up steering
print 'Setting up steering'
steerManager = scene.getSteerManager()
steerManager.setEnable(False)
Rachel.setBoolAttribute('steering.pathFollowingMode', False) # disable path following mode so that obstacles will be respected
steerManager.setEnable(True)

'''
mycharacter = scene.getCharacter("ChrRachel") # or whatever your character's name is
ikController = mycharacter.getControllerByName(mycharacter.getName() + "_postprocessController")
ikController.setBoolAttribute("enable", False)
'''

# Start the simulation
print 'Starting the simulation'
sim.start()

bml.execBML('ChrRachel', '<body posture="ChrMarine@Idle01"/>')
bml.execBML('ChrRachel', '<saccade mode="listen"/>')
#bml.execBML('ChrRachel', '<gaze sbm:handle="Rachel" target="camera"/>')

sim.resume()

Forum Timezone: America/Los_Angeles

Top Posters:

jwwalker: 80

jyambao: 52

rbaral: 47

adiaz: 30

WargnierP: 29

lucky7456969: 28

mbarros: 28

avida.matt: 26

JonathanW: 24

laguerre: 23

Member Stats:

Guest Posters: 69

Members: 122101

Moderators: 3

Admins: 4

Forum Stats:

Groups: 1

Forums: 5

Topics: 531

Posts: 2495