ミ。 ミーミコムひオムミセミシ ムミイム紹キミーミスミセ ミエミセミイミセミサム糊スミセ ミシミスミセミウミセ ミソムミク ムミーミアミセムひオ ム ミ慴セミ墟ーミソミセミシ. ミ? ミオムミサミク ムムひーミイミクムび ム災コムミソミオムミクミシミオミスムび, ムひセ ミシミセミカミオム ミソミセミスミーミエミセミアミクムびム ミイミセミイムミオ ムミセミアムミームび ミスミーミソムミクミシミオム ムミイミセミオミウミセ ミーミコムひオムミー. ミ ムミアミセムミコミオ ミーミサム袴ひオムミスミームひクミイミスミセミウミセ ミーミコムひオムミー ム ムミームムミコミーミカム ムムτび ミソミセミキミカミオ, ムミオミケムミーム ミソミセミエミオミサム紗ム ミコミーミコ ミクミキミイミサミオムム ミウミオミセミシミオムびミクム ムミームムひオミケ ムひオミサミー ミーミコムひオムミー ミイ ミセムひエミオミサム糊スム巾ケ ムミーミケミサ ミク ミコミーミコ ミソミセムひセミシ ム采ひセ ミイムミオ ムミクムミセミイミームび ミイ ミイミクミエミオ ミセムひエミオミサム糊スミセミウミセ ミセミアム諌オミコムひー.
ミ?ミキミイミサミオムミオミスミクミオ ミウミオミセミシミオムびミクミク
ミ斷クミカミオ ミソムミオミエムムひーミイミサミオミス ミコミセミエ ミソミセ ミクミキミイミサミオムミオミスミクム ミウミオミセミシミオムびミクミク ミセミアム諌オミコムひー ミク ミキミーミソミクムミク ミイ ミセムひエミオミサム糊スム巾ケ ムミーミケミサ (ム ミクミシミオミスミオミシ ム采ひセミウミセ ミセミアム諌オミコムひー ミク ムミームム威クムミオミスミクミオミシ *.msh)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | FBModelList lModelList; FBGetSelectedModels( lModelList ); for (int model=0; modelName ); FBGeometry lGeom(lActorModel); FBMesh lMesh(lActorModel); FBString strFileName("C:\\"); strFileName = strFileName + lActorModel->Name; strFileName = strFileName + ".msh"; FILE *f = fopen( strFileName, "w" ); if (f == NULL) return; fseek(f, 0, 0); fprintf(f, "01\n" ); // file version fprintf(f, "%s\n", (char*) lActorModel->Name ); // extract geometry (vertices) FBVertex vertex; FBNormal normal; fprintf(f, "%d\n", lGeom.VertexCount() ); for (int i=0; i { vertex = lGeom.VertexGet(i); normal = lGeom.VertexNormalGet(i); fprintf( f, "%f %f %f\n", vertex[0], vertex[1], vertex[2] ); fprintf( f, "%f %f %f\n", normal[0], normal[1], normal[2] ); } // extract mesh (polygons) fprintf( f, "%d\n", lMesh.PolygonCount() ); for (int i=0; i { fprintf( f, "%d\n", lMesh.PolygonVertexCount(i) ); for (int j=0; j fprintf( f, "%d\n", lMesh.PolygonVertexIndex(i, j) ); } fclose(f); } |
ミ斷オムミコミセミサム糊コミセ ムτひセムミスミオミスミクミケ ミコ ミソムミクミサミセミカミオミスミスミセミシム ミイム錦威オ ミーミサミウミセムミクムひシム:
1) ミソムミオミカミエミオ ミイムミオミウミセ ミシム ミソミセミサムτミーミオミシ ムミソミクムミセミコ ミイム巾エミオミサミオミスミスム錦 ミセミアム諌オミコムひセミイ ミイ ムムミオミスミオ ミク ミキミームひオミシ ミキミーミソムτミコミーミオミシ ミウミサミーミイミスム巾ケ ムミクミコミサ ミソミセ ミコミーミカミエミセミシム ムひーミコミセミシム ミセミアム諌オミコムび
1 2 3 4 5 6 7 8 9 | FBModelList lModelList; FBGetSelectedModels( lModelList ); for (int model=0; modelName ); FBGeometry lGeom(lActorModel); FBMesh lMesh(lActorModel); |
3) ミコミサミームム FBGeometry ミエミーミオム ミスミーミシ ミクミスムミセムミシミームミクム ミセ ミスミーミアミセムミオ ミイミオムム威クミス ミコミームミコミームミー
lGeom.VertexCount() — ミセミアム禍オミオ ミコミセミサミクムミオムムひイミセ ミイミオムム威クミス
lGeom.VertexGet(i) — ミイミセミキミイムミーム禍ーミオム ミイミオムム威クミスム ム ミクミスミエミオミコムミセミシ i
lGeom.VertexNormalGet(i) — ミイミセミキミイムミーム禍ーミオム ミスミセムミシミーミサム ミエミサム ミイミオムム威クミスム ム ミクミスミエミオミコムミセミシ i
4) ミコミサミームム FBMesh ミエミーミオム ミスミーミシ ミクミスムミセムミシミームミクム ミセ ミスミーミアミセムミオ ミソミセミサミクミウミセミスミセミイ ミコミームミコミームミー
lMesh.PolygonCount() — ミセミアム禍オミオ ミコミセミサミクムミオムムひイミセ ミソミセミサミクミウミセミスミセミイ ミスミー ミコミームミコミーム
lMesh.PolygonVertexCount(i) — ミコミセミサミクムミオムムひイミセ ミイミオムム威クミス ミイ ミソミセミサミクミウミセミスミオ ム ミクミスミエミオミコムミセミシ i
lMesh.PolygonVertexIndex(i, j)ツツ— ミクミスミエミオミコム j-ミケ ミイミオムム威クミスム ミソミセミサミクミウミセミスミー ム ミクミスミエミオミコムミセミシ i
ミ慴セミエミオミサム ム ミウミオミセミシミオムびミクミオミケ
ミ「ミオミソミオムム ミエミサム ムひセミウミセ ムムひセミアム ミセムびミクムミセミイミームび ムミイミセム ミシミセミエミオミサム ム ミウミオミセミシミオムびミクミオミケ ミーミコムひオムミー, ミソムミクミイミセミカム ミコミセミエ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | HFBModel pModel = new FBModel (mBodyName); FBString fileName("c:\\actor\\"); fileName = fileName + (char*)mBodyName; fileName = fileName + ".msh"; FILE *f = fopen( fileName, "r" ); if (f == NULL) return; fseek( f, 0, 0 ); HFBGeometry lGeom = ツpModel->Geometry; HFBMesh< pMesh = (HFBMesh) lGeom; if (!pMesh) { FBMesh lMesh(pModel); pMesh = &lMesh; } char buffer[2048]; int count; memset(buffer,0,sizeof(char)*2048); fgets(buffer, 2048, f); // check file version if ( (buffer[0] != '0') || (buffer[1] != '1') ) return; // skip fgets(buffer, 2048, f); // mesh name memset(buffer,0,sizeof(char)*2048); fgets( buffer, 2048, f ); sscanf( buffer, "%d", &count ); bool res; res = pMesh->GeometryBegin(); pMesh->VertexInit(count); // step 1: create vertices float x,y,z, ツp,q,w; for (int i=0; iVertexNormalSet( (double)p, (double)q, (double)w, i ); pMesh->VertexSet( (double)x, (double)y, (double)z, i ); } // step 2: create polygons int ndx, pCount=0; memset(buffer,0,sizeof(char)*2048); fgets( buffer, 2048, f ); sscanf( buffer, "%d", &count ); for (int i=0; iPolygonBegin(); for (int j=0; jPolygonVertexAdd(ndx); } pMesh->PolygonEnd(); } pMesh->GeometryEnd(); pModel->Show = true; pModel->ResetDisplayList(); |
ミ「ミオミソミオムム ミスミオミコミセムひセムム巾オ ミソミセム肖ミスミオミスミクム ミソミセ ミイム錦威オミソムミクミサミセミカミオミスミスミセミシム ミコミセミエム:
1) ムミセミキミエミーミオムびム ミスミセミイミーム ミソムτムひーム ミシミセミエミオミサム ミイ ムムミオミスミオ ミエミセミイミセミサム糊スミセ ミソムミセムムひセ
1 | HFBModel pModel = new FBModel (mBodyName); |
ミウミエミオ mBodyName — ミクミシム ミシミセミエミオミサミク
2) ミ?ミキミスミームミーミサム糊スミセ ミシミセミエミオミサム ミスミオ ムミセミエミオムミカミクム ミウミオミセミシミオムびミクムミオムミコミクミケ ミコミームミコミーム, ミソミセム采ひセミシム ミオミウミセ ミスムσカミスミセ ミスミーミキミスミームミクムび
1 2 3 | FBMesh lMesh(pModel); pMesh = &lMesh; |
ミ「ミオミシ ムミーミシム巾シ ミシム ムミセミキミエミーミサミク ミエミサム ミシミセミエミオミサミク ミスミセミイム巾ケ ミコミームミコミーム ミウミオミセミシミオムびミクミク ミク ミオミウミセ ミシミセミカミスミセ ミキミーミソミセミサミスム肖び ミエミーミスミスム巾シミク ミソミセ ミイミオムム威クミスミーミシ, ミスミセムミシミーミサム紹シ ミク ミソミセミサミクミウミセミスミーミシ.
3) ミ ミコミセミスムミオ ムミーミアミセムび ム ミウミオミセミシミオムびミクミオミケ ミク ミシミセミエミオミサム袴 ミイミーミカミスミセ ム采び ミシミセミエミオミサム ミソミセミコミーミキミームび ミク ミセミアミスミセミイミクムび ミエミクムミソミサミオミケミスム巾オ ムミソミクムミコミク, ミクミスミームミオ ミスミクムミオミウミセ ミイ ムムミオミスミオ ミスミオ ムσイミクミエミクミシ
1 2 3 | pModel->Show = true; pModel->ResetDisplayList(); |
ミ漬セム ムミセミアムムひイミオミスミスミセ ミク ミイムミオ ミスミー ムミオミウミセミエミスム, ミエミセ ミスミセミイム錦 ミイムムびミオム!
Hi Neil, been following you for years. really appreciate your sharing all this knowledge.
I’m curious about moving actorbodybone parts in space without modifying the pivots values.
i don’t want to generate a whle new actor, just want to be able to move the pieces without playing with actor.HipsPosition, actor.ChestPosition etc values.
spaciba for any help.
ミ湲ミクミイミオム!