Add initial prototype.

This commit is contained in:
Rod Kay
2022-07-31 17:34:54 +10:00
commit 54a53b2ac0
1421 changed files with 358874 additions and 0 deletions

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.76.0 commit date:2015-10-10, commit time:08:48, hash:23f7e16</authoring_tool>
</contributor>
<created>2015-10-20T23:29:46</created>
<modified>2015-10-20T23:29:46</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_001-mesh" name="Cube.001">
<mesh>
<source id="Cube_001-mesh-positions">
<float_array id="Cube_001-mesh-positions-array" count="24">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_001-mesh-normals">
<float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_001-mesh-vertices">
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
</vertices>
<polylist count="12">
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 7 5 3 5 1 5 1 0 3 0 0 0 3 1 7 1 2 1 7 2 5 2 6 2 5 3 1 3 4 3 0 4 2 4 4 4 5 5 7 5 1 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_001-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="1">Bone</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="1" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="16">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="1" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="4">1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="4" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="8">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>0 0 0 0 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone" name="Bone" sid="Bone" type="JOINT">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.75.0 commit date:2015-07-07, commit time:14:56, hash:c27589e</authoring_tool>
</contributor>
<created>2015-09-26T21:16:48</created>
<modified>2015-09-26T21:16:48</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_001-mesh" name="Cube.001">
<mesh>
<source id="Cube_001-mesh-positions">
<float_array id="Cube_001-mesh-positions-array" count="24">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_001-mesh-normals">
<float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_001-mesh-vertices">
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
</vertices>
<polylist count="12">
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 7 5 3 5 1 5 1 0 3 0 0 0 3 1 7 1 2 1 7 2 5 2 6 2 5 3 1 3 4 3 0 4 2 4 4 4 5 5 7 5 1 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_001-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="1">Bone</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="1" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="16">0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="1" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="4">1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="4" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="8">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>0 0 0 0 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone" name="Bone" sid="Bone" type="JOINT">
<matrix sid="transform">0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 1</matrix>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,113 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.75.0 commit date:2015-07-07, commit time:14:56, hash:c27589e</authoring_tool>
</contributor>
<created>2015-09-26T21:16:48</created>
<modified>2015-09-26T21:16:48</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_001-mesh" name="Cube.001">
<mesh>
<source id="Cube_001-mesh-positions">
<float_array id="Cube_001-mesh-positions-array" count="24">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-positions-array" count="8" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_001-mesh-normals">
<float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_001-mesh-vertices">
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
</vertices>
<polylist count="12">
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 7 5 3 5 1 5 1 0 3 0 0 0 3 1 7 1 2 1 7 2 5 2 6 2 5 3 1 3 4 3 0 4 2 4 4 4 5 5 7 5 1 5</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_001-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="1">Bone</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="1" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="16">0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="1" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="4">1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="4" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="8">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>0 0 0 0 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone" name="Bone" sid="Bone" type="JOINT">
<matrix sid="transform">0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 1</matrix>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.75.0 commit date:2015-07-07, commit time:14:56, hash:c27589e</authoring_tool>
</contributor>
<created>2015-09-26T23:10:24</created>
<modified>2015-09-26T23:10:24</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_001-mesh" name="Cube.001">
<mesh>
<source id="Cube_001-mesh-positions">
<float_array id="Cube_001-mesh-positions-array" count="48">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 1 -1 -1 3 -1 1 3 1 -1 3 1 1 3</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_001-mesh-normals">
<float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_001-mesh-vertices">
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
</vertices>
<polylist count="28">
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 3 5 9 5 11 5 10 3 14 3 12 3 7 5 11 5 10 5 1 5 8 5 9 5 5 5 10 5 8 5 15 5 13 5 12 5 9 1 13 1 15 1 11 2 15 2 14 2 8 0 12 0 13 0 1 0 3 0 0 0 3 1 7 1 2 1 7 2 5 2 6 2 5 3 1 3 4 3 0 4 2 4 4 4 7 5 3 5 11 5 8 3 10 3 12 3 5 5 7 5 10 5 3 5 1 5 9 5 1 5 5 5 8 5 14 5 15 5 12 5 11 1 9 1 15 1 10 2 11 2 14 2 9 0 8 0 13 0</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_001-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="2">Bone_1 Bone_2</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="2" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="32">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 1 0 0 0 0 0 1 -1.5 0 -1 0 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="2" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="12">1 1 1 1 1 1 1 1 1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="12" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="16">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 1 8 1 9 1 10 1 11</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone_1" name="Bone_1" sid="Bone_1" type="JOINT">
<matrix sid="transform">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1</matrix>
<node id="Bone_2" name="Bone_2" sid="Bone_2" type="JOINT">
<matrix sid="transform">1 0 0 0 0 1 0 1.5 0 0 1 0 0 0 0 1</matrix>
</node>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone_1</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.75.0 commit date:2015-07-07, commit time:14:56, hash:c27589e</authoring_tool>
</contributor>
<created>2015-09-26T23:58:43</created>
<modified>2015-09-26T23:58:43</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_002-mesh" name="Cube.002">
<mesh>
<source id="Cube_002-mesh-positions">
<float_array id="Cube_002-mesh-positions-array" count="48">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 1 1 1 1 1 -1 1 -1 1 1 -1 -1 3.015397 1 1 3.015397 1 -1 3.015397 -1 1 3.015397 -1 -1</float_array>
<technique_common>
<accessor source="#Cube_002-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_002-mesh-normals">
<float_array id="Cube_002-mesh-normals-array" count="18">-1 0 0 0 1 0 0 0 1 0 -1 0 0 0 -1 1 0 0</float_array>
<technique_common>
<accessor source="#Cube_002-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_002-mesh-vertices">
<input semantic="POSITION" source="#Cube_002-mesh-positions"/>
</vertices>
<polylist count="28">
<input semantic="VERTEX" source="#Cube_002-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_002-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 6 2 9 2 11 2 1 3 0 3 4 3 2 4 6 4 4 4 7 2 3 2 1 2 9 4 13 4 15 4 5 2 10 2 8 2 7 2 8 2 9 2 4 2 11 2 10 2 14 5 15 5 13 5 10 2 14 2 12 2 11 3 15 3 14 3 8 1 12 1 13 1 1 0 3 0 0 0 3 1 7 1 2 1 4 2 6 2 11 2 5 3 1 3 4 3 0 4 2 4 4 4 5 2 7 2 1 2 11 4 9 4 15 4 7 2 5 2 8 2 6 2 7 2 9 2 5 2 4 2 10 2 12 5 14 5 13 5 8 2 10 2 12 2 10 3 11 3 14 3 9 1 8 1 13 1</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_002-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="2">Bone_1 Bone_2</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="2" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="32">0 -1 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 -1 0 0 1 0 0 -1.5 0 0 1 0 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="2" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="12">1 1 1 1 1 1 1 1 1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="12" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="16">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 1 8 1 9 1 10 1 11</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone_1" name="Bone_1" sid="Bone_1" type="JOINT">
<matrix sid="transform">0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone_2" name="Bone_2" sid="Bone_2" type="JOINT">
<matrix sid="transform">1 0 0 0 0 1 0 1.5 0 0 1 0 0 0 0 1</matrix>
</node>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone_1</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.76.0 commit date:2015-09-30, commit time:16:05, hash:fb78f6d</authoring_tool>
</contributor>
<created>2015-10-06T22:09:01</created>
<modified>2015-10-06T22:09:01</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_geometries>
<geometry id="Cube_001-mesh" name="Cube.001">
<mesh>
<source id="Cube_001-mesh-positions">
<float_array id="Cube_001-mesh-positions-array" count="48">-1 -1 -1 -1 -1 1 -1 1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 1 -1 -1 3 -1 1 3 1 -1 3 1 1 3</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-positions-array" count="16" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<source id="Cube_001-mesh-normals">
<float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
<technique_common>
<accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
<param name="X" type="float"/>
<param name="Y" type="float"/>
<param name="Z" type="float"/>
</accessor>
</technique_common>
</source>
<vertices id="Cube_001-mesh-vertices">
<input semantic="POSITION" source="#Cube_001-mesh-positions"/>
</vertices>
<polylist count="28">
<input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
<input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
<p>3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 3 5 9 5 11 5 10 3 14 3 12 3 7 5 11 5 10 5 1 5 8 5 9 5 5 5 10 5 8 5 15 5 13 5 12 5 9 1 13 1 15 1 11 2 15 2 14 2 8 0 12 0 13 0 1 0 3 0 0 0 3 1 7 1 2 1 7 2 5 2 6 2 5 3 1 3 4 3 0 4 2 4 4 4 7 5 3 5 11 5 8 3 10 3 12 3 5 5 7 5 10 5 3 5 1 5 9 5 1 5 5 5 8 5 14 5 15 5 12 5 11 1 9 1 15 1 10 2 11 2 14 2 9 0 8 0 13 0</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_controllers>
<controller id="Armature_Cube-skin" name="Armature">
<skin source="#Cube_001-mesh">
<bind_shape_matrix>1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</bind_shape_matrix>
<source id="Armature_Cube-skin-joints">
<Name_array id="Armature_Cube-skin-joints-array" count="3">Bone_1 Bone_2 Bone_1_001</Name_array>
<technique_common>
<accessor source="#Armature_Cube-skin-joints-array" count="3" stride="1">
<param name="JOINT" type="name"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-bind_poses">
<float_array id="Armature_Cube-skin-bind_poses-array" count="48">1 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 1 0.6923077 -0.5547002 -0.4615384 0.6923077 0.5547002 0 0.8320503 -1.248075 -0.4615384 -0.8320503 0.3076923 -0.4615384 0 0 0 1 0.6923077 0.5547002 0.4615384 -0.6923077 -0.5547002 0 0.8320503 -1.248075 0.4615384 -0.8320503 0.3076923 -0.4615384 0 0 0 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-bind_poses-array" count="3" stride="16">
<param name="TRANSFORM" type="float4x4"/>
</accessor>
</technique_common>
</source>
<source id="Armature_Cube-skin-weights">
<float_array id="Armature_Cube-skin-weights-array" count="8">1 1 1 1 1 1 1 1</float_array>
<technique_common>
<accessor source="#Armature_Cube-skin-weights-array" count="8" stride="1">
<param name="WEIGHT" type="float"/>
</accessor>
</technique_common>
</source>
<joints>
<input semantic="JOINT" source="#Armature_Cube-skin-joints"/>
<input semantic="INV_BIND_MATRIX" source="#Armature_Cube-skin-bind_poses"/>
</joints>
<vertex_weights count="16">
<input semantic="JOINT" source="#Armature_Cube-skin-joints" offset="0"/>
<input semantic="WEIGHT" source="#Armature_Cube-skin-weights" offset="1"/>
<vcount>1 0 1 0 1 0 1 0 0 0 0 0 1 1 1 1 </vcount>
<v>0 0 0 1 0 2 0 3 2 4 2 5 1 6 1 7</v>
</vertex_weights>
</skin>
</controller>
</library_controllers>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1</matrix>
<node id="Bone_1" name="Bone_1" sid="Bone_1" type="JOINT">
<matrix sid="transform">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1</matrix>
<node id="Bone_2" name="Bone_2" sid="Bone_2" type="JOINT">
<matrix sid="transform">0.6923077 0.5547002 -0.4615384 0 -0.4615385 0.8320503 0.3076923 1.5 0.5547001 0 0.8320503 0 0 0 0 1</matrix>
</node>
<node id="Bone_1_001" name="Bone_1.001" sid="Bone_1_001" type="JOINT">
<matrix sid="transform">0.6923077 -0.5547002 0.4615384 0 0.4615385 0.8320503 0.3076923 1.5 -0.5547001 0 0.8320503 0 0 0 0 1</matrix>
</node>
</node>
</node>
<node id="Cube" name="Cube" type="NODE">
<translate sid="location">0 0 0</translate>
<rotate sid="rotationZ">0 0 1 0</rotate>
<rotate sid="rotationY">0 1 0 0</rotate>
<rotate sid="rotationX">1 0 0 0</rotate>
<scale sid="scale">1 1 1</scale>
<instance_controller url="#Armature_Cube-skin">
<skeleton>#Bone_1</skeleton>
</instance_controller>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>

