● マはマスコットのマ(MACLIFE誌1999年10月号掲載)

〜 第8回目 マスコットでゲームにチャレンジ!-その1 〜


●プロローグ

みなさん、1999年7の月も終わりました。天から恐怖の大王は降って来ませんでしたが、iBookはついに登場いたしました。とても綺麗なポータブルです!

WWDC'99でのAppleによる初代ポータブルのデモは、予想通り真実を語っていたようです。iBookは「頑丈さ」「デザイン」「長時間バッテリー」「ワイアレス」「CD-ROM」といった項目を優先したポータブルになりました(ワイアレスだけは嬉しい誤算)。真ん中に収まった小さめな液晶、広いパームトップと左右や後ろまで十分にスペースを確保したキーボード配置。まるで貝殻が大事な中身を守っているようです。頑丈さについては、実際に車にひかせるテストまでしたそうです(せひ実験結果を知りたい)。教育現場などで、裸のままラフに持ち歩くことを考慮して練り出されたデザインのようです。さて、みんなさんはiBookを購入しますか?私はすぐにでも入手したいので、色々と作を練っているところです(笑)

●ゲーム作りの下準備

今回から数回に渡ってマスコット++でゲーム開発をする過程を解説します。まずはゲームの下準備として、キャラクタの表示スピードやアプリ自身のメモリ消費量の考察から始めてみたいと思います。

ところで、ゲーム開発で一番重要なポイントは何でしょう?それは多分、ゲームに関する「アイデア」や「シナリオ」を捻出する事だと思います。まあ、世の中には恐ろしい数の専用機&パソコン用ゲームが氾濫しています。ちょっとやそっとで斬新なアイデアを思いつくことは至難の業です。仮に思いついたとしても大作ゲームを一人で開発するというのは遠い昔話。今では映画1本撮るぐらいのマンパワーと資金が投入されることも珍しくありません。しかし、たった一人で素晴らしいアイデアを具体化し大ヒットさせる可能性がゼロになったわけではありません。他のソフトの開発では味わえない、ゲーム独特の「醍醐味」や「夢」がまだまだあるような気もします。ただし、今回は市場を席巻するようなゲームを目指すわけではないので(笑)マスコット++の例題として気軽に取り組みたいと思います。

シナリオが出来上がったら、次はゲーム開発における「物理的制約」を見極めます。具体的には、ユーザの操作感は良好か?キャラクター表示スピードは十分か?メモリ消費量は多すぎないか?などの調査を行うことです。マスコット++はゲーム専用開発ツールではないので、こうした物理的制約が数多く存在します。当然、世の中で大流行している3Dグリグリのアクション&アドベンチャーゲームは開発不可能です(言うまでもない)。また長編アドベンチャーゲームも、素材データをファイルから逐次読み込む仕組みがないためマスコット++には向いていません(不可能ではない)。そんなわけで、今回は簡単な2次元シューティングゲームに挑戦してみることにします。

まずは物理的制約のうち一番重要な「マスコット++におけるキャラクター表示スピード」について考えてみます。マスコット++は、もともとMacのデスクトップ上でキャラクターを動かすのが目的のアプリケーションです。表示スピードに依存しなければ、デスクトップ上で繰り広げられるゲームも新鮮で面白いかもしれません。しかし、シューティングのようなユーザの反応速度を競うゲームでは、キャラクターの動作(表示)が遅いのは致命的欠陥となります。たとえ例題であっても、動作が「のたのた」したシューティングゲームでは盛り上がりに欠けます。今回はキャラクター表示スピードを最優先にして「背景」上でマスコットを動かす方法を採用することにします。

●表示スピードを考える

マスコットの表示スピードを向上させるには色々な工夫が必要となります。まず、ゲームキャラクターをフルカラー描画する予定がなければ、すべての画像を256色で編集します。こうすると、キャラクターのデータ転送量が1/4に減り(256色では1ドットが1バイト、1600万色では4バイト)表示スピードが向上します。マスコットは、フルカラーモードで編集しても、プロジェクトメニューの「圧縮設定...」の「アプリ作成時に画像の階調変更や圧縮を行う」により、望んだ色数に減色して保存できます。(図1)ただし、この機能を使うと、減色時のディザリング処理によりセル画像が荒れてしまう場合があります。よって最初からモニターモードを256色に落としてセル画像を編集した方が良いでしょう。またゲームでは画像圧縮を用いるのは厳禁です。この機能、メモリ消費量を減らすのには効果がありますが表示スピードには逆効果となります。

プロジェクトメニューの「アプリ作成」ダイアログには、マスコットの表示スピードに影響を及ぼすいくつかの設定があります。(図2)まず最初に「動作スピード」を「超高速」に切り替えます。超高速とは少々大げさですが(笑)これにより、同時に起動している他のアプリケーションには一切CPU時間が割り振られなくなり、最高スピードでマスコットを動かすことができます。ただし超高速を選ぶためには、いくつかの条件を満たす必要があります。まず「背景」を用いることが前提となります。背景フォルダにひとつも背景が登録されていなかったり、「登録されている背景を使わない」がチェックされていると超高速の項目はハイライトのままで選択できません。同様に、背景ウィンドウの表示方法を「メニューバー消去」に切り替える必要もあります。この表示モードでは、起動時にモニターのメニューバーを消し、黒い画面の中心に背景とマスコットを表示します。(図3)

