※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

3Dグラフィックの仕様について


とりあえず現時点(2010/6/21)で分かっている仕様をまとめておきます。

ファイルフォーマット

3DデータのフォーマットはMicrosoft DirectXの標準形式であるXファイル形式とします。バイナリ出力でも構いませんが、デバッグ等の効率化のため出来るだけアスキー形式で出力して下さい。モデルに使用したテクスチャの画像ファイルも一つにまとめて、ZIPファイルに圧縮してアップロードして下さい。

縮尺

サイズの縮尺については、マップチップの一辺の長さを1.0とします。ただ、これはモデリング時は自分のやりやすい縮尺で作って、Xファイルへエクスポートする時に調整して下さっても構いません。

アルファブレンド

頂点カラーやテクスチャのアルファ値についてですが、3Dグラフィックについては基本的に255(完全に透過しない値)を使用して下さい。というのも、現在のDirectXの3DのレンダリングシステムではZバッファとアルファブレンドが干渉するため、アルファブレンドのレンダリングの扱いが難しいためです。現時点では、アルファ値を使用できるのは爆発や炎などのエフェクト効果に使用するテクスチャに限定させていただきます。ただ、どうしても使いたい箇所があれば相談して下さい。

ポリゴン数など

ゲーム向け外付けGPUを想定すれば1キャラあたり1万ポリゴンくらいは楽に使えそうですが、オンボードGPUでの動作も考慮すると多くて5,000ポリゴン、できれば2,000~3,000ポリゴンに抑えた方がいいかもしれません。(実際にはテクスチャの数やサイズ等も影響するのでポリゴン数は目安です)ただ、主人公などの主要キャラには多めのポリゴン数を割いて、小さいキャラや目立たないキャラは少ないポリゴン数にして均衡を保つという方法はありそうです。マップチップの草や木に関しても、1つのマップ上に大量に配置されることを考慮すると、1チップあたり多くとも100ポリゴンくらいが目安です。

3Dモデルのアニメーション

アニメーションについては、ボーンを含むフレーム単位のスキンメッシュアニメーションを使います。頂点ブレンディングも使えます。歩く、攻撃する、ガッツポーズを決める、などのそれぞれのアニメーションをxファイルの中に定義して下さい。後は、プログラム側からそれぞれのアニメーションを必要に応じて呼び出したり合成したりします。モデル単位の平行移動はプログラム側で行いますので、例えば歩くアニメーションの場合は動きは歩いているけれど同じ場所から進まない、というアニメーションを作っていただくことになります。

ステージ上の水面について

現在、水が流れているように見せる2Dアニメーションテクスチャを貼り付ける方法が挙がっていますが、川が折れ曲がる事も考慮するとテクスチャの種類がかなり増えてしまいます。そこで、プログラム側でポリゴンを水のように動かして水面を動かす方法も検討しています。ただ、CPU負荷が高くなる恐れもあるので、ある程度実験が必要です。(コンフィグで水面の精度を調整できるように作るなどの方法もあります)

主に戦闘中の爆発などのエフェクト効果について

基本的に、2Dのアニメーションテクスチャをビルボード(常にカメラの方を向く)ポリゴンに貼り付ける手法を使います。ただ、例えば青いレーザーのようなものが弧を描いて敵へ飛んでいくなど動的なポリゴンの生成を行うパターンやライティングをいじるパターンなども考えられますので、企画・仕様がある程度まとまってきた段階で、企画・グラフィッカー・プログラマの間で話し合いたいと思います。

プログラマブルシェーダについて

シェーダを使うと、グラフィックチップの中のプログラムを直接的にいじることでより効果的で多彩なエフェクトが使えますので、現在検討中です。しかし、グラフィックチップの種類によって未対応であったり対応していても負荷が高すぎるケースもありますので、シェーダOFFでもゲームプレイに支障をきたさない範囲での使用が前提となります。