View File

@@ -0,0 +1,80 @@
Custom Human Rigs
~~~~~~~~~~~~~~~~~
Dependencies:
- makeHuman v1.02+
- Blender v2.76+
- Blender MoCap Addons (for animations)
- Blender MakeHuman imports Addon
Workflow:
Creating a basic, default human:
1) ~ makeHuman
- Start makeHuman.
- Go to Geometries/Eyes panel, select 'None'.
- Go to Pose/Animate panel, select 'game.json'.
- Go to Files/Export panel, set 'Mesh Format' to 'Blender exchange',
turn off 'Feet on Ground' option,
set 'Scale Units' to 'meter',
set 'Filename' field to 'human',
click the 'Export' button (next to the Filename field).
- Close makeHuman.
2.0) ~ Blender
2.1)
- Start blender.
- Press 'a' 'a' 'Delete' keys, then confirm that all should be deleted.
- In the 'File' menu, select 'Import' and then select 'MakeHuman' in the subMenu.
- This will bring up a dialog which asks for the location of the 'MakeHuman/Blender Export' file we have formerly created with the makeHuman app.
- By default, this file is usually located at ~/makehuman/v1/exports/human.mhx
- Once the file has been imported into Blender, we should see the skin and bones of the model (zoom in via mouse wheel for better view).
2.2)
- In the 'File' menu, select 'Export' and then select 'Collada' in the subMenu.
- Set 'Filename' field to 'human.dae'.
- Click the 'Export Collada' button (next to the Filename field).
3) ~ Lace/MMI
- The generated Collada .dae file can now be imported as an MMI Rig (whose motion is controlled by phsyical forces ... ie gravity, etc).
Creating a basic, default animated human:
1) As above.
2.0) ~ Blender
2.1)
- As above.
2.2)
- In the 'File' menu, select 'Import' and then select 'Motion Capture' in the subMenu.
- Navigate to the folder which contains the desired motion capture file, select it and click the 'Import BVH' button.
- In the 'Poperties' panel, select the 'Object' icon (a little orange cube).
- Use the mouse wheel to zoom out, until you see the imported BVH rig, and then select it with right mouse button.
- Use the mouse wheel to zoom in, until you see the the original human model, and then add it to the selection set with <shift> right mouse button.
- You should see in the 'Properties' panel (under the MoCap tools) a means of mapping from the imported 'MoCap BVH' rig bones to our 'makeHuman rig' bones.
- Before we do the bone mapping, we must click the MoCap tools 'AutoScale' button. This scales the 'MoCap BVH' rig to match the scale of our makeHuman model.
- Now we do the bone mapping:
- Click the 'Guess Hierachy Mapping' button in 'MoCap Tools' panel. This will attempt to do as much of the mapping as it can 'guess' (based on bone name similarity).
- Go thru each remaining 'unguessed' BVH bone and assign the equivalent bone in the makeHuman rig. If there is no matching bone, ignore it.
- Mark any 'feet' bones by clicking on the 'little man with one foot on ground' icon. This allows the Retarget to prevent 'skating'.
- When bone mapping between BVH rig and makeHuman rig is done, click the 'Save Mapping' button and then save the blender file (for future use).
- Click the 'Advanced Retargetting' checkbox and then click the 'RETARGET' button ... this might take some time 5..20 mins depending on your cpu speed.
- Now we get rid of the BVH rig, as it's animation info has been placed into the Human rig.
- Select the BVH rig (in Blenders Object mode) and press 'Delete'.
2.3)
- In the 'File' menu, select 'Export' and then select 'Collada' in the subMenu.
- Set 'Filename' field to 'animated_human.dae'.
- Click the 'Export Collada' button (next to the Filename field).
3) ~ Lace/MMI
- The generated Collada .dae file can now be imported as an MMI Rig with ability to animate as per BVH motions, as well as via normal physics.

