サンプル

ダイナミックポリゴンによるパターンの切り替え

MBACデータは、いくつかの状態を持つことができます。



Figure構造体に対して、IMICRO3D_Figure_setPattern( )を使用して、モデルの状態を指定します。モデルデータが持つ状態数は、データ作成時に設定されます。この状態数は、 IMICRO3D_Figure_getNumPattern() を利用することで取得することができます。

モデルの状態はベースとなる共通セットを含めると最大で 33 個の状態があります。これを 32bit の各 bit とみなして(共通セットを 0 とします) IMICRO3D_Figure_setPattern() に指定します。
今回使用するサンプルの場合、共通セットを含め以下の 4 つの外見状態を持っています。

そのため、

といった描画がなされます。

SampleDynamic3D 実行画面 Pattern 1 SampleDynamic3D 実行画面 Pattern 2 SampleDynamic3D 実行画面 Pattern 3
SampleDynamic3D 実行画面(左から、Pattern 1, Pattern 2, Pattern 3)



また、複数の独立した外見状態を持つモデルの場合、

IMICRO3D_Figure_setPattern ( ( ( 1 << 1 ) | ( 1 << 5 ) ) )

といった指定を行うと、同時に複数の箇所を動かすことも可能です。

/* キーチェックによる外見状態設定・変更 */
if ( ( mask & ACTION_MASK ) != 0 )
{
pMe -> mc_data.pattern++;

if( pMe -> mc_data.pattern >= pMe -> mc_data.maxpat )
{
pMe -> mc_data.pattern = 0;
}

/* モデル状態指定 */
if( pMe -> mc_data.pattern == 0 )
{
IMICRO3D_Figure_setPattern( pMe -> pIM3D, &pMe -> mc_data.figure, 0 );
}
else
{
IMICRO3D_Figure_setPattern( pMe       -> pIM3D,
  &pMe      -> mc_data.figure,
  1 << pMe -> mc_data.pattern );
}
pMe -> key_mask = 0;
}


このページの先頭へ戻る