頂点インデックスの取得

Modelerで設定した描画オブジェクトの頂点位置はgetTransformedPointsで取得することができます。
それに対応するインデックスリストはgetIndexArrayで取得できます。
第一引数にgetTransformedPointsと同じ描画オブジェクトインデックスを指定します。
第二引数には三角形ポリゴンの数が返ってきます。
ポリゴン一つにつき3つの頂点インデックスが含まれます。

//サンプルコード
int drawIndex=live2DModel->getDrawDataIndex("D_REF.HEAD");//描画オブジェクトのIDを指定して、プログラム上でのインデックスを取得
if(drawIndex<0)return;// 存在しない場合

int pointCount=0;//頂点数。頂点は1つにつきx,yの情報を持つ
int polygonCount=0;//ポリゴン数
float* points=live2DModel->getTransformedPoints(drawIndex,&pointCount);
unsigned short* index=live2DModel->getIndexArray(drawIndex,&polygonCount);
for (int i = 0; i < pointCount; i++)
{
float x = points[DEF::VERTEX_OFFSET+i*DEF::VERTEX_STEP];
float y = points[DEF::VERTEX_OFFSET+i*DEF::VERTEX_STEP+1];
NN_LOG("point:%d (x:%f y:%f)\n",i,x,y);
}
for (int i = 0; i < polygonCount; i++)
{
NN_LOG("index:%d (%d %d %d)\n",i,index[i*3],index[i*3+1],index[i*3+2]);
}
Comments