次の「スクリーンに2倍で表示をする」は重要なオプションなので後から詳しく説明します。「実行中はマウスカーソルを隠す」は、ゲーム中のマウスカーソルを隠すために使います。最後の「自動で256色モードに変更する」は、256色でゲームのキャラクタや背景を作成した時のみ有効なオプションです。これは、ランタイムアプリ(起動マスコット)が起動する時に強制的にモニターモードを256色に切り替える機能です。そしてアプリ終了時にはモニターを起動前のモードに戻します。このテクニックがゲームアプリでよく使われるのは、素材画像(キャラクターや背景)とモニターの色数が一致していると画像転送が高速になるからです。

すべての設定が完了したら、アニメセルの「移動方向設定ウィンドウ」で表示ウェイトをゼロにし、マスコットの表示スピードを実際に確認してみます。(図4)ウェイトをゼロ意外にすると強制的にスピードが調整されてしまいますので注意してください。1体の表示スピードが確認できたら、2体、3体とマスコットを増やしていきます。画面上のマスコットが増えれば増えるほど、個々の動作スピードは遅くなるはずです。(図5)最終的にスムーズに動かせるマスコット数の限界を確認したら、ゲームのシナリオを調整します。ただし、開発用として高速なMacintosh(新G3の450MHz等)を用いている(幸せな)ユーザの方はくれぐれも注意してください。他のユーザのマシンでは、そんなに高速に動かせないはずです。高速マシンを利用している方は、愛機のパワーのレベルを認識し、同時に動かすキャラクター数に余裕を持たせておくことが肝要です。


●背景とメモリ消費量を考える

今度はゲームのメモリ消費量について考えてみます。ゲームであまりにも多くのメモリを使うと、起動できるプラットフォームが限定されてしまいます。最初にチェックすべきは、マスコットのキャラクターサイズとセル数です。セルサイズを必要以上に大きくするとメモリ面だけでなく表示スピードにも悪影響を及ぼします。64X64ドットのセルを用意し、その中に小さ目なキャラクターを描画します。実質的には32X32ドットを目安にすると良いかもしれません。まあ、昔で言うところのデカキャラ(死語)を、たま〜に登場させる程度なら全体に対して悪影響はないでしょう。キャラクターには単純動作をせることを心掛け、1グループ当たりのセル数を少な目にします。アニメセルを有効利用する方法としては「エイリアスマスコット」機能がありますが、これについては次回に詳しく解説します。

次は背景により消費されるメモリ容量を調べてみます。マスコット++では、「画像」「パタン」「単色」の3種類から背景を選択することができます。(図6)例えば画像背景を採用したゲームでは、背景の保存場所と表示用ワークエリアの2つのメモリバッファが確保されます。640X480ドットの画像を使い、モニターでの表示領域も同サイズとすると、2X(640X480)=600Kbyteのメモリを消費します。これがパタン背景だと640X480+64X64=304Kbyte、単色背景だと640X480=300Kbyte必要となります(当然フルカラーだと上記の4倍のメモリが必要)。以上の点から、「テトリス」や「ぷよぷよ」のような背景固定の「落ち物ゲーム」なら画像背景を用いても問題ありません。しかし、広大な領域をスクロールさせるようなアクションゲームやアドベンチャーゲームでは画像背景を使うのは避けた方がよさそうです。

最近のユーザのほとんどが、640X480ドットより大サイズのモニターを利用しています。ですから、小さなキャラクターを狭い背景で動かしていてはゲームとして迫力不足になります。先ほどの「アプリ作成」ダイアログの「スクリーンに2倍で表示をする」オプションを用いると、実際の2倍のモニター領域に背景やマスコットを表示することができます。例えば、320X240ドットのサイズを前提にゲームを構築しておけば、モニター上には640X480ドットで表示させることができるわけです。(図7)この機能を使えば、消費メモリも通常の1/4で済み、動作速度をそれほど落とさずゲームに迫力を出すことができます。今回のシューティングゲームでも、この便利なオプションを採用することにします。

●背景ウィンドウでの操作

それでは具体的にゲームの背景を作成してみることにしましょう。マスコット++で背景フォルダーをオープンしウィンドウ上部の「新規」ボタンをクリックします。背景の種類と矩形サイズを決定するダイアログが表示されます。種類として「単色」を選び、サイズを640X480ドットと入力します。その後カラー選択ダイアログが表示されますので、好みの背景カラーを選んでください。(図8)カラーを変更したい場合には、背景セルを選び「表示」ボタンをクリックするか、セル自身をダブルクリックしてカラー選択ダイアログを再表示させます。ゲーム展開によっては場面を別背景に切り替えたいケースが出てきます。そうした操作は、先んじて登録しておいた複数の背景をプログラムによって切り替えることで実現します。