View File

@@ -0,0 +1,134 @@
with
gel.Window.setup,
gel.Applet.gui_world,
gel.World,
gel.Camera,
gel.Sprite,
gel.Rig,
gel.Forge,
openGL.Model.any,
openGL.Light,
ada.Calendar;
pragma unreferenced (gel.Window.setup);
procedure launch_rig_Demo
--
-- Simple rigged box model with two animated bones.
--
--
is
use gel.Rig,
openGL,
ada.Calendar;
-----------
--- Utility
--
-- function "+" (From : in String) return ada.strings.unbounded.unbounded_String
-- renames ada.strings.unbounded.To_unbounded_String;
-------------
--- Variables
--
the_Applet : constant gel.Applet.gui_World.view := gel.Forge.new_gui_Applet ("Rig Demo", 1536, 864);
the_Ground : constant gel.Sprite.view := gel.Forge.new_box_Sprite (the_Applet.gui_World,
Mass => 0.0,
Size => [50.0, 1.0, 50.0]);
the_rig_Model : aliased constant openGL.Model.any.view := openGL.Model.any.new_Model (--Scale => (1.0, 1.0, 1.0),
-- Model => openGL.to_Asset ("./tarantula-rigged.dae"),
Model => openGL.to_Asset ("./box_1_bone.dae"),
-- Model => openGL.to_Asset ("./box_2_bone.dae"),
Texture => openGL.null_Asset,
Texture_is_lucid => False);
the_Rig : aliased gel.Rig.item;
next_render_Time : ada.calendar.Time;
begin
the_Applet.gui_Camera.Site_is ([0.0, 0.0, 10.0]); -- Position the camera
the_Applet.enable_simple_Dolly (1); -- Enable user camera control via keyboards
the_Applet.Dolly.Speed_is (0.05);
the_Applet.enable_Mouse (detect_Motion => False); -- Enable mouse events.
the_Applet.gui_World.Gravity_is ([0.0, -0.0, 0.0]);
-- Set the lights position and ambient color.
--
declare
Light : openGL.Light.item := the_Applet.Renderer.new_Light;
begin
Light.Color_is ((0.5, 0.9, 0.5));
Light. Site_is ([1000.0, 1000.0, 1000.0]);
the_Applet.Renderer.set (Light);
end;
-- declare
-- leaf_bone_Lengths : bone_id_Map_of_details;
-- begin
-- leaf_bone_Lengths.insert (+"head", to_Details (length => 0.13));
-- leaf_bone_Lengths.insert (+"jaw", to_Details (length => 0.11));
--
-- leaf_bone_Lengths.insert (+"eye_L", to_Details (length => 0.015));
-- leaf_bone_Lengths.insert (+"eye_R", to_Details (length => 0.015));
--
-- leaf_bone_Lengths.insert (+"toe_L", to_Details (length => 0.06));
-- leaf_bone_Lengths.insert (+"toe_R", to_Details (length => 0.06));
--
-- leaf_bone_Lengths.insert (+"thumb_02_L", to_Details (length => 0.02));
-- leaf_bone_Lengths.insert (+"thumb_02_R", to_Details (length => 0.02));
--
-- leaf_bone_Lengths.insert (+"foot_L", to_Details (yaw_Limits => (to_Radians (-0.0),
-- to_Radians ( 0.0))));
-- leaf_bone_Lengths.insert (+"foot_R", to_Details (yaw_Limits => (to_Radians (-0.0),
-- to_Radians ( 0.0))));
--
--
-- leaf_bone_Lengths.insert (+"forearm_L", to_Details (yaw_Limits => (to_Radians (-40.0),
-- to_Radians ( 40.0)),
-- pitch_Limits => (to_Radians (-40.0),
-- to_Radians ( 40.0))));
--
-- leaf_bone_Lengths.insert (+"upper_arm_L", to_Details (yaw_Limits => (to_Radians (-40.0),
-- to_Radians ( 40.0)),
-- pitch_Limits => (to_Radians (-40.0),
-- to_Radians ( 40.0))));
the_Rig.define (the_Applet.gui_World,
the_rig_Model.all'Access,
Mass => 1.0,
-- bone_Details => leaf_bone_Lengths,
is_Kinematic => False);
-- end;
the_Ground.Site_is ([0.0, -4.0, 0.0]);
-- the_Rig .Spin_is (x_Rotation_from (to_Radians (-90.0)));
the_Applet.gui_World.add (the_Rig.base_Sprite, and_Children => True); -- Add the rigs armature sprite.
the_Applet.gui_World.add (the_Ground, and_Children => False); -- Add the ground sprite.
the_Rig.enable_Graphics;
next_render_Time := ada.Calendar.clock;
while the_Applet.is_open
loop
the_Applet.gui_World.evolve; -- Evolve the world.
the_Rig .evolve (world_Age => the_Applet.gui_World.Age); -- Evolve the rig.
the_Applet.freshen; -- Handle any new events and update the screen.
next_render_Time := next_render_Time + gel.World.evolve_Period;
delay until next_render_Time;
end loop;
the_Applet.destroy;
end launch_rig_Demo;

View File

@@ -0,0 +1,17 @@
with
"gel",
"lace_shared";
project rig_Demo
is
for Object_Dir use "build";
for Exec_Dir use ".";
for Main use ("launch_rig_demo.adb");
for Languages use ("Ada");
package Ide renames Lace_shared.Ide;
package Builder renames Lace_shared.Builder;
package Compiler renames Lace_shared.Compiler;
package Binder renames Lace_shared.Binder;
end rig_Demo;

File diff suppressed because one or more lines are too long