今回はゲーム制作における最適化についてお話します。
最適化とは?
ゲームを発売する為に実装データの無駄を可能な限り削ぎ落とし、最終的な製品の品質を確保する工程を指します。
実装データが出揃った上で行う最終調整かつ、リリース直前の限られた期間内に行わなければならない為、
非常に根気が要るフェーズでもあります。
最適化の具体例
家庭用ゲームとして発売する場合、
主に以下に挙げられる最適化作業が発生します。
① ディスク容量の最適化
ゲームハードのディスク容量に見合ったサイズに詰め込む。ロード時間の短縮化。
→ 何も意識せずに作っているとデータが溢れてしまいます。
→ 後回しにした事で修正困難になり、そのまま進めるしかないというケースも稀に起こりますので、
常日頃から取りまわしやすいデータの作成を心掛けましょう。
⬜︎ モデルのアウトラインに貢献しないエッジの削除
→ そのエッジを削除することで見た目が崩れるかどうか。輪郭を維持する
⬜︎ モデルの見えない部分の削減
→ 背面, 地中メッシュ, 不必要に面積が大きいフェース
⬜︎ 未使用データ,重複データなどの削除
→ テスト段階で作成していたモデルが地下に埋まったままという事がある
② 安定したゲームプレイの保証
モデルのポリゴン数過多によるフレームレートの低下、
高負荷なシェーダー表現の多用によるクラッシュ、フリーズなどの対処。
→ そのゲームが快適に遊べなければなりません。
→ グラフィックがメチャクチャ凄くても、ユーザーが快適に問題なくプレイできる方が大事です。
⬜︎ 同座標の頂点は統合する
→ Mayaで問題なくてもコンバート時の頂点誤差によって隙間が出来る事がある
⬜︎ コリジョン形状はシンプルに
→ 多くの場合プレイヤー歩行時の見た目上の接地はIKで吸着する
⬜︎ LOD最適化
→ 頂点ロックなどを使用し、LOD距離で外見が破綻しないように調整
⬜︎ ドローコール最適化
→ 同じモデルに同内容のマテリアルを複数適用していないか
⬜︎ 分割方向で見た目が破綻する可能性がある四角ポリゴンは三角化する
→ Mayaとゲーム実機では異なる分割結果になる可能性がある為
⬜︎ テクスチャ解像度の保持
→ ゲーム画面に対して最低保証すべきピクセル数が担保できているか
⬜︎ ゲーム内規約を遵守した寸法でのモデル作成
→ ドアサイズ, 通路サイズ などゲームプレイに支障ないか
③ 作業データを綺麗に保つ
製品データには直接関係しませんが、他の作業者が混乱する自分ルールや、
必要なモノと不必要なモノの区別が付かないデータ階層の整理。
→ チームで制作する以上、自分が作業していたMayaシーン等を他の人が見て理解できるよう心がけましょう。
⬜︎ 命名規約に沿ったデータを作成
→ 誤字,脱字があるまま作成 > 後々修正が困難になる > チェックコスト増大 > 最悪修正不可となる
仕事中に目が疲れているとミスに気づかない事があるので
テキストを直打ちせずコピペ入力するなど安全性の高い対処を行う
⬜︎ Mayaシーンを綺麗に保つ
→ ゴミだらけだと、ベイク用の正しいLow/Highモデルの組み合わせが分からないという問題などが起きる
⬜︎ 正式データがローカルにしかない状況を作らない
→ ベイク用のHighモデルがサーバーに上がっておらず、ローカルPCを参照している等
・・・といった創意工夫を経て、ようやくゲームが発売される事になります。
まとめ
ゲームはリアルタイムに常に快適に動かせなければならないので、
自分が作ったモノがどのように使われるのか、関わったパートでどのような状況が発生するか、を
担当者として把握しておく必要があります。
そのためには、ただ見た目だけのクオリティが高いアセットを作るだけでは実現しません。
最適化の概念を意識する事は、背景アーティストとして重要です。
--300x141.png)

