2010/11/12 Na-7
ACLモデルに影(ステンシルシャドウ)を実装する
注意 | この資料は、筆者が自らの経験を記録したものであり、他人に勧めるものではありません。 この資料を参考として行った行為がいかなる結果になろうとも、筆者は責任を負いませんので予めご承知おきください。 |
◎目次
◎概要 |
◎使用ツール |
◎サンプルプロジェクト |
◎補足事項 |
◎概要
ACLモデルに影(ステンシルシャドウ)を実装するサンプルプロジェクトを紹介する。
◎使用ツール
ツール名 | 入手元 |
メタセコイア(Metasequoia LE R2.4:3Dモデル作成ソフト) | http://www.metaseq.net/metaseq/index.html |
RokDeBone2(RokDeBone2 Ver4.0.2.6:モーション作成ツール) | http://www5d.biglobe.ne.jp/~ochikko/rokdebone.htm |
XNA3.1(XNA GameStudio 3.1:ゲーム開発用フレームワーク) | http://msdn.microsoft.com/ja-jp/xna/default.aspx |
ACL(Animation Component Library:アニメーション再生用ライブラリ) |
http://www.codeplex.com/animationcomponents/Thread/View.aspx?ThreadId=40861 XNA3.0用の公式版は存在しないため、上記Discussionsに記載されている http://www2.cs.ucy.ac.cy/~cs06ee1/DwarfTutorial3.0.rar内のDLLを使用した |
◎サンプルプロジェクト
ACLステンシルシャドウサンプルプロジェクト(XNA3.1版)(500KB)
◎補足事項
・槍兵モデルを2回呼び出して、1つを影モデルとしている
→Content.Loadで同一モデルを複数回呼び出した場合、2回目以降は同じオブジェクトインスタンスが返される
→view、projection等のエフェクトプロパティは共有される
→アニメーターのインスタンスは個別に管理される
→animator[].World等のアニメータープロパティは共有されない
・ACLを手動描画モードとし、通常モデル描画後にレンダーステートを変更して影モデルを描画している
・ステンシルシャドウは下記の3つのテクニックで実装している
・影を斜めに描画(投影行列)
・影を半透明に描画(アルファブレンド)
・影の濃さを均一に描画(ステンシルバッファ)
→ステンシルシャドウの公式サンプルはこちら
→ステンシルシャドウの解説はこちらがわかりやすい
→但しこちらのサンプルコードは、ワールド座標変換行列と投影行列を掛ける順番に問題があるので注意すること