# NNS_G3dRenderObjSetJntAnmBuffer

## 構文

      #include <nnsys/g3d/kernel.h>

      void
      NNS_G3dRenderObjSetJntAnmBuffer(
          NNSG3dRenderObj*    pRenderObj,
          NNSG3dJntAnmResult* buf
      );

## 引数

pRenderObj | `NNSG3dRenderObj`構造体へのポインタ
buf | ジョイントアニメーション用レコードバッファへのポインタ

## 返り値

なし。

## 説明

レンダリングオブジェクトにジョイントの計算結果を格納／再生するためのレコードバッファをアタッチします。登録するレコードバッファは`NNS_G3D_RENDEROBJ_JNTBUFFER_SIZE(pRenderObj->resMdl->info.numNode)`バイト以上の 領域でなければなりません。

このレコードバッファは描画されるモデルの各ノードのSRT情報の計算結果を保存しておくためのものです。通常この情報は保存されないのですが、`NNS_G3dRenderObjSetJntAnmBuffer`関数を使用してレコードバッファをアタッチすることにより、レコードバッファにデータを保存したりレコードバッファからアニメーションを再生したりできるようになります。レコードバッファにデータを保存する場合は、`NNS_G3dRenderObjSetFlag`関数を使用してフラグ`NNS_G3D_RENDEROBJ_FLAG_RECORD`をセットしてから`NNS_G3dDraw`関数を実行してください。レコードバッファに記録されているデータを再生する場合には、フラグ`NNS_G3D_RENDEROBJ_FLAG_RECORD`をリセットしてから`NNS_G3dDraw`関数を実行してください。

以下に利用例を記しておきます。

- ジョイントアニメーションが適用されていないモデルのジョイント計算を省略する。
- モーションLOD(遠くの物体のアニメーションを端折ること）を行う。
- アニメーションの全てのフレームをバッファに記録してジョイントアニメーションの計算時間を節約する。
- 複数の同一モデルに同じ格好をさせる場合に2体目以降の計算を省略する。

## 参照

`NNS_G3dRenderObjReleaseJntAnmBuffer, NNS_G3dRenderObjSetMatAnmBuffer`

## 履歴

2004/10/15 記述を改訂
2004/09/16 利用例の追加
2004/08/02 初版