2005-11-22

[][]カメラ制御のプログラムは大変だ カメラ制御のプログラムは大変だ - Nao_uの日記 のブックマークコメント

カメラ制御は厄介だ。二度とやらん。一応企画やデザインが仕様を作るが、ゲーム内の動的な状況に対応するためプログラマ側でかなりの「解釈」が必要になる。まずそこの折り合いをつけるのが面倒だ。そして、評価基準が「かっこよさ」というなんとも曖昧なものであるために、私の感覚で先回りして実装しても無駄になることが多く、ほとんどことごとく企画の裁可を仰がねばならない。おかげで著しく時間を食う。そして何より「かっこよさ」などという曖昧なものを求めるために統一的な原則がなく、例外の集合体のようなコードになる。こんなものを保守するのは絶対に御免だし、将来物量が増した時のことを想像すると頭痛がする。何かエディタのようなものを作って企画やデザインに丸投げするのがもっとも正しい態度だが、おそらく無理だ。

カメラのプログラムは大変だ。ゲームによって方針や作り方が大きく変わってくるし、「ここまでやれば完成」というラインも見えにくい。特に、半自動で注視点が動いて手動でも制御できるタイプのゲームが一番厄介だ。視点・注視点をどこにするのか、その間の補間方法や注視点切り替えのアルゴリズムをどうするのかを考え、一つのベースとなるアルゴリズムができたらあとはそれのパラメータ変えで個別のシチュエーションにあわせて微調整を繰り返す。ベースのアルゴリズムに乗らないパターンが出たときには、また新しい方法をそのつど考えなくてはならない。

プレイヤーや敵の行動にあわせて角度や注視点を変えるような場合も多いため、どうやっても例外や分岐、特殊処理の嵐になって綺麗なコードなど書けそうもないし、パラメータや要素が多すぎて複雑になりすぎると簡単に破綻してしまう。一つ一つその場面に合わせて組むことになるため、ごく基礎的なモジュール以外は再利用することも難しい。

それでもカメラは重要だ。デザイナーの人がどれだけ気合を入れてモデルや背景を作ったとしても、カメラが悪いとせっかく作りこまれた壮大さやディティールが表現しきれなかったり、敵やプレイヤーが豆粒のように小さくて迫力がなくなってしまったり、またその逆で敵やプレイヤーは大映りしているものの周りの状況がさっぱりわからない、などゲームの良さを殺してしまうことにもなりかねない。また、日本人特有(?)の「酔い」の問題もある。

カメラは裏方の仕事なので、カメラが意識されるということ自体、なんらかの問題があることが多い。プログラム的に手を抜いてもそれなりに動くものは作れてしまうけれど、敵や対象物の見え方・操作感覚などに影響してくるだけにカメラを作る人にはそれ相応のこだわりが必要になってくるのだろう。自分にはそのこだわりが足りないような気がした。反省。

ワンダと巨像」では像1体ごとに完全に違うカメラが用意されていて、同じ像でもしがみついている場所や像本体の動きにあわせて一番見やすそうな角度に自動的に制御しているし、フィールドも走っているだけで絵になるように自動的に動いたりと、かなり手間がかかっているようだ。下手するとボスの動きそのものよりもカメラを作る方が面倒だったんじゃないかとも思う。カメラってほんとに難しい。