#VRML V2.0 utf8 mmproto.wrl Version 0.6 21st September 2000 # Programmer: Lawrence C.Hodges # "Waddl'ard Morris Man" used in the virtual Christmas Dance: # Xcard3.wrl, in Jig.wrl and in the Avatatar Animation Frame Data Editor # NOTE: Set Tab every 2 chars # This is an attempt to convert mm.wrl, an opaque specific instance # of a customised humanoid into something more generic with access to # the internal attributes # Comments: # 1) The following PROTOS are defined: Joint, Segment, Site # and Humanoid. # # 2) Currently the men are wearing black boots. They need to be # remodelled as shoes # 3) The file can still be pruned of some generic components, # unused in this model. # Version 4 adds 'head' to the list of externally controllable joints. # This is located at "skullbase" # Version 6 modifies the calf length and ankle joint to be more natural. # Earlier versions, copying the original 'dork', articulated the ankle # part-way up the shin. PROTO Joint [ exposedField SFVec3f center 0 0 0 exposedField MFNode children [] exposedField MFFloat llimit [] exposedField SFRotation limitOrientation 0 0 1 0 exposedField SFString name "" exposedField SFRotation rotation 0 0 1 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation scaleOrientation 0 0 1 0 exposedField MFFloat stiffness [ 0 0 0 ] exposedField SFVec3f translation 0 0 0 exposedField MFFloat ulimit [] ] { Transform { center IS center children IS children rotation IS rotation scale IS scale scaleOrientation IS scaleOrientation translation IS translation } } PROTO Segment [ field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 -1 exposedField SFVec3f centerOfMass 0 0 0 exposedField MFNode children [ ] exposedField SFNode coord NULL exposedField MFNode displacers [ ] exposedField SFFloat mass 0 exposedField MFFloat momentsOfInertia [ 0 0 0 0 0 0 0 0 0 ] exposedField SFString name "" eventIn MFNode addChildren eventIn MFNode removeChildren ] { Group { addChildren IS addChildren bboxCenter IS bboxCenter bboxSize IS bboxSize children IS children removeChildren IS removeChildren } } PROTO Site [ exposedField SFVec3f center 0 0 0 exposedField MFNode children [] exposedField SFString name "" exposedField SFRotation rotation 0 0 1 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation scaleOrientation 0 0 1 0 exposedField SFVec3f translation 0 0 0 eventIn MFNode addChildren eventIn MFNode removeChildren ] { Transform { addChildren IS addChildren center IS center children IS children removeChildren IS removeChildren rotation IS rotation scale IS scale scaleOrientation IS scaleOrientation translation IS translation } } PROTO Humanoid [ field SFVec3f bboxCenter 0 0 0 field SFVec3f bboxSize -1 -1 -1 exposedField SFVec3f center 0 0 0 exposedField MFNode humanoidBody [ ] exposedField MFString info [ ] exposedField MFNode joints [ ] exposedField SFString name "" exposedField SFRotation rotation 0 0 1 0 exposedField SFVec3f scale 1 1 1 exposedField SFRotation scaleOrientation 0 0 1 0 exposedField MFNode segments [ ] exposedField MFNode sites [ ] exposedField SFVec3f translation 0 0 0 exposedField SFString version "1.1" exposedField MFNode viewpoints [ ] ] { Transform { bboxCenter IS bboxCenter bboxSize IS bboxSize center IS center rotation IS rotation scale IS scale scaleOrientation IS scaleOrientation translation IS translation children [ Group { children IS viewpoints } Group { children IS humanoidBody } ] } } PROTO MorrisMan [ exposedField SFVec3f scale 1 1 1 exposedField SFVec3f position 0 0 0 exposedField SFVec3f height 0 0 0 exposedField SFRotation head 0 1 0 0 exposedField SFRotation orientation 0 1 0 0 exposedField SFRotation l_shoulder 0 0 1 0 exposedField SFRotation l_elbow 0 0 1 0 exposedField SFRotation l_wrist 0 0 1 0 exposedField SFRotation r_shoulder 0 0 1 0 exposedField SFRotation r_elbow 0 0 1 0 exposedField SFRotation r_wrist 0 0 1 0 exposedField SFRotation l_hip 0 0 1 0 exposedField SFRotation l_knee 0 0 1 0 exposedField SFRotation l_ankle 0 0 1 0 exposedField SFRotation r_hip 0 0 1 0 exposedField SFRotation r_knee 0 0 1 0 exposedField SFRotation r_ankle 0 0 1 0 exposedField MFNode viewpoints [] ]{ Transform { translation IS height children [ # begin Humanoid height transform Humanoid { name "morrisman" version "1.1" info [ "authorName=Lawrence C.Hodges", "authorEmail=l_hodges@cix.co.uk", "creationDate=12/08/2000", "humanoidVersion=MorrisMan V0.4" ] translation IS position #added element rotation IS orientation #added element viewpoints IS viewpoints #added element humanoidBody [ DEF hanim_HumanoidRoot Joint { name "hanim_HumanoidRoot" center 0 0.65 0 children [ DEF hanim_vl5 Joint { name "vl5" center 0 1.05 0 children [ DEF hanim_l5 Segment { #torso == shirt name "l5" children [ DEF hanim_l5_pos Transform { translation 0 1.1 0 children Shape { geometry IndexedFaceSet { coord Coordinate { point [ 0.18 0 0.1, 0.18 0 -0.1, -0.18 0 -0.1, -0.18 0 0.1, 0.22 0.5 0.12, 0.22 0.5 -0.1, -0.22 0.5 -0.1, -0.22 0.5 0.12 ] } coordIndex [ 3 2 1 0 -1 0 1 5 4 -1 1 2 6 5 -1 2 3 7 6 -1 4 7 3 0 -1 4 5 6 7 ] texCoord TextureCoordinate { point [ 0.1 1, 0.9 1, 1.1 1, # 0,1,2 0.1 0, 0.9 0, 1.1 0 ] # 3,4,5 } texCoordIndex [ 2 2 2 2 -1 # bottom temp 4 5 2 1 -1 # Left side OK 3 4 1 0 -1 # back OK 4 5 2 1 -1 # right side OK 1 0 3 4 -1 # front OK 1 1 0 0 # top ] } appearance Appearance { material Material { ambientIntensity 0.25 diffuseColor 0.961 0.961 0.922 shininess 0.01 } texture ImageTexture { url ["baldricks.png"] } } } # end of Shape } # end of Transform hanim_l5 ] } # end of segment DEF hanim_vc7 Joint { ##Neck? name "vc7" center 0 1.6 0 children [ DEF hanim_c7 Segment { name "c7" children [ DEF hanim_c7_pos Transform { translation 0 1.65 0 children Shape { geometry Cylinder { radius 0.06 height 0.1 } appearance DEF flesh Appearance { material Material { ambientIntensity 0.25 diffuseColor 0.749 0.601 0.462 } } } } ] } DEF hanim_skullbase Joint { name "skullbase" center 0 1.7 0 rotation IS head #added element children [ DEF hanim_skull Segment { name "skull" children [ DEF hanim_skull_pos Transform { translation 0 1.74 0 children [ Shape { geometry Sphere { radius 0.12 } appearance USE flesh } DEF hanim_skull_tip Site { name "skull_tip" translation 0 0.12 0 children [ DEF Hat Transform { children [ DEF hanim_HumanoidRoot_PS PlaneSensor {} Shape { # Crown geometry Cylinder { radius 0.1 height 0.06 } appearance DEF Light_Straw Appearance { material Material { diffuseColor 0.9725 0.9059 0.5961 } texture PixelTexture { image 1 16 3 0xF8E798 0xF8E798 0xF8E798 0xF8E798 0x00CC66 0x00CC66 0xFFFF33 0xFF3300 0xFF3300 0xFFFF33 0x00CC66 0x00CC66 0xF8E798 0xF8E798 0xF8E798 0xF8E798 repeatS FALSE repeatT TRUE } } } Transform { translation 0 -0.03 0 # places the brim relative # to the crown children [ DEF hanim_HumanoidRoot_SS SphereSensor {} Shape { # Brim geometry Cylinder { radius 0.14 height 0.005 } appearance Appearance { material Material { diffuseColor 0.9725 0.9059 0.5961 } } } ] } ] } # end of Hat ] } DEF hanim_nose Transform { translation 0 -0.02 0.12 children [ Shape { geometry Sphere { radius 0.02 } appearance USE flesh } ] } ] } ] } DEF hanim_l_eyeball_joint Joint { name "l_eyeball_joint" center 0.05 1.74 0.1 children [ DEF hanim_l_eyeball Segment { name "l_eyeball" children [ DEF hanim_l_eyeball_pos Transform { translation 0.05 1.74 0.1 children [ Shape { geometry Sphere { radius 0.015 } appearance DEF white Appearance { material Material { diffuseColor 1 1 1 } } } DEF hanim_l_pupil_pos Transform { translation 0 0 0.014 children [ Shape { geometry Sphere { radius 0.005 } appearance DEF blue Appearance { material Material { diffuseColor 0 0 1 } } } ] } ] } ] } ] } DEF hanim_r_eyeball_joint Joint { name "r_eyeball_joint" center -0.05 1.74 0.1 children [ DEF hanim_r_eyeball Segment { name "r_eyeball" children [ DEF hanim_r_eyeball_SS SphereSensor {} DEF hanim_r_eyeball_pos Transform { translation -0.05 1.74 0.1 children [ Shape { geometry Sphere { radius 0.015 } appearance USE white } DEF hanim_l_pupil_pos Transform { translation 0 0 0.014 children [ Shape { geometry Sphere { radius 0.005 } appearance USE blue } ] } ] } ] } ] } ] } # end DEF skullbase joint DEF hanim_l_shoulder Joint { name "l_shoulder" center 0.225 1.55 0 rotation IS l_shoulder #added element children [ DEF hanim_l_upperarm Segment { name "l_upperarm" children [ DEF hanim_l_upperarm_pos Transform { translation 0.28 1.42 0 rotation 0 0 1 0.3 children Shape { geometry Cylinder { radius 0.06 height 0.35 } appearance DEF OFF_WHITE Appearance { material Material { ambientIntensity 0.25 diffuseColor 0.961 0.961 0.922 shininess 0.01 } } } } ] } DEF hanim_l_elbow Joint { name "l_elbow" center 0.33 1.26 0 rotation IS l_elbow #added element children [ DEF hanim_l_forearm Segment { name "l_forearm" children [ DEF hanim_l_forearm_pos Transform { translation 0.33 1.09 0 children Shape { geometry Cylinder { radius 0.04 height 0.35 } appearance USE OFF_WHITE } } ] } DEF hanim_l_wrist Joint { name "l_wrist" center 0.33 0.92 0 rotation IS l_wrist children [ DEF hanim_l_hand Segment { name "l_hand" children [ DEF hanim_l_hand_pos Transform { translation 0.33 0.88 0 rotation 0 0 1 1.55 children Shape { geometry Cylinder { radius 0.06 height 0.04 } appearance USE flesh } } ] } DEF hanim_l_thumb1 Joint { name "l_thumb1" center 0.33 0.905 0.06 children [ DEF hanim_l_thumb_metacarpal Segment { name "l_thumb_metacarpal" children [ DEF hanim_l_thumb_metacarpal_pos Transform { translation 0.33 0.88 0.06 rotation 1 0 0 -0.6 children Shape { geometry Cylinder { radius 0.017 height 0.05 } appearance USE flesh } } ] } DEF hanim_l_thumb2 Joint { name "l_thumb2" center 0.33 0.87 0.07 children [ DEF hanim_l_thumb_proximal Segment { name "l_thumb_proximal" children [ DEF hanim_l_thumb_proximal_pos Transform { translation 0.33 0.85 0.07 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.04 } appearance USE flesh } } ] } ] } ] } DEF hanim_l_index1 Joint { name "l_index1" center 0.33 0.855 0.04 children [ DEF hanim_l_index_proximal Segment { name "l_index_proximal" children [ DEF hanim_l_index_proximal_pos Transform { translation 0.33 0.83 0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.05 } appearance USE flesh } } ] } DEF hanim_l_index2 Joint { name "l_index2" center 0.33 0.805 0.04 children [ DEF hanim_l_index_middle Segment { name "l_index_middle" children [ DEF hanim_l_index_middle_pos Transform { translation 0.33 0.78 0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_l_middle1 Joint { name "l_middle1" center 0.33 0.835 0.014 children [ DEF hanim_l_middle_proximal Segment { name "l_middle_proximal" children [ DEF hanim_l_middle_proximal_pos Transform { translation 0.33 0.81 0.014 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.015 height 0.05 } appearance USE flesh } } ] } DEF hanim_l_middle2 Joint { name "l_middle2" center 0.33 0.785 0.014 children [ DEF hanim_l_middle_middle Segment { name "l_middle_middle" children [ DEF hanim_l_middle_middle_pos Transform { translation 0.33 0.76 0.014 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_l_ring1 Joint { name "l_ring1" center 0.33 0.845 -0.016 children [ DEF hanim_l_ring_proximal Segment { name "l_ring_proximal" children [ DEF hanim_l_ring_proximal_pos Transform { translation 0.33 0.82 -0.016 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.015 height 0.05 } appearance USE flesh } } ] } DEF hanim_l_ring2 Joint { name "l_ring2" center 0.33 0.795 -0.016 children [ DEF hanim_l_ring_middle Segment { name "l_ring_middle" children [ DEF hanim_l_ring_middle_pos Transform { translation 0.33 0.77 -0.016 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_l_pinky1 Joint { name "l_pinky1" center 0.33 0.85 -0.04 children [ DEF hanim_l_pinky_proximal Segment { name "l_pinky_proximal" children [ DEF hanim_l_pinky_proximal_pos Transform { translation 0.33 0.83 -0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.04 } appearance USE flesh } } ] } DEF hanim_l_pinky2 Joint { name "l_pinky2" center 0.33 0.81 -0.04 children [ DEF hanim_l_pinky_middle Segment { name "l_pinky_middle" children [ DEF hanim_l_pinky_middle_pos Transform { translation 0.33 0.79 -0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.012 height 0.04 } appearance USE flesh } } ] } ] } ] # end children l_wrist } ] } # end DEF l_wrist joint ] } # end DEF l_elbow joint ] } # end DEF l_shoulder joint DEF hanim_r_shoulder Joint { name "r_shoulder" center -0.225 1.55 0 rotation IS r_shoulder children [ DEF hanim_r_upperarm Segment { name "r_upperarm" children [ DEF hanim_r_upperarm_pos Transform { translation -0.28 1.42 0 rotation 0 0 1 -0.3 children Shape { geometry Cylinder { radius 0.06 height 0.35 } appearance USE OFF_WHITE } } ] } DEF hanim_r_elbow Joint { name "r_elbow" center -0.33 1.26 0 rotation IS r_elbow children [ DEF hanim_r_forearm Segment { name "r_forearm" children [ DEF hanim_r_forearm_pos Transform { translation -0.33 1.09 0 children Shape { geometry Cylinder { radius 0.04 height 0.35 } appearance USE OFF_WHITE } } ] } DEF hanim_r_wrist Joint { name "r_wrist" center -0.33 0.92 0 rotation IS r_wrist children [ DEF hanim_r_hand Segment { name "r_hand" children [ DEF hanim_r_hand_pos Transform { translation -0.33 0.88 0 rotation 0 0 1 1.55 children Shape { geometry Cylinder { radius 0.06 height 0.04 } appearance USE flesh } } ] } DEF hanim_r_thumb1 Joint { name "r_thumb1" center -0.33 0.905 0.06 children [ DEF hanim_r_thumb_metacarpal Segment { name "r_thumb_metacarpal" children [ DEF hanim_r_thumb_metacarpal_pos Transform { translation -0.33 0.88 0.06 rotation 1 0 0 -0.6 children Shape { geometry Cylinder { radius 0.017 height 0.05 } appearance USE flesh } } ] } DEF hanim_r_thumb2 Joint { name "r_thumb2" center -0.33 0.87 0.07 children [ DEF hanim_r_thumb_proximal Segment { name "r_thumb_proximal" children [ DEF hanim_r_thumb_proximal_pos Transform { translation -0.33 0.85 0.07 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.04 } appearance USE flesh } } ] } ] } ] } DEF hanim_r_index1 Joint { name "r_index1" center -0.33 0.845 0.04 children [ DEF hanim_r_index_proximal Segment { name "r_index_proximal" children [ DEF hanim_r_index_proximal_pos Transform { translation -0.33 0.83 0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.05 } appearance USE flesh } } ] } DEF hanim_r_index2 Joint { name "r_index2" center -0.33 0.805 0.04 children [ DEF hanim_r_index_middle Segment { name "r_index_middle" children [ DEF hanim_r_index_middle_pos Transform { translation -0.33 0.78 0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_r_middle1 Joint { name "r_middle1" center -0.33 0.835 0.014 children [ DEF hanim_r_middle_proximal Segment { name "r_middle_proximal" children [ DEF hanim_r_middle_proximal_pos Transform { translation -0.33 0.81 0.014 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.015 height 0.05 } appearance USE flesh } } ] } DEF hanim_r_middle2 Joint { name "r_middle2" center -0.33 0.785 0.014 children [ DEF hanim_r_middle_middle Segment { name "r_middle_middle" children [ DEF hanim_r_middle_middle_pos Transform { translation -0.33 0.76 0.014 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.014 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_r_ring1 Joint { name "r_ring1" center -0.33 0.845 -0.016 children [ DEF hanim_r_ring_proximal Segment { name "r_ring_proximal" children [ DEF hanim_r_ring_proximal_pos Transform { translation -0.33 0.82 -0.016 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.015 height 0.05 } appearance USE flesh } } ] } DEF hanim_r_ring2 Joint { name "r_ring2" center -0.33 0.795 -0.016 children [ DEF hanim_r_ring_middle Segment { name "r_ring_middle" children [ DEF hanim_r_ring_middle_pos Transform { translation -0.33 0.77 -0.016 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.05 } appearance USE flesh } } ] } ] } ] } DEF hanim_r_pinky1 Joint { name "r_pinky1" center -0.33 0.85 -0.04 children [ DEF hanim_r_pinky_proximal Segment { name "r_pinky_proximal" children [ DEF hanim_r_pinky_proximal_pos Transform { translation -0.33 0.83 -0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.013 height 0.04 } appearance USE flesh } } ] } DEF hanim_r_pinky2 Joint { name "r_pinky2" center -0.33 0.81 -0.04 children [ DEF hanim_r_pinky_middle Segment { name "r_pinky_middle" children [ DEF hanim_r_pinky_middle_pos Transform { translation -0.33 0.79 -0.04 rotation 0 0 1 0 children Shape { geometry Cylinder { radius 0.012 height 0.04 } appearance USE flesh } } ] } ] } ] # end children r_wrist } ] } # end DEF r_wrist joint ] } # end DEF r_elbow joint ] } # end DEF r_shoulder joint ] } # end DEF vc7 joint ] } # end DEF vl5 joint DEF hanim_sacroiliac Joint { name "sacroiliac" center 0 0.95 0 children [ DEF hanim_pelvis Segment { name "pelvis" children [ DEF hanim_pelvis_pos Transform { translation 0 0.85 0 children Shape { geometry IndexedFaceSet { coord Coordinate { point [ 0.2 0 0.09, 0.2 0 -0.09, -0.2 0 -0.09, -0.2 0 0.09, 0.18 0.25 0.09, 0.18 0.25 -0.09, -0.18 0.25 -0.09, -0.18 0.25 0.09 ] } coordIndex [ 3 2 1 0 -1 0 1 5 4 -1 1 2 6 5 -1 2 3 7 6 -1 4 7 3 0 -1 4 5 6 7 ] } appearance DEF BLACK Appearance { material Material { ambientIntensity 0.25 diffuseColor 0.01 0.01 0.01 shininess 0.01 } } } } ] } DEF hanim_l_hip Joint { name "l_hip" center 0.13 0.9 0 rotation IS l_hip children [ DEF hanim_l_thigh Segment { name "l_thigh" children [ DEF hanim_l_thigh_pos Transform { translation 0.13 0.75 0 children Shape { geometry Cylinder { radius 0.08 height 0.5 } appearance USE BLACK } } ] } DEF hanim_l_knee Joint { name "l_knee" center 0.13 0.5 0 rotation IS l_knee children [ DEF hanim_l_calf Segment { name "l_calf" children [ DEF hanim_l_calf_pos Transform { translation 0.13 0.31 0 children Shape { geometry Cylinder { radius 0.06 height 0.38 } appearance USE OFF_WHITE } } ] } DEF hanim_l_ankle Joint { name "l_ankle" center 0.13 0.12 0 rotation IS l_ankle children [ DEF hanim_l_hindfoot Segment { name "l_hindfoot" children [ DEF hanim_l_hindfoot_pos Transform { translation 0.13 0.06 0 children Shape { geometry Cylinder { radius 0.06 height 0.12 } appearance USE BLACK } } ] } DEF hanim_l_midtarsal Joint { name "l_midtarsal" center 0.13 0.05 0 children [ DEF hanim_l_middistal Segment { name "l_middistal" children [ DEF hanim_l_middistal_pos Transform { translation 0.13 0.05 0.1 rotation 1 0 0 -1.55 children Shape { geometry Cylinder { radius 0.05 height 0.2 } appearance USE BLACK } } ] } ] } ] } ] } # end DEF l_knee joint ] } # end DEF l_hip joint DEF hanim_r_hip Joint { name "r_hip" center -0.13 0.9 0 rotation IS r_hip children [ DEF hanim_r_thigh Segment { name "r_thigh" children [ DEF hanim_r_thigh_pos Transform { translation -0.13 0.75 0 children Shape { geometry Cylinder { radius 0.08 height 0.5 } appearance USE BLACK } } ] } DEF hanim_r_knee Joint { name "r_knee" center -0.13 0.5 0 rotation IS r_knee children [ DEF hanim_r_calf Segment { name "r_calf" children [ DEF hanim_r_calf_pos Transform { translation -0.13 0.31 0 children Shape { geometry Cylinder { radius 0.06 height 0.38 } appearance USE OFF_WHITE } } ] } DEF hanim_r_ankle Joint { name "r_ankle" center -0.13 0.12 0 rotation IS r_ankle children [ DEF hanim_r_hindfoot Segment { name "r_hindfoot" children [ DEF hanim_r_hindfoot_pos Transform { translation -0.13 0.06 0 children Shape { geometry Cylinder { radius 0.06 height 0.12 } appearance USE BLACK } } ] } DEF hanim_r_midtarsal Joint { name "r_midtarsal" center -0.13 0.05 0 children [ DEF hanim_r_middistal Segment { name "r_middistal" children [ DEF hanim_r_middistal_pos Transform { translation -0.13 0.05 0.1 rotation 1 0 0 -1.55 children Shape { geometry Cylinder { radius 0.05 height 0.2 } appearance USE BLACK } } ] } ] } ] } ] } ] } # end DEF r_hip joint ] } # end DEF sacroiliac joint ] } # end DEF HumanoidRoot joint ] # end of Humanoid body } # end DEF morrisman humanoid ] # end of children of Humanoid height transform } # end of height Transform } # end of PROTO MorrisMan DEF morrisMan MorrisMan{ } # For testing