123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619 |
- <?xml version="1.0" encoding="utf-8"?>
- <COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
- <asset>
- <contributor>
- <author>gcorson</author>
- <authoring_tool>Maya8.5 | ColladaMaya v3.03</authoring_tool>
- <comments>Collada Maya Export Options:
- bakeTransforms=0;exportPolygonMeshes=1;bakeLighting=0;isSampling=0;
- curveConstrainSampling=0;removeStaticCurves=1;exportCameraAsLookat=0;
- exportLights=1;exportCameras=1;exportJointsAndSkin=1;
- exportAnimations=1;exportTriangles=0;exportInvisibleNodes=0;
- exportNormals=1;exportTexCoords=1;
- exportVertexColors=1;exportVertexColorsAnimation=0;exportTangents=0;
- exportTexTangents=0;exportConstraints=1;exportPhysics=1;exportXRefs=1;
- dereferenceXRefs=0;cameraXFov=0;cameraYFov=1</comments>
- <source_data>
- file:///C:/Documents%20and%20Settings/gcorson/Desktop/Crystal%20Content/AmandaCrush/untitled
- </source_data>
- </contributor>
- <created>2007-04-04T23:08:51Z</created>
- <modified>2007-06-21T18:50:45Z</modified>
- <unit meter="0.01" name="centimeter"/>
- <up_axis>Y_UP</up_axis>
- </asset>
- <library_materials>
- <material id="lambert1" name="lambert2">
- <instance_effect url="#lambert1-fx"/>
- </material>
- </library_materials>
- <library_effects>
- <effect id="lambert1-fx">
- <profile_COMMON>
- <technique sid="common">
- <lambert>
- <emission>
- <color>0 0 0 1</color>
- </emission>
- <ambient>
- <color>0 0 0 1</color>
- </ambient>
- <diffuse>
- <color>0.9 0.5 0.5 1</color>
- </diffuse>
- <transparent opaque="RGB_ZERO">
- <color>0 0 0 1</color>
- </transparent>
- <transparency>
- <float>1</float>
- </transparency>
- <index_of_refraction>
- <float>1</float>
- </index_of_refraction>
- </lambert>
- </technique>
- </profile_COMMON>
- </effect>
- </library_effects>
- <library_geometries>
- <!--
- *******************************************************************************************
- This is a pretty standard mesh for the same as used in the skinning example. It's a 6
- sided cylinder divided into 6 sections with a total of 42 vertices. It is used as the
- base mesh (source) in the morph controller.
- *******************************************************************************************
- -->
- <geometry id="pCylinderShape1" name="pCylinderShape1">
- <mesh>
- <source id="pCylinderShape1-positions" name="position">
- <float_array id="pCylinderShape1-positions-array" count="126">20 -90 -34.641
- -20 -90 -34.641 -40 -90 -0.000005 -20 -90 34.641 20 -90 34.641 40 -90 0 20 -60 -34.641
- -20 -60 -34.641 -40 -60 -0.000005 -20 -60 34.641 20 -60 34.641 40 -60 0 20 -30 -34.641
- -20 -30 -34.641 -40 -30 -0.000005 -20 -30 34.641 20 -30 34.641 40 -30 0 20 0 -34.641
- -20 0 -34.641 -40 0 -0.000005 -20 0 34.641 20 0 34.641 40 0 0 20 30 -34.641 -20 30 -34.641
- -40 30 -0.000005 -20 30 34.641 20 30 34.641 40 30 0 20 60 -34.641 -20 60 -34.641
- -40 60 -0.000005 -20 60 34.641 20 60 34.641 40 60 0 20 90 -34.641 -20 90 -34.641
- -40 90 -0.000005 -20 90 34.641 20 90 34.641 40 90 0</float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-positions-array" count="42" stride="3">
- <param name="X" type="float"/>
- <param name="Y" type="float"/>
- <param name="Z" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <source id="pCylinderShape1-normals" name="normal">
- <float_array id="pCylinderShape1-normals-array" count="468">0 0 -1 0 0 -1
- 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1
- 0 0 1 0 0 1 0.866026 0 0.5 0.866026 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0
- 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025
- 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025
- 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866025
- 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025
- 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1
- 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0
- 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 0.5 0.866026
- 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0
- -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0</float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-normals-array" count="156" stride="3">
- <param name="X" type="float"/>
- <param name="Y" type="float"/>
- <param name="Z" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <source id="pCylinderShape1-map1" name="map1">
- <float_array id="pCylinderShape1-map1-array" count="122">0.578125 0.020933
- 0.421875 0.020933 0.34375 0.15625 0.421875 0.291566 0.578125 0.291566 0.65625 0.15625
- 0.375 0.3125 0.416667 0.3125 0.458333 0.3125 0.5 0.3125 0.541667 0.3125 0.583333
- 0.3125 0.625 0.3125 0.375 0.375157 0.416667 0.375157 0.458333 0.375157 0.5 0.375157
- 0.541667 0.375157 0.583333 0.375157 0.625 0.375157 0.375 0.437813 0.416667 0.437813
- 0.458333 0.437813 0.5 0.437813 0.541667 0.437813 0.583333 0.437813 0.625 0.437813
- 0.375 0.50047 0.416667 0.50047 0.458333 0.50047 0.5 0.50047 0.541667 0.50047 0.583333
- 0.50047 0.625 0.50047 0.375 0.563127 0.416667 0.563127 0.458333 0.563127 0.5 0.563127
- 0.541667 0.563127 0.583333 0.563127 0.625 0.563127 0.375 0.625783 0.416667 0.625783
- 0.458333 0.625783 0.5 0.625783 0.541667 0.625783 0.583333 0.625783 0.625 0.625783
- 0.375 0.68844 0.416667 0.68844 0.458333 0.68844 0.5 0.68844 0.541667 0.68844 0.583333
- 0.68844 0.625 0.68844 0.578125 0.708434 0.421875 0.708434 0.34375 0.84375 0.421875
- 0.979066 0.578125 0.979066 0.65625 0.84375</float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-map1-array" count="61" stride="2">
- <param name="S" type="float"/>
- <param name="T" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <vertices id="pCylinderShape1-vertices">
- <input semantic="POSITION" source="#pCylinderShape1-positions"/>
- </vertices>
- <polylist material="lambert2SG" count="38">
- <input semantic="VERTEX" source="#pCylinderShape1-vertices" offset="0"/>
- <input semantic="NORMAL" source="#pCylinderShape1-normals" offset="1"/>
- <input semantic="TEXCOORD" source="#pCylinderShape1-map1" offset="2" set="0"/>
- <vcount>4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6</vcount>
- <p>0 0 6 1 1 7 7 2 14 6 3 13 1 4 7 2 5 8 8 6 15 7 7 14 2 8 8 3 9 9 9 10
- 16 8 11 15 3 12 9 4 13 10 10 14 17 9 15 16 4 16 10 5 17 11 11 18 18 10 19 17 5
- 20 11 0 21 12 6 22 19 11 23 18 6 24 13 7 25 14 13 26 21 12 27 20 7 28 14 8 29 15 14
- 30 22 13 31 21 8 32 15 9 33 16 15 34 23 14 35 22 9 36 16 10 37 17 16 38 24 15
- 39 23 10 40 17 11 41 18 17 42 25 16 43 24 11 44 18 6 45 19 12 46 26 17 47 25 12
- 48 20 13 49 21 19 50 28 18 51 27 13 52 21 14 53 22 20 54 29 19 55 28 14 56 22 15
- 57 23 21 58 30 20 59 29 15 60 23 16 61 24 22 62 31 21 63 30 16 64 24 17 65 25 23
- 66 32 22 67 31 17 68 25 12 69 26 18 70 33 23 71 32 18 72 27 19 73 28 25 74 35 24
- 75 34 19 76 28 20 77 29 26 78 36 25 79 35 20 80 29 21 81 30 27 82 37 26 83 36 21
- 84 30 22 85 31 28 86 38 27 87 37 22 88 31 23 89 32 29 90 39 28 91 38 23 92 32 18
- 93 33 24 94 40 29 95 39 24 96 34 25 97 35 31 98 42 30 99 41 25 100 35 26 101 36 32
- 102 43 31 103 42 26 104 36 27 105 37 33 106 44 32 107 43 27 108 37 28 109 38 34
- 110 45 33 111 44 28 112 38 29 113 39 35 114 46 34 115 45 29 116 39 24 117 40 30
- 118 47 35 119 46 30 120 41 31 121 42 37 122 49 36 123 48 31 124 42 32 125 43 38
- 126 50 37 127 49 32 128 43 33 129 44 39 130 51 38 131 50 33 132 44 34 133 45 40
- 134 52 39 135 51 34 136 45 35 137 46 41 138 53 40 139 52 35 140 46 30 141 47 36
- 142 54 41 143 53 0 144 0 5 145 5 4 146 4 3 147 3 2 148 2 1 149 1 36 150 59 37
- 151 58 38 152 57 39 153 56 40 154 55 41 155 60</p>
- </polylist>
- </mesh>
- </geometry>
- <!--
- *******************************************************************************************
- This mesh is the same as the one above, but one of the rings of verticies has been moved
- outwards to create a bulge in the middle of the cylinder. This geometry is used as the
- morph target (aka deformer or blend shape) in the morph controller.
- A morph can operate on ANY or ALL of the sources so you could morph positions, UVs and
- normals all at the same time. The sources to be morphed have to be referenced by <input>
- tags inside the <vertices> tag in both the morph target and the base mesh. In this example
- only the positions are referenced by the <vertices> tag so they are all this morph will effect.
- Since only the positions are being morphed, everything but the target__pCylinderShape1-positions
- source and the <vertices> tag could be deleted from this <geometry> and it the morph
- should still work. The DCC tool should get all the other information from the base mesh, so
- there is no need to duplicate it here.
- This extra information may still be exported by some DCC tools for a variety of reasons.
- The only time it is actually REQUIRED is if the morph target geometry is also instantiated in
- the scene by having an <instance_geometry> tag point directly to it's geometry tag.
- Due to a bug in the ColladaMaya Maya expects the polylist information to be present in the
- morph target or the morph will not be instantiated.
- *******************************************************************************************
- -->
- <geometry id="target__pCylinderShape1" name="target__pCylinderShape1">
- <mesh>
- <source id="target__pCylinderShape1-positions" name="position">
- <float_array id="target__pCylinderShape1-positions-array" count="126">20 -90 -34.641
- -20 -90 -34.641 -40 -90 -0.000005 -20 -90 34.641 20 -90 34.641 40 -90 0 20 -60 -34.641
- -20 -60 -34.641 -40 -60 -0.000005 -20 -60 34.641 20 -60 34.641 40 -60 0 20 -30 -34.641
- -20 -30 -34.641 -40 -30 -0.000005 -20 -30 34.641 20 -30 34.641 40 -30 0 20 0 -34.641
- -20 0 -34.641 -40 0 -0.000005 -20 0 34.641 20 0 34.641 40 0 0 32.6396 30 -69.7557
- -32.6396 30 -69.7557 -65.2792 30 -0.00001 -32.6396 30 69.7557 32.6396 30 69.7557
- 65.2792 30 0 20 60 -34.641 -20 60 -34.641 -40 60 -0.000005 -20 60 34.641 20 60 34.641
- 40 60 0 20 90 -34.641 -20 90 -34.641 -40 90 -0.000005 -20 90 34.641 20 90 34.641
- 40 90 0</float_array>
- <technique_common>
- <accessor source="#target__pCylinderShape1-positions-array" count="42" stride="3">
- <param name="X" type="float"/>
- <param name="Y" type="float"/>
- <param name="Z" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <source id="target__pCylinderShape1-normals" name="normal">
- <float_array id="target__pCylinderShape1-normals-array" count="468">0 0 -1
- 0 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1
- 0 0 1 0 0 1 0.866026 0 0.5 0.866026 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1
- -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1
- 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025
- 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 -0.866026 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866025
- 0 0.5 0.866025 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026
- 0 -0.5 0 0 -1 0 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866025 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026
- 0 0.5 0 0 1 0 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866025 0 0.5 0.866025
- 0 0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 0 -1 0
- 0 -1 0 0 -1 0 0 -1 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025 0 -0.5 -0.866025
- 0 -0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 -0.866026 0 0.5 0 0 1 0
- 0 1 0 0 1 0 0 1 0.866025 0 0.5 0.866025 0 0.5 0.866026 0 0.5 0.866026 0 0.5 0.866026
- 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0.866026 0 -0.5 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0
- -1 0 0 -1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0</float_array>
- <technique_common>
- <accessor source="#target__pCylinderShape1-normals-array" count="156" stride="3">
- <param name="X" type="float"/>
- <param name="Y" type="float"/>
- <param name="Z" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <source id="target__pCylinderShape1-map1" name="map1">
- <float_array id="target__pCylinderShape1-map1-array" count="122">0.578125 0.020933
- 0.421875 0.020933 0.34375 0.15625 0.421875 0.291566 0.578125 0.291566 0.65625 0.15625 0.375
- 0.3125 0.416667 0.3125 0.458333 0.3125 0.5 0.3125 0.541667 0.3125 0.583333 0.3125 0.625
- 0.3125 0.375 0.375157 0.416667 0.375157 0.458333 0.375157 0.5 0.375157 0.541667 0.375157
- 0.583333 0.375157 0.625 0.375157 0.375 0.437813 0.416667 0.437813 0.458333 0.437813 0.5
- 0.437813 0.541667 0.437813 0.583333 0.437813 0.625 0.437813 0.375 0.50047 0.416667 0.50047
- 0.458333 0.50047 0.5 0.50047 0.541667 0.50047 0.583333 0.50047 0.625 0.50047 0.375
- 0.563127 0.416667 0.563127 0.458333 0.563127 0.5 0.563127 0.541667 0.563127 0.583333
- 0.563127 0.625 0.563127 0.375 0.625783 0.416667 0.625783 0.458333 0.625783 0.5 0.625783
- 0.541667 0.625783 0.583333 0.625783 0.625 0.625783 0.375 0.68844 0.416667 0.68844
- 0.458333 0.68844 0.5 0.68844 0.541667 0.68844 0.583333 0.68844 0.625 0.68844 0.578125
- 0.708434 0.421875 0.708434 0.34375 0.84375 0.421875 0.979066 0.578125 0.979066 0.65625
- 0.84375</float_array>
- <technique_common>
- <accessor source="#target__pCylinderShape1-map1-array" count="61" stride="2">
- <param name="S" type="float"/>
- <param name="T" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <vertices id="target__pCylinderShape1-vertices">
- <input semantic="POSITION" source="#target__pCylinderShape1-positions"/>
- </vertices>
- <polylist material="target__lambert2SG" count="38">
- <input semantic="VERTEX" source="#target__pCylinderShape1-vertices" offset="0"/>
- <input semantic="NORMAL" source="#target__pCylinderShape1-normals" offset="1"/>
- <input semantic="TEXCOORD" source="#target__pCylinderShape1-map1" offset="2" set="0"/>
- <vcount>4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 6 6</vcount>
- <p>0 0 6 1 1 7 7 2 14 6 3 13 1 4 7 2 5 8 8 6 15 7 7 14 2 8 8 3 9 9 9 10 16 8 11
- 15 3 12 9 4 13 10 10 14 17 9 15 16 4 16 10 5 17 11 11 18 18 10 19 17 5 20 11 0 21 12 6
- 22 19 11 23 18 6 24 13 7 25 14 13 26 21 12 27 20 7 28 14 8 29 15 14 30 22 13 31 21 8
- 32 15 9 33 16 15 34 23 14 35 22 9 36 16 10 37 17 16 38 24 15 39 23 10 40 17 11 41 18 17
- 42 25 16 43 24 11 44 18 6 45 19 12 46 26 17 47 25 12 48 20 13 49 21 19 50 28 18
- 51 27 13 52 21 14 53 22 20 54 29 19 55 28 14 56 22 15 57 23 21 58 30 20 59 29 15
- 60 23 16 61 24 22 62 31 21 63 30 16 64 24 17 65 25 23 66 32 22 67 31 17 68 25 12
- 69 26 18 70 33 23 71 32 18 72 27 19 73 28 25 74 35 24 75 34 19 76 28 20 77 29 26
- 78 36 25 79 35 20 80 29 21 81 30 27 82 37 26 83 36 21 84 30 22 85 31 28 86 38 27
- 87 37 22 88 31 23 89 32 29 90 39 28 91 38 23 92 32 18 93 33 24 94 40 29 95 39 24
- 96 34 25 97 35 31 98 42 30 99 41 25 100 35 26 101 36 32 102 43 31 103 42 26 104 36 27
- 105 37 33 106 44 32 107 43 27 108 37 28 109 38 34 110 45 33 111 44 28 112 38 29
- 113 39 35 114 46 34 115 45 29 116 39 24 117 40 30 118 47 35 119 46 30 120 41 31
- 121 42 37 122 49 36 123 48 31 124 42 32 125 43 38 126 50 37 127 49 32 128 43 33
- 129 44 39 130 51 38 131 50 33 132 44 34 133 45 40 134 52 39 135 51 34 136 45 35
- 137 46 41 138 53 40 139 52 35 140 46 30 141 47 36 142 54 41 143 53 0 144 0 5
- 145 5 4 146 4 3 147 3 2 148 2 1 149 1 36 150 59 37 151 58 38 152 57 39 153 56 40
- 154 55 41 155 60</p>
- </polylist>
- </mesh>
- </geometry>
- </library_geometries>
- <library_controllers>
- <!--
- *******************************************************************************************
- This controller defines a morph with pCylinderShape1 as the source and
- target_pCylinderShape1 as the morph target (deformer)
- *******************************************************************************************
- -->
- <controller id="pCylinderShape1-morph" name="blendShape1">
- <morph method="NORMALIZED" source="#pCylinderShape1">
- <!--
- *******************************************************************************************
- This source lists all the morph targets that will be used by this controller. In this
- case there is just one, but there could be as many as you like. Multiple targets are
- commonly used to apply facial expressions to characters. There would a "happy" morph,
- a "sad" one, an excited one...etc. Which could be mixed so you could make an expression
- that was half sad, half excited...etc.
- *******************************************************************************************
- -->
- <source id="pCylinderShape1-morph-targets">
- <IDREF_array id="pCylinderShape1-morph-targets-array" count="1">target__pCylinderShape1</IDREF_array>
- <technique_common>
- <accessor source="#pCylinderShape1-morph-targets-array" count="1" stride="1">
- <param name="MORPH_TARGET" type="IDREF"/>
- </accessor>
- </technique_common>
- </source>
- <!--
- *******************************************************************************************
- This source contains the weights to be applied to each morph target (in this case just one)
- A weight of 1 means the morph is fully applied. This can be animated.
- *******************************************************************************************
- -->
- <source id="pCylinderShape1-morph-morph_weights">
- <float_array id="pCylinderShape1-morph-morph_weights-array" count="1">1</float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-morph-morph_weights-array" count="1" stride="1">
- <param name="MORPH_WEIGHT" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <!--
- *******************************************************************************************
- The inputs in the targets tag point to the sources containing the list of morph targets and
- the list of corrisponding weights.
- *******************************************************************************************
- -->
- <targets>
- <input semantic="MORPH_TARGET" source="#pCylinderShape1-morph-targets"/>
- <input semantic="MORPH_WEIGHT" source="#pCylinderShape1-morph-morph_weights"/>
- </targets>
- </morph>
- </controller>
- <!--
- *******************************************************************************************
- This controller defines how to skin the geometry that comes out of the morph controller.
- *******************************************************************************************
- -->
- <controller id="pCylinderShape1-morph-skin" name="skinCluster1">
- <!--
- *******************************************************************************************
- A regular skin controller would point at a geometry we wanted to skin. In this case we are
- taking the output of a morph controller (which is geometry) and skinning that.
- *******************************************************************************************
- -->
- <skin source="#pCylinderShape1">
- <!--
- *******************************************************************************************
- The bind shape matrix describes how to transform the pCylinderShape1-morph geometry into the
- right coordinate system for use with the joints. In this case we do an +90 Y transform because
- the geometry was initially a 180 unit long cylinder with 0,0,0 at it's center.
- This moves it so 0,0,0 is at the base of the cylinder.
- *******************************************************************************************
- -->
- <bind_shape_matrix>
- 1 0 0 0
- 0 1 0 90
- 0 0 1 0
- 0 0 0 1
- </bind_shape_matrix>
- <!--
- *******************************************************************************************
- This source contains a list of the SIDs of the 7 joints that will influence the skin. You
- can also use an IDREF_Array here but use of SIDs is prefered because they allow a controller
- to be used several times with different skeletons. Applications MUST be able to import either
- IDREF_Array or Name_array tags. And MUST search the correct namespace for the ID or SID
- *******************************************************************************************
- -->
- <source id="pCylinderShape1-morph-skin-joints">
- <Name_array id="pCylinderShape1-morph-skin-joints-array" count="7">
- joint1 joint2 joint3 joint4 joint5 joint6 joint7</Name_array>
- <technique_common>
- <accessor source="#pCylinderShape1-morph-skin-joints-array" count="7" stride="1">
- <param name="JOINT" type="Name"/>
- </accessor>
- </technique_common>
- </source>
- <!--
- *******************************************************************************************
- This source defines the inverse bind matrix for each joint, these are used to bring
- coordinates being skinned into the same space as each joint. Note that in this case the
- joints begin at 0,0,0 and move up 30 units for each joint, so the inverse bind matrices
- are the opposite of that.
- *******************************************************************************************
- -->
- <source id="pCylinderShape1-morph-skin-bind_poses">
- <float_array id="pCylinderShape1-morph-skin-bind_poses-array" count="112">
- 1 0 0 0
- 0 1 0 0
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -30
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -60
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -90
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -120
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -150
- 0 0 1 0
- 0 0 0 1
- 1 0 0 0
- 0 1 0 -180
- 0 0 1 0
- 0 0 0 1
- </float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-morph-skin-bind_poses-array" count="7" stride="16">
- <param name="TRANSFORM" type="float4x4"/>
- </accessor>
- </technique_common>
- </source>
- <!--
- *******************************************************************************************
- This source defines a weight for each vertex and each joint. The weight defines how much
- a particular joint will contribute to moving a particular vertex's position. This allows
- several joints to influence vertices by different amounts, giving a nice smooth bend.
- Since there are 42 vertices and 7 joints there should be at most 294 weights. In this case
- the skinning algorithm was told that each vertex should be effected by the 5 nearest joints
- so we have 5 weights per vertex giving a total of 210. Maya has thrown in an extra weight
- of 1 at the beginning giving us a total of 211.
- Weights 1-6 will be applied to the first vertex, you can see how they work. The first weight
- represents the closest joint to the vertex and has the largest value, the remaining 4 weights
- get smaller and smaller as the associated joint gets farther from the vertex.
- *******************************************************************************************
- -->
- <source id="pCylinderShape1-morph-skin-weights">
- <float_array id="pCylinderShape1-morph-skin-weights-array" count="211">
- 1 0.648726 0.265718 0.061417 0.01765 0.006487 0.648726 0.265718 0.061417 0.01765 0.006487
- 0.648726 0.265718 0.061417 0.01765 0.006487 0.648726 0.265718 0.061417 0.01765 0.006487
- 0.648726 0.265718 0.061417 0.01765 0.006487 0.648726 0.265718 0.061417 0.01765 0.006487
- 0.395025 0.395025 0.161802 0.037398 0.010747 0.395025 0.395025 0.161802 0.037398 0.010747
- 0.395025 0.395025 0.161802 0.037398 0.010747 0.395025 0.395025 0.161802 0.037398 0.010747
- 0.395025 0.395025 0.161802 0.037398 0.010747 0.395025 0.395025 0.161802 0.037398 0.010747
- 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491
- 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491
- 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.032491 0.140569 0.343186 0.343186 0.140569 0.032491 0.140569 0.343186 0.343186 0.140569
- 0.010747 0.037398 0.161802 0.395025 0.395025 0.010747 0.037398 0.161802 0.395025 0.395025
- 0.010747 0.037398 0.161802 0.395025 0.395025 0.010747 0.037398 0.161802 0.395025 0.395025
- 0.010747 0.037398 0.161802 0.395025 0.395025 0.010747 0.037398 0.161802 0.395025 0.395025</float_array>
- <technique_common>
- <accessor source="#pCylinderShape1-morph-skin-weights-array" count="211" stride="1">
- <param name="WEIGHT" type="float"/>
- </accessor>
- </technique_common>
- </source>
- <!--
- *******************************************************************************************
- The joints tag connects the source containing the name of each joint with the source
- containing the inverse bind matrices for each joint.
- *******************************************************************************************
- -->
- <joints>
- <input semantic="JOINT" source="#pCylinderShape1-morph-skin-joints"/>
- <input semantic="INV_BIND_MATRIX" source="#pCylinderShape1-morph-skin-bind_poses"/>
- </joints>
- <!--
- *******************************************************************************************
- The vertex_weights tag associates the weights and joints from the previously defined
- sources with the vertices in the geometry being skinned. Each entry in this list matches
- a vertex in the original geometry, so the count here should be the same as the count
- in the geometry being skinned.
- Each weight/joint pair is referred to as an "influence", a vertex can have any number of
- influences applied to it. The <vcount> value for a vertex defines the number of influences
- on that vertex. In this case every vertex has 5 influences. The values in the <v> array
- are the indices of the joint and weight that make up that influence.
- *******************************************************************************************
- -->
- <vertex_weights count="42">
- <input semantic="JOINT" source="#pCylinderShape1-morph-skin-joints" offset="0"/>
- <input semantic="WEIGHT" source="#pCylinderShape1-morph-skin-weights" offset="1"/>
- <vcount>5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 </vcount>
- <v>0 1 1 2 2 3 3 4 4 5 0 6 1 7 2 8 3 9 4 10 0 11 1 12 2 13 3 14 4 15 0 16 1
- 17 2 18 3 19 4 20 0 21 1 22 2 23 3 24 4 25 0 26 1 27 2 28 3 29 4 30 0 31 1 32 2 33 3
- 34 4 35 0 36 1 37 2 38 3 39 4 40 0 41 1 42 2 43 3 44 4 45 0 46 1 47 2 48 3 49 4 50 0
- 51 1 52 2 53 3 54 4 55 0 56 1 57 2 58 3 59 4 60 0 61 1 62 2 63 3 64 4 65 0 66 1 67 2
- 68 3 69 4 70 0 71 1 72 2 73 3 74 4 75 0 76 1 77 2 78 3 79 4 80 0 81 1 82 2 83 3 84 4
- 85 0 86 1 87 2 88 3 89 4 90 0 91 1 92 2 93 3 94 4 95 0 96 1 97 2 98 3 99 4 100 0 101 1
- 102 2 103 3 104 4 105 0 106 1 107 2 108 3 109 4 110 0 111 1 112 2 113 3 114 4 115 0
- 116 1 117 2 118 3 119 4 120 2 121 3 122 4 123 5 124 6 125 2 126 3 127 4 128 5 129 6
- 130 1 131 2 132 3 133 4 134 5 135 1 136 2 137 3 138 4 139 5 140 1 141 2 142 3 143 4
- 144 5 145 1 146 2 147 3 148 4 149 5 150 2 151 3 152 4 153 5 154 6 155 2 156 3 157 4
- 158 5 159 6 160 2 161 3 162 4 163 5 164 6 165 2 166 3 167 4 168 5 169 6 170 2 171 3
- 172 4 173 5 174 6 175 2 176 3 177 4 178 5 179 6 180 2 181 3 182 4 183 5 184 6 185 2
- 186 3 187 4 188 5 189 6 190 2 191 3 192 4 193 5 194 6 195 2 196 3 197 4 198 5 199 6
- 200 2 201 3 202 4 203 5 204 6 205 2 206 3 207 4 208 5 209 6 210</v>
- </vertex_weights>
- </skin>
- </controller>
- </library_controllers>
- <library_visual_scenes>
- <visual_scene id="VisualSceneNode" name="untitled">
- <!--
- *******************************************************************************************
- This is the node hierarchy that represents the skeleton of the skinned object.
- The first node has an ID to act as a starting point for SID searches, the rest
- of the nodes in the hierarchy only need SIDs. It is preferable to use SIDs to
- identify the joints of the skeleton because it allows the skin controller to be
- used several times with different skeletons. For example we could have a second
- joint hierarchy using the same SIDs but with a different id (like skeleton2_root)
- on the first node and different transforms.
- In this example the root joint of the skeleton is 20 units above the ground.
- All the other joints are 30 units apart in the Y direction. A Z rotation has been
- added to some of the joints to cause the skinned/morphed cylinder to gradually bend so
- you can see the skinning effect.
- *******************************************************************************************
- -->
- <node id="skeleton_root" name="joint1" sid="joint1" type="JOINT">
- <translate sid="translate">0 20 0</translate>
- <!--
- *******************************************************************************************
- Some people try to put the instance_controller here. This will not work correctly for
- a skin because the skinning process has already transformed all the vertices using the
- full transform in the joints that the skin controller references. This means the data
- coming out of the instance_controller is effectively in world space. If we put the
- instance_controller here, the geometry coming out of it would be transformed (again) by
- this node, moving it up an additional 20 units.
- *******************************************************************************************
- -->
- <node name="joint2" sid="joint2" type="JOINT">
- <translate>0 30 0</translate>
- <node name="joint3" sid="joint3" type="JOINT">
- <translate>0 30 0</translate>
- <rotate>0 0 1 17.972</rotate>
- <node name="joint4" sid="joint4" type="JOINT">
- <translate>0 30 0</translate>
- <rotate>0 0 1 16.4036</rotate>
- <node name="joint5" sid="joint5" type="JOINT">
- <translate>0 30 0</translate>
- <rotate>0 0 1 21.1126</rotate>
- <node name="joint6" sid="joint6" type="JOINT">
- <translate>0 30 0</translate>
- <rotate>0 0 1 16.007</rotate>
- <node name="joint7" sid="joint7" type="JOINT">
- <translate>0 30 0</translate>
- </node>
- </node>
- </node>
- </node>
- </node>
- </node>
- </node>
- <!--
- *******************************************************************************************
- This node is where the skinned/morphed geometry is instantiated. The geometry that comes out
- of a skin controller has already been transformed by the joints referenced in the skin
- which puts the geometry in world space. This is why we are instantiating the skin at
- the root of the hierarchy rather than up in the "skeleton_root" node
- *******************************************************************************************
- -->
- <node id="pCylinder1" name="pCylinder1" type="NODE">
- <instance_controller url="#pCylinderShape1-morph-skin">
- <!--
- *******************************************************************************************
- The skeleton tag tells the controller where it should start searching for any SIDs found
- in the skin. This allows the same controller to be re-used with different joint hierarchies.
- If the controller uses an IDREF_Array then the skeleton tag is not required because IDs are
- global.
- *******************************************************************************************
- -->
- <skeleton>#skeleton_root</skeleton>
- <bind_material>
- <technique_common>
- <instance_material symbol="lambert2SG" target="#lambert1"/>
- </technique_common>
- </bind_material>
- </instance_controller>
- </node>
- </visual_scene>
- </library_visual_scenes>
- <scene>
- <instance_visual_scene url="#VisualSceneNode"/>
- </scene>
- </COLLADA>
|