プロフィール

Na-7

Author:Na-7
SE(システムエンジニア)として約15年間システム系ソフト会社を勤めあげ、2008年3月退社。現在、ゲーム制作会社設立を目指して活動中。


アクセスカウンター


最新記事


最新コメント


最新トラックバック


月別アーカイブ


カテゴリ


DATE: CATEGORY:スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
DATE: CATEGORY:三国志軍記開発
槍兵画像統合後01
開発中のメイン画面
統合画像によるUVアニメーションを実装したが、パフォーマンスは低下してしまった。



◎UVアニメーション

前回はテクスチャ座標を動的にずらす方法を習得したので、今回はまずテクスチャ座標とタイミングを合わせて、槍兵アニメを作ってみました。



最近気付いたのですが、今回やってるのがUVアニメですよね?

以前HPに「XNAでUVアニメーション(テクスチャアニメーション)」という記事をUPしたんですが、中身はテクスチャ差し替えアニメでした。「これはUVアニメではない」といった指摘を受けたこともありましたが、当時は違いがよくわからず、そのまま放置してました(汗)

ようやく本当のUVアニメが出来るようになったので、HPの記事を訂正&追加しました。

XNA3.1でUVアニメーション



◎メタセコイアの頂点フォーマット

メタセコイアのXファイル出力オプションに「頂点カラー」チェックボックスがあります。私は普段あまり考えずにこのチェックボックスを付けてました。

メタセコイアXファイル出力オプション

このチェックボックスを外せば、カスタム頂点フォーマットをわざわざ定義しなくてもVertexPositionNormalTexture構造体でアクセスできるかと思ったのですが、試してみるとテクスチャがおかしくなりました。

データのフォーマットを確認すると、Position、TextureCoordinate、Normalの順番で、XNAの構造体と順番が合いません。結局、メタセコイアモデルの頂点データにアクセスする際は、カスタム頂点フォーマットが必要なんですね。



◎実装

槍兵のUVアニメを実装しました。

槍兵画像統合後02

ちゃんとアニメしますが、fpsは低下しました。ガーン!

20 fps → 12 fps


この結果から推察すると、

・ModelMesh.Drawは、
 頂点バッファとインデックスバッファを使用する

・DrawUserIndexedPrimitivesは、
 頂点バッファとインデックスバッファを使用しない

ということかもしれません。

しかしモデルインスタンシング未実装とはいえ、解像度を下げてまで1枚にまとめたのに、ここまで遅くなるなんてショックです…。



◎今後の方針

このままだと遅くて話になりません。
シェーダー改修なりモデルインスタンシング適用なりで高速化を図るか、高速化は保留として以前の状態に戻し、ゲームの本題を進めるか思案しました。

パフォーマンスの話は正直うんざりしてきたので、一旦保留にして本題を進めたいという欲求が強いのですが、「理想を全部詰め込んでみたけど、遅すぎてゲームにならない」なんてことになったら意味がありません。(今最も危惧していることです)

どうしてもパフォーマンスが出ない場合、
・アニメと方向を諦める
・一人称視点を諦める
・モデルの数を制限する
といったことも考えなければなりませんが、どれがどの程度パフォーマンスに影響するかわからないようでは取捨選択もままなりません。

今すぐ実装するかはともかく、「これぐらいのパフォーマンスは出るはずだ」といった見当が付かないと、企画の見直しすらできなさそうです。



◎次回予告

画像は統合したものの、パフォーマンスは低下してしまったので、次回のテーマは「パフォーマンスの向上」です。

シェーダー改修かモデルインスタンシングに踏み込む予定です。

スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック


この記事にトラックバックする(FC2ブログユーザー)



copyright © ゲーム制作の舞台裏 all rights reserved.Powered by FC2ブログ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。