(Deprecated) Change hand color¶
Deprecated classes vrOculusTouchController and vrOpenVRController. See vrDeviceService, vrdVRDevice, vrdDeviceInteraction instead.
Oculus Rift¶
deprecated_VR_examples/VR-hands-color-oculus.py¶
1# © 2024 Autodesk, Inc. All rights reserved.
2
3def findNodeRecursive(nodeName, node):
4 if not node.isValid():
5 return None
6
7 if node.getName() == nodeName:
8 return node
9
10 numChildren = node.getNChildren()
11 for i in range(0, numChildren):
12 result = findNodeRecursive(nodeName, node.getChild(i))
13 if result:
14 return result
15
16 return None
17
18
19def setHandColor(role, color):
20 handPrefix = { Hand_Left : "L_", Hand_Right : "R_" }
21 print("Hand role:", "left" if role == Hand_Left else "right")
22 handMesh = findNodeRecursive(handPrefix[role] + "hand_mesh", getInternalRootNode())
23 if handMesh.isValid():
24 mat = handMesh.getMaterial()
25 # set X-Ray color
26 baseColor = vrFieldAccess(mat.fields().getFieldContainer('baseColor'))
27 baseColor.setVec3f("color", color[0], color[1], color[2])
28
29 hitMesh = findNodeRecursive(handPrefix[role] + "hit_mesh", getInternalRootNode())
30 if hitMesh.isValid():
31 mat = hitMesh.getMaterial()
32 # set Plastic incandescence color
33 incandescenceColor = mat.fields().getVec("incandescenceColor", 4)
34 mat.fields().setVec4f("incandescenceColor", color[0], color[1], color[2], incandescenceColor[3])
35
36# Deprecated class vrOculusTouchController. See vrDeviceService, vrdVRDevice, vrdDeviceInteraction instead.
37controller0 = vrOculusTouchController("LeftTouch")
38controller1 = vrOculusTouchController("RightTouch")
39controller0.setVisible(True)
40controller1.setVisible(True)
41
42color = (1.0, 1.0, 1.0)
43
44# Set color when hands are detected in VR mode.
45controller0.connectSignal("handRoleChanged", setHandColor, color)
46controller1.connectSignal("handRoleChanged", setHandColor, color)
47
48# If the script is executed in VR mode after hands have been detected, force color change:
49if controller0.getHandRole() != Hand_Undefined:
50 setHandColor(controller0.getHandRole(), color)
51if controller1.getHandRole() != Hand_Undefined:
52 setHandColor(controller1.getHandRole(), color)
Open VR¶
deprecated_VR_examples/VR-hands-color-openvr.py¶
1# © 2024 Autodesk, Inc. All rights reserved.
2
3def findNodeRecursive(nodeName, node):
4 if not node.isValid():
5 return None
6
7 if node.getName() == nodeName:
8 return node
9
10 numChildren = node.getNChildren()
11 for i in range(0, numChildren):
12 result = findNodeRecursive(nodeName, node.getChild(i))
13 if result:
14 return result
15
16 return None
17
18
19def setHandColor(role, color):
20 handPrefix = { Hand_Left : "L_", Hand_Right : "R_" }
21 print("Hand role:", "left" if role == Hand_Left else "right")
22 handMesh = findNodeRecursive(handPrefix[role] + "hand_mesh", getInternalRootNode())
23 if handMesh.isValid():
24 mat = handMesh.getMaterial()
25 # set X-Ray color
26 baseColor = vrFieldAccess(mat.fields().getFieldContainer('baseColor'))
27 baseColor.setVec3f("color", color[0], color[1], color[2])
28
29 hitMesh = findNodeRecursive(handPrefix[role] + "hit_mesh", getInternalRootNode())
30 if hitMesh.isValid():
31 mat = hitMesh.getMaterial()
32 # set Plastic incandescence color
33 incandescenceColor = mat.fields().getVec("incandescenceColor", 4)
34 mat.fields().setVec4f("incandescenceColor", color[0], color[1], color[2], incandescenceColor[3])
35
36# Deprecated class vrOpenVRController. See vrDeviceService, vrdVRDevice, vrdDeviceInteraction instead.
37controller0 = vrOpenVRController("Controller0")
38controller1 = vrOpenVRController("Controller1")
39controller0.setVisualizationMode(Visualization_Hand)
40controller1.setVisualizationMode(Visualization_Hand)
41
42color = (1.0, 1.0, 1.0)
43
44# Set color when hands are detected in VR mode.
45controller0.connectSignal("handRoleChanged", setHandColor, color)
46controller1.connectSignal("handRoleChanged", setHandColor, color)
47
48# If the script is executed in VR mode after hands have been detected, force color change:
49if controller0.getHandRole() != Hand_Undefined:
50 setHandColor(controller0.getHandRole(), color)
51if controller1.getHandRole() != Hand_Undefined:
52 setHandColor(controller1.getHandRole(), color)