PDA

View Full Version : vizconnect avatar manipulation


nom nom
01-10-2017, 06:01 PM
Hi,

I'm trying to manipulate an avatar after I added it through vizconnect, but I have few questions that I cannot solve by myself.

First question is to change its orientation. I tried to directly modify the vizconnect script.


_name = 'male_2'
if vizconnect.isPendingInit('avatar', _name, initFlag, initList):
#VC: init the raw object
if initFlag&vizconnect.INIT_RAW:
#VC: create the raw object
avatar = viz.add('vcc_male2.cfg')
avatar.setEuler(90,0,0)
avatar._bodyPartDict = {}
avatar._handModelDict = {}
rawAvatar[_name] = avatar


but it didn't do anything. Though when I print the euler, it shows the right euler values. So I tried to call it in my script.


Avatar = vizconnect.getAvatar('male_2').getRaw()
Avatar.setEuler(90,0,0)
print Avatar.getEuler()


This also didn't do anything while the euler value's correct when I printed.


Second question is that I'd like to make the head of the avatar invisible, so I tried the following code.


Avatar = vizconnect.getAvatar('male_2').getRaw()
Avatar_head = Avatar.getBone('Bip01 head')
Avatar_head.setVisible(viz.OFF)


This gives an error:

** ERROR: Bone with name 'Bip01 head' does not exist
Traceback (most recent call last):
File "<string>", line 11, in <module>
File "C:\Users\User\Downloads\VR\Vizard script\Learning_PD_Day1_1.py", line 29, in <module>
Avatar_head.setVisible(viz.OFF)
AttributeError: 'VizBone' object has no attribute 'setVisible'

So i guess there is no bone object if I add an avatar through vizconnect.. or is there other way to grab it?

Thanks in advance!

Jeff
01-11-2017, 11:54 AM
Have you mapped any tracking data to the avatar through the animator in vizconnect? If so, then the tracking data may override the set command. You could:

Add a transport or group tracker above the avatar in the scenegraph and apply a 90 degree rotation to that.
Apply a 90 degree offset to the head tracking data.


Try the following to hide the avatar's head:

avatar.visible(0,'male_head.crfx')

nom nom
02-08-2017, 11:29 AM
Thanks for the reply and sorry for my late reply :) I finally had some time to try that and your first solution indeed worked, but the problem was that because the group tracker is a parent of the tracking data, when I rotated the avatar, tracking data from other input source also rotate, which overall the result was the same.

Though, I found a solution which I rotated the torso of the avatar to my desired direction and it worked greatly!

For the second part, I tried that code, but the following error message is shown.

** WARNING: Could not find subchild with name: 'male_head.crfx'

Is the name you provided correct?

Thanks in advance!

Jeff
02-10-2017, 02:44 PM
The following works for me using the male_2 avatar from vizconnect:

avatar = vizconnect.getAvatar('male_2').getRaw()
avatar.visible(0,'male_head.crfx')