# NNS_G2dInitMCAnimationInstance

## 構文

      #include <nnsys/g2d/g2d_MultiCellAnimation.h>

      void NNS_G2dInitMCAnimationInstance
      (
          NNSG2dMultiCellAnimation*          pMultiCellAnim,
          void*                              pWork,
          const NNSG2dCellAnimBankData*      pAnimBank,
          const NNSG2dCellDataBank*          pCellDataBank,
          const NNSG2dMultiCellDataBank*     pMultiCellDataBank,
          NNSG2dMCType                       mcType
      );

## 引数

pMultiCellAnim | [OUT] マルチセルアニメーション
pWork | [IN] マルチセル実体の使用するワーク領域
pAnimBank | [IN] マルチセルを構成する セルアニメーションが定義されている アニメバンク
pCellDataBank | [IN] セルデータバンク
pMultiCellDataBank | [IN] マルチセルデータバンク
mcType | [IN] マルチセル実体の種類（NNSG2dMCType型）

## 返り値

なし

## 説明

マルチセルアニメーションを初期化します。
pWorkは実体の内部でワーク領域として使用されるメモリ領域へのポインタです。 実体の初期化に必要な、ワーク領域サイズはNNS_G2dGetMCWorkAreaSize() 関数を使用して、取得します。
mcTypeはマルチセルアニメーション実体の種類を表す、列挙子 NNSG2dMCType です。 NNSG2dMCType の定義を以下に示します。 ``

    typedef enum
    {
        NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM,
        NNS_G2D_MCTYPE_SHARE_CELLANIM

    }NNSG2dMCType;

mcType として、NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIMを指定すると過去のバージョンと同一のデータ構造で実体が 初期化され、同じように処理されます。
プログラマがマルチセルの構成ノードにアクセスし、データ等を書き換えるなどの処理を行わない限り、 NNS_G2D_MCTYPE_SHARE_CELLANIMを指定して実体を初期化したほうが、メモリ消費量、処理効率の点から有利です。
mcTypeとして、NNS_G2D_MCTYPE_SHARE_CELLANIMが指定された場合、 マルチセル上の複数のノードで同一のアニメーションシーケンス再生を行うようなデータの入力があった場合に、 セルアニメーションの実体を複数ノード間で共有します。そのため、メモリ消費量や、アニメーション更新の処理負荷が減少します。
また、NNS_G2D_MCTYPE_SHARE_CELLANIMが指定された場合、マルチセルのランタイム実体はノードに相当する情報を保持しません。
そのため、ノード単位の位置の変更、アフィン変換、がサポートされません。 ただし、上記制限によって同一セルアニメーションを再生するノードでは必ず同一のアフィンパラメータを参照することが保障されるため、 特に2D グラフィックスエンジンを使用した描画の際に、NNS_G2D_MCTYPE_DONOT_SHARE_CELLANIM を指定した場合に比べて、よりハードウェア資源(＝使用するアフィンパラメータ)を節約することが可能です。
本関数はNNS_G2dInitMCAnimation(), NNS_G2dInitMCInstance(), NNS_G2dSetMCDataToMCInstance() の代替関数として用意されました。 以前の関数は、互換性維持のため別名として残されています。
新規にご利用のかたは、こちらの関数をご利用ください。

## 参照

`NNS_G2dGetMCWorkAreaSize
`
`NNS_G2dInitMCAnimation
` `NNS_G2dInitMCInstance
` `NNS_G2dSetMCDataToMCInstance
`

## 履歴

2005/01/31 初版