モーフィング処理の開発 | 2014.11.03 02:25 |
11月になりました。後2ヶ月もすれば2014年が終わってしまうようで。
OpenXOPSの開発の方は、モーフィング処理を開発し実装しました。
足のモーション(アニメーション)を滑らかに表示するために使われる処理
です。
「百聞は一見にしかず」ってことで、アニメーションをご覧ください。
左が改良前で未使用、右が改良後で処理しています。
(アニメーションGIF・クリックで拡大)
一瞬ぱっと見ただけでは分かりませんが、足の動きに注目すると、モーフィ
ングが効いて滑らかに動いているのが分かると思います。
XOPS 0.96説明書の公開履歴にて、0.96の欄に『足の動きを少し滑らかに』
と書かれていますが、nine-two氏いわく本家XOPSでも、これと同様の処理
を実施しているそうです。
『うわぁ~地味だな・・』っと思った諸君!
ゲームのグラフィック処理の改善なんて、こんな作業の連続です。
地道な改良を重ねることで、ゲームのグラフィックの評価が変わっていくの
ですよ。 これも、nine-two氏の努力が垣間見える部分の一つです。
なぜこんな処理をしているのかと言えば、XOPS用の人型モデルデータを作っ
たことのある方ならばお気づきの通り、XOPSの動作原理に由来します。
XOPSの足のモーションは現代のゲームで一般的な、ボーン(骨格)を使用
したモーション再生を行っているわけではなく、モデルデータのXファイル
(.x)をパラパラマンガのようにコマ送りで描画しているに過ぎません。
歩きで4種類、走りで6種類のモデルデータを高速に切り替えています。
実際に表示を切り替えて描画する(画像・左)と、やはりカクカクしたぎこ
ちない描画になってしまうのです。
そこで、起動時のモデルデータを読み込む際に、各フレームごとのモデルデー
タに対してモーフィング処理を実施し、フレーム数を倍に増やすことで、滑
らかな足の動きが実現しています。
OpenXOPSにおけるモーフィング処理は、完全に独自で実装しています。
DirectX上で読み込んだモデルデータの頂点データが記憶された領域にアクセ
スし、各座標の中間データを単純な線形補間で求めています。
当初は、Xファイル自体をフォーマットを認識ながら読み込んで頂点データを
引き抜くことも覚悟していましたが、思っていた以上にうまくDirectX内部の
処理を直接利用できました。かなりスマートで良い感じです。
また、DirectXのモデルファイルに関する知識が、また一歩深くなりました。
これでモーション関係の処理は完成です。
OpenXOPSのサイト上で公開する技術ドキュメントの執筆作業も並行して行
っています。
既にA4用紙で10枚クラスの文章になっています。これからもっと増えます。
滅茶苦茶な日本語にならぬよう頑張ります。
なお、XOPSサーチエンジンの件でサーバー運営元からメールの返事が返って
きました。 ここ1年ほどの経緯・事情を説明した上で、運営側が非を認め
謝罪する内容でした。
今回はメールで個人的な回答・謝罪でしたが、近日中にサーバーの公式サイト
で全ユーザー(関係者)に対して、事情説明と謝罪をされるそうです。
さてさて、XOPSサーチエンジンはどうするかなぁー。
OpenXOPSの開発の方は、モーフィング処理を開発し実装しました。
足のモーション(アニメーション)を滑らかに表示するために使われる処理
です。
「百聞は一見にしかず」ってことで、アニメーションをご覧ください。
左が改良前で未使用、右が改良後で処理しています。
(アニメーションGIF・クリックで拡大)
一瞬ぱっと見ただけでは分かりませんが、足の動きに注目すると、モーフィ
ングが効いて滑らかに動いているのが分かると思います。
XOPS 0.96説明書の公開履歴にて、0.96の欄に『足の動きを少し滑らかに』
と書かれていますが、nine-two氏いわく本家XOPSでも、これと同様の処理
を実施しているそうです。
『うわぁ~地味だな・・』っと思った諸君!
ゲームのグラフィック処理の改善なんて、こんな作業の連続です。
地道な改良を重ねることで、ゲームのグラフィックの評価が変わっていくの
ですよ。 これも、nine-two氏の努力が垣間見える部分の一つです。
なぜこんな処理をしているのかと言えば、XOPS用の人型モデルデータを作っ
たことのある方ならばお気づきの通り、XOPSの動作原理に由来します。
XOPSの足のモーションは現代のゲームで一般的な、ボーン(骨格)を使用
したモーション再生を行っているわけではなく、モデルデータのXファイル
(.x)をパラパラマンガのようにコマ送りで描画しているに過ぎません。
歩きで4種類、走りで6種類のモデルデータを高速に切り替えています。
実際に表示を切り替えて描画する(画像・左)と、やはりカクカクしたぎこ
ちない描画になってしまうのです。
そこで、起動時のモデルデータを読み込む際に、各フレームごとのモデルデー
タに対してモーフィング処理を実施し、フレーム数を倍に増やすことで、滑
らかな足の動きが実現しています。
OpenXOPSにおけるモーフィング処理は、完全に独自で実装しています。
DirectX上で読み込んだモデルデータの頂点データが記憶された領域にアクセ
スし、各座標の中間データを単純な線形補間で求めています。
当初は、Xファイル自体をフォーマットを認識ながら読み込んで頂点データを
引き抜くことも覚悟していましたが、思っていた以上にうまくDirectX内部の
処理を直接利用できました。かなりスマートで良い感じです。
また、DirectXのモデルファイルに関する知識が、また一歩深くなりました。
これでモーション関係の処理は完成です。
OpenXOPSのサイト上で公開する技術ドキュメントの執筆作業も並行して行
っています。
既にA4用紙で10枚クラスの文章になっています。これからもっと増えます。
滅茶苦茶な日本語にならぬよう頑張ります。
なお、XOPSサーチエンジンの件でサーバー運営元からメールの返事が返って
きました。 ここ1年ほどの経緯・事情を説明した上で、運営側が非を認め
謝罪する内容でした。
今回はメールで個人的な回答・謝罪でしたが、近日中にサーバーの公式サイト
で全ユーザー(関係者)に対して、事情説明と謝罪をされるそうです。
さてさて、XOPSサーチエンジンはどうするかなぁー。
category : ソフト・ツール開発 | comment [2] |