背景の情報を編集するには、「情報」ボタンをクリックするか、セル中の「i」アイコンをクリックして背景ウィンドウをオープンします。(図9)もし先んじて何体かのマスコット(ゲームキャラクター)が登録されていれば、それらもオープンされたウィンドウに表示されるはずです。マスコットが見にくい場合には、右から2番目のポップアップメニューで赤枠表示をONにしてください。背景サイズを変更したい場合には、黒猫アイコン横の「背景サイズ変更」ボタンで数値入力をします。(図10)また、別背景切り替え時にエフェクト(ワイプ)を用いたい場合には、その左側の「エフェクト」ボタンを利用します。(図11)

ゲームでは、広大な背景領域を定義しておき、その一部分だけをモニターに表示させたいケースがあります。ツールパレットの1番右のビューエリアツール(十字矢印アイコン)は、その「一部分」を決定するためのものです。ツールを選び背景上に矩形を描画したら、すぐ横の「登録」ボタンをクリックして固定します。この操作により背景上に赤い太線の矩形エリアが描画されます(図12)。ツールをダブルクリックするとビューエリアを数値入力することも可能です。ビューエリアを正確に決定したい場合にはこちらを利用してください。(図13)ゲームを起動すると、モニター上にはこのエリア内の背景しか表示されません。では、ゲーム進行中にビューエリアを移動させるのにはどうしたら良いのでしょうか?これにはマスコット++の「自動スクロール」機能や、プログラムによる「背景のスクロール」を実行します。背景のスクロールについては、次回に詳しく解説する予定です。

●マスコットの表示ON/OFF

ツールパレットにあるその他のツールでは、マスコットの表示領域を制限(クリッピング)するための図形を入力できます。ツールパレットの一番左の選択ツール(矢印カーソルアイコン)を選びマスコットをクリックします。マスコットが選択されれば、その回りに赤色の矩形枠が表示されます。複数マスコットの選択方法は、プロジェクトウィンドウ上のセルの選択と同じです。「tab」キーによる順次選択にも対応しています。次に、ツールパレットから矩形描画ツールを選び、背景内に矩形を描いて「登録」ボタンで固定してください。青色の矩形が表示されると思います。この操作により、選択されたマスコットは入力された矩形領域の中だけに表示されるようになります。(図14)例えば、背景に描いた窓枠の中だけをウロウロするマスコットなどを実現できるわけです。クリッピングエリアを解除するのには、マスコットを選択して「解除」ボタンをクリックします。

マスコットの初期表示位置(起動時に現れる場所)は「情報ウィンドウ」で入力できました。(図15)それとは別に、背景ウィンドウ上でも初期表示位置を決定できます。選択ツールを選び、背景上のマスコットをドラッグして好きな場所へ移動してください。そこが初期表示位置となります。「←」「→」「↑」「↓」キーは、選択されたマスコットを1ドットずつ左右上下に移動させます(微妙な位置合わせに使う)。もし、より正確な位置決めをしたい場合には、マスコットをダブルクリックして数値入力してください。(図16)ウィンドウの一番右のポップアップメニューで「1/2サイズ」や「1/4サイズ」を選び全体を縮小表示すれば、マスコットを背景の外に置くことも可能です(図17)おまけとして「オプションキー」を押しながらマスコットをダブルクリックすると、プロジェクトウィンドウを表示し指定マスコットのフォルダをオープンします。

通常ゲームスタート時には特定のキャラクターのみがモニターに表示されます。「マスコットON/OFF」ポップアップメニュー(黒猫アイコン)の項目には、現在登録されているマスコットがすべて並んでいます。(図18)名称にチェックマークが付いているのが、この背景で表示されるマスコットです。再度項目を選びチェックマークを外すと背景ウィンドウからもマスコットが消えます。消去されたマスコットは、スタート時には表示されません。メニューから「全マスコット」を選べば、一度にすべてのマスコットをONにできます。こうしたマスコットのON/OFFは各背景ごとに設定することができます。つまり、ゲームの場面切り替えにより登場キャラクターを変更することが容易にできるわけです。また、表示ON/OFFはプログラムによってもコントロールできますので、最初はすべてをOFFにしておき、その後の経過時間や変数の増減、またはユーザからのイベント等でONにすることも可能です。(図19)

●エピローグ

さてさて、iBookの3Kgという重さを考えるとモバイル用を期待していたMacユーザにはちょっと期待外れだったかもしれません。しかし、Jobsは「モバイルという市場もある」と言うことは認めているようですので、来年はそうしたマシンの年になるかもしれませんね。期待したいと思います。今回はゲーム開発の下準備の話が中心でした。次回は「マスコットでゲームにチャレンジ!-その2」という題目で、キャラクターの操縦方法、画面スクロール、エイリアスマスコットや自作フォントの活用方などについて解説してみたいと思います。お楽しみに!

copyright 2001 Ottimo, Inc. All rights reserved
無断転載・引用禁止
Contact Us: koike@ottimo.co.jp