はじめに#
このコラムの内容は、学堂オンラインの MOOC「3D ゲームエンジンアーキテクチャ設計基礎」の内容です。個人的には、テキストと画像のバージョンに変換しました(個人的には、テキストバージョンのチュートリアルの方が読む速度がはるかに速いため、参照に便利です)。
元のコースのリンク:3D ゲームエンジンアーキテクチャ設計基礎。
キャラクターアニメーション#
キャラクターアニメーションの概要と表現方法#
キャラクターとは、ゲームのストーリーを推進するためのもので、プレイヤー、非プレイヤー、モンスター、敵などを含みます。
キャラクターの表現#
-
セルアニメーション
-
剛体階層アニメーション
-
頂点ごとのアニメーション
-
変形ターゲットアニメーション
-
スケルトンスキニングアニメーション
スケルトンスキニングアニメーションは、最もよく使用される表現技術です。
ゲームのキャラクターアニメーションのモデリングプロセス:
-
スキン:キャラクターのメッシュモデルを作成する
-
スケルトン:ジョイントとジョイントツリーを作成し、ジョイントを対応するメッシュの頂点にバインドする
-
スキンまたは衣服:メッシュのマテリアルとテクスチャマッピングを定義する
-
キャラクターアニメーション:キャラクターの動作を記述し、キャラクタースケルトンの位置移動を定義する
表現の例:
スケルトンスキニングアニメーションの重要な概念#
-
自由度とジョイントタイプ:
-
ジョイントの空間変換
-
メッシュの頂点とジョイントのバインド
-
モーションブレンディングとモーションコントロール
モーションブレンディングの重要な概念:
アニメーションクリップ:ゲームキャラクターの動作を構成する局所的なポーズ、例えば手を上げる、ジャンプ、歩行や走行のステップなど。
キーフレームまたはキーポーズ:アニメーションクリップで指定された時間ポイントに設定された重要なポーズであり、キーフレームを使用して、リニア補間またはカーブ補間アルゴリズムを使用して中間ポーズ、つまり中間フレームを自動的に生成することができます。キーフレームは、キャラクターポーズの静的なイメージと見なすことができます。一方、アニメーションクリップは、複数のキーフレームと中間フレームで構成され、指定された時間ポイントで表示されます。アニメーションクリップはキャラクターアニメーションの局所的なポーズであり、動的です。
例:
アニメーションクリップの合成は、関節位置の計算を指します。キャラクターアクションの自動合成方法には、次のものがあります:
- リニアブレンディング
- スケルトンパーツのブレンディング
- 加算ブレンディング。
キャラクターアニメーションの実装例#
OGEE キャラクターアニメーション#
OGRE キャラクターアニメーションのレンダリングプロセス:
OGRE ノードタイプとスケルトンツリー構造:
ジョイントノードとシーングラフの関係:
OGRE キャラクターアニメーションの主要なクラス:
以下は OGRE キャラクターアニメーションのいくつかの主要なクラスの説明です:
キャラクターアニメーションのスケルトンスキニングアニメーションの例:
OGRE キャラクターアニメーションのまとめ:
Panda3D キャラクターアニメーション#
Panda3D のキャラクターアニメーションの概念:
Panda3D でのキャラクター表現のクラス図は以下の通りです:
キャラクターの局所的な動きのクラス:
最後に、Panda3D のアニメーションクラスです: