21: 2012-04-10 (火) 18:58:10 iseki  |
現: 2012-04-11 (水) 09:17:13 iseki  |
| | #br | | #br |
| | | | |
| - | *** I want to move finger of Avatar [#ff0aaf0a] | + | *** Technical Memo [#o812571b] |
| - | - http://community.secondlife.com/t5/Mesh/How-to-Morphing-avatar-meshes-sort-of/td-p/444963 | + | - [[Motion Memo>./Memo]] |
| | + | - [[Finger Motion>./Finger Motion]] |
| | #br | | #br |
| - | | |
| - | *** [[Technical Memo>./Memo]] [#sa4c33b0] | |
| - | #br | |
| - | ** Finger Motion [#xe2d83ed] | |
| - | | |
| - | *** Mesh [#e6fb0fc5] | |
| - | | |
| - | - character/avatar_upper_body.llm + [[avatar_lad.xml>./avatar_lad.xml]] => Viewer | |
| - | #br | |
| - | - http://marupeke296.com/index.html | |
| - | - http://wiki.secondlife.com/wiki/Avatar_Appearance | |
| - | struct morph [] | |
| - | { | |
| - | char[64] morphName | |
| - | S32 numVertices | |
| - | struct vertices[ numVertices ] | |
| - | { | |
| - | U32 vertexIndex | |
| - | LLVector3 coord | |
| - | LLVector3 normal | |
| - | LLVector3 binormal | |
| - | LLVector2 texCoord | |
| - | } | |
| - | } | |
| - | | |
| - | char[64] "End Morphs" | |
| - | #br | |
| - | | |
| - | - LLPolyMorphData -> LLPolyMeshSharedData -> LLPolyMesh -> LLPolyMorphData | |
| - | - LLCharacter::updateVisualParams() -> LLPolyMorphTarget::apply() | |
| - | #br | |
| - | | |
| - | *** llpolymorph.h [#gad26ccb] | |
| - | - LLPolyMorphData | |
| - | //----------------------------------------------------------------------------- | |
| - | // LLPolyMorphData() | |
| - | //----------------------------------------------------------------------------- | |
| - | class LLPolyMorphData | |
| - | { | |
| - | public: | |
| - | LLPolyMorphData(const std::string& morph_name); | |
| - | ~LLPolyMorphData(); | |
| - | | |
| - | BOOL loadBinary(LLFILE* fp, LLPolyMeshSharedData *mesh); | |
| - | const std::string& getName() { return mName; } | |
| - | | |
| - | public: | |
| - | std::string mName; | |
| - | // morphology | |
| - | U32 mNumIndices; | |
| - | U32* mVertexIndices; | |
| - | U32 mCurrentIndex; | |
| - | LLVector3* mCoords; | |
| - | LLVector3* mNormals; | |
| - | LLVector3* mBinormals; | |
| - | LLVector2* mTexCoords; | |
| - | F32 mTotalDistortion; // vertex distortion summed over entire morph | |
| - | F32 mMaxDistortion; // maximum single vertex distortion in a given morph | |
| - | LLVector3 mAvgDistortion; // average vertex distortion, to infer directionality of the morph | |
| - | LLPolyMeshSharedData* mMesh; | |
| - | }; | |
| - | #br | |
| - | | |
| - | *** llpolyMesh.h [#b2e1b287] | |
| - | **** LLPolyMesh [#o09cbc83] | |
| - | -- LLPolyMeshSharedData *mSharedData | |
| - | -- getMorphData(const std::string& morph_name) で mMorphData からメッシュデータを得る | |
| - | #br | |
| - | **** LLPolyMeshSharedData [#n149cc3d] | |
| - | -- morphdata_list_t mMorphData; // LLPolyMorphData のリスト | |
| - | -- loadMesh() でメッシュデータを読み込んで mMorphData リストに追加 | |