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 リストに追加 | |