
私のゼミの学生が、卒業制作としてFlashの横スクロールゲームを開発しているため、そのPSP対応を検討してみました。タイミング的には、この秋にPSP-3000が発売され、ファームウェアのバージョンアップもあり、これまで以上にPSP用Flashでの開発がしやすくなっていました。このためPSPを自費購入し、現時点での最新ファームウェアにアップデートした後に、学生が作成したゲームを私の方でチューニングしてみました。
キー入力に関しては、上下左右キーはそのまま押下のイベント取得が可能で、○ボタンについても、ステージ全体にボタンを設定することにより、マウスクリックイベントとして取得可能です。swfファイルに埋め込んだMP3音源も問題なく再生することができました。
ただし、PC用のswfファイルではフレームレートを30fpsに設定していましたが、これを10fpsまで落としても、再生がカクカクし、ゲームとして楽しむことができません。これは背景のマップチップを予め画面外まで配置し、そのムービークリップを移動させることにより、横スクロールを実現していることが大きな原因でしょう。なお、配置するマップチップに“cacheAsBitmap”を設定しても、体感できる効果はありませんでした。
ゲーム開発以外でPSPでの利用を検討していた、FlashPlayer8用に私が開発しているSNS”Social Learning Life”も、PSPでは全く再生されませんでした。
もう少し「おしい」ところまでゲームが再現できたら、更にPSP用にチューニングする気にもなったのですが、状況が厳しすぎると判断して、今回はここであきらめることにしました。今回の経験で、PSPでのFlash利用は、アニメーション再生やキー押下への反応速度が重要ではないアドベンチャーゲームに限られるのでは、という印象を持ちました。
プライベートではゲームをしないので、早速、1ヶ月前に1万9千円で購入したPSPを、ソフマップにて1万4千円で売ってきました。
現在、所属先の短大の授業で作成しているRPGでは、横32×縦32ピクセルのマップチップ(GIF形式)を、横32×縦32チップ敷き詰めた背景を用いています。その際に、Flashに取り込んだマップチップ画像を、attachMovieを用いて、一つのシンボル内に全て敷き詰め、カーソルキーの操作に対応してそのインスタンスを上下左右に移動させることにより、背景スクロールを実現しています。
授業では、マップチップの種類としてプレーヤーキャラクターが通り抜けられる背景と、通り抜けられない背景を少なくとも1種類づつとしか制限を設けていません。しかしながら、多くのマップチップを用いて凝った背景を作る学生が予想外に多く、その作品の完成が楽しみになっています。
ただ、たくさんのマップチップを用いたことから、地図背景のスクロールが遅くなってしまう学生もでてきました。この学生の場合、1kbにも満たないGIF画像を背景用に63枚用いています。これらのマップチップを、前述のように一つのシンボル内に貼り付けて12FramePerSecondでスクロールさせているのですが、比較的新しいPC(Pentium4、512MB)でも、スクロール動作が極端に遅くなってしまいます。
このため、attachMovieを用いてマップチップを配置した直後に、そのマップチップに対して、Flash8より登場した”cacheAsBitmap”を実行してみたら、動作が非常に軽快になりました。FlashPlayer8以降でしかゲームを実行できなくなってしまうのは残念ですが、このような場合のごく簡単な対処法だと思います。

Flashプログラミングの授業で取り上げているRPG作成ですが、バージョン0.3の作品に音楽をつける作業をしました。自分へのメモを兼ねて、調べたことを記載しておきます。
授業で用いているFlash Professionl 8で読み込めるサウンドファイル形式は、WAV (Windows のみ)、AIFF (Macintosh のみ)、MP3 (Windows または Macintosh)です。オーサリング環境にQuickTime 4 以降がインストールされている場合は、更にいくつかのファイル形式がサポートされます。
これに対して今回のサウンド添付作業ではインターネット上の音素材を利用することを考えており、それらのファイル形式は主にMIDIかMP3となっています。特にMIDI形式の音素材は、数多く公開されていることに加え、ゲームのBGMに向いたものも多いため、Flashで読み込める形にファイル形式を変換して利用することを考えています。ちなみにオーサリング環境にQuickTime 4 以降がインストールされていても、MIDI形式のファイルをFlashに直接読み込むことはできません。
MIDIファイルを、Flashに読み込めるファイル形式に変換するソフトウェアとしては、TiMidity++が良さそうだったのですが、ライセンスがGPLなのが気になり、今回はDSマルチメディアプレイヤースタンダードを用いて、MIDIファイルを再生しながらwaveファイルに録音することにしました。
DSマルチメディアプレイヤースタンダードでMIDIファイルを録音する際には、「ファイル」⇒「プロパティ」より「再生」タブを表示させ、「再生デバイス」に「mid」、「録音デバイス」に「マイク」を設定しました。「録音」タブでは、「ステレオ/モノラル」を「モノラル」に設定し、録音レベルを調整しました。
保存したwaveファイルをFlashに読み込んだ後は、ライブラリ内でそれぞれのファイルに識別子を振り、Soundオブジェクトとして再生制御をしてます。音楽はスタート、ゲーム中、ハッピーエンド、ゲームオーバーの4種を設定しています。この4種の音楽は2, 3分あった素材をそのまま使っているので、完成したswfファイルが1MB強とかなり大きくなってしまいました。これについては時間を見つけて対応策を考えたいと思います。
使用した音素材は、画像素材と同じ掲示板で公開されていた、M.o.Jさんの作品を使わせていただきました。どうもありがとうございます。
【クリックでサンプルがスタート(カーソルキーで操作)】

Flashのプログラミングを教える授業で簡単なRPGを作成していますが、そのサンプル作品のバージョン0.3ができました。今回のバージョンでは、敵キャラと壁との衝突判定を行い、敵キャラが壁を通り抜けられないようにしました。また、敵キャラにぶつかるとゲームオーバー画面に進みます。
更に鍵アイテムとゴールを用意しました。このサンプルでは、鍵アイテムはゲーム画面左下にいるお姫様で、ゴールは画面右上にあるお城です。この鍵アイテム(お姫様)を取得した後でゴールに辿りつくと、ハッピーエンド画面に進みます。
敵キャラの移動ルーチンは、プレーヤーに向かってくるだけの非常にシンプルなものです。ただ、プレーヤーとのX軸方向の差をまず縮めようとする種類とY軸方向を縮めようとするものの2種の敵キャラがいます(見た目は同じです)。こんなシンプルな敵キャラでも、4匹も登場させるとかなり難しいゲームになったと思います。
この後、効果音・BGMをつけ、余裕があれば点数を加算できるアイテムを作成する予定です。
【クリックでサンプルがスタート(カーソルキーで操作)】

先日、作成したRPGサンプルのVersion0.1では、キャラクターの移動と壁との衝突判定程度しか作りこんでいませんでした。この後これをどのように発展させて、ゲーム性を増やそうか悩んでいます。Flashで簡単なRPGを作ると言う今回のテーマは、ゼミ生の卒業制作だけではなく、短大2年生を履修対象とした授業でも取り上げているため、複雑なプログラミングは避けたい所です。
今回のVersion0.2では、取り急ぎ複数の敵キャラが自分に向かって進んでくるようにしてみました。まだ、敵と自分の衝突判定や敵と壁の衝突判定はしていませんが、この段階で学生にはちょっと難しいかなと感じています。もう少しプログラムが簡単にならないか検討してみますが、無理な場合は別のギミックを取り込もうと考えようと思います。
今回のサンプルでも、敵キャラの絵素材にこちらのフリー素材掲示板で紹介されていた「MACKさん」の作品を利用させてもらいました.どうもありがとうございます.
【クリックでサンプルがスタート(カーソルキーで操作)】
