2005/09/10 土
LUMINES remixer 製作記 #1 〜 LUMINES をしゃぶりつくそう
PSP アプリの開発環境を導入してからというもの、PSP に触る機会が非常に多くなってきました。ゲームは「LUMINES」と「WIPEOUT PURE」しか持ってませんが(笑)
ちょこちょこ自作のテストアプリを作りながらも上記ゲームで遊んでいるんですが、僕の LUMINES は水口さんのサイン入りなのであまり出し入れしたくないのです、ほんとは。できればしまっておきたい。そんなわけで、最近は UMD を吸い出してメモリースティックから起動して遊んだりしています (Mac OS X での吸い出し方法は後述)。LUMINES はスキンが変わるときの長い読み込み時間のせいで没入度をダウンさせている点が非常にもったいないのですが、メモリースティックからの起動だと読み込みがかなり速くなってとても快適です。おそらくこっちのほうが制作者のイメージに近いんじゃないでしょうか。SCE にはオリジナルの UMD 必須でいいからメモリスティック起動を正式にサポートしてほしいです、まじで。
で、吸い出した UMD の内容を眺めているときに(ISO イメージなので普通にマウントできる)、「これはまだまだ遊び倒せるな」と思いました。大きく以下の3つの遊び方があると思います。
- 絵や映像、音の素材ファイルやデータを PC 向けに変換して活用
- バイナリを変更・改造してメモリースティックから起動して遊ぶ
- UMD 内の素材ファイルを自作アプリで読み込んで利用する
1は、PS や PS2 の CD/DVD-ROM を PC につっこんで中に入っているデータを変換して遊んでいた人にはおなじみの遊び方でしょう。ゲーム中の素材がデジタルデータで手に入るので、いろいろと活用の幅が広がります(もちろん私的利用の範囲で)。また、ゲーム中のデータやパラメータを覗くのもなかなか楽しいです。どんな素材やデータが入っているかわかってしまうので、ゲームを普通に遊び倒してからじゃないと興ざめしてしまいますが…。
2は、メモリースティック起動の際に読み込むゲームデータをあらかじめ改造しておく、というやり方です。プログラムの動作を変えたり、素材データを入れ替えたりすることで、自分の好きなゲームバランスに仕上げることができます(もちろん要スキル)。僕はこの方法で、LUMINES のスキンの出現順番や難易度の変更、曲の差し替えなどをして遊んでます。「SHININ'」 → 「SHAKE YA BODY」 → 「I hear the music in my Soul」 → 「Lights」とか歌ものを並べたりするとかなり熱いです♪
で、僕が注目しているのは3です。UMD を外部記憶装置としてとらえ、そこに入っている素材をメモリースティックから起動した自作アプリで読み込んでゲーム中に使う、という遊び方です。素材を吸い出して自作アプリに組込んで配布というのは法的にもいろいろと問題がありますが、「素材は UMD の中。自作アプリはそれを再活用するだけ」というスタイルであれば、その辺の問題はクリアされるのではないでしょうか。素材自体はゲームを買わないと手に入らないのですから。要するに remix です。流行の WEB 2.0 っぽいのもいい感じです。
■ LUMINES の音楽データを remix するアプリ「LUMINES remixer」を作る
前置きが長くなりました。というわけで、愛する LUMINES をもっと遊び倒すために、音楽データを読み込んで自由に再生して遊ぶシーケンサみたいなアプリを作ろうと思いました。LUMINES は音がメインのゲームなのにサウンドテスト機能がないので、それを自分で作ってしまおうというわけです(実はそれらしいデータは入っているんですが、諸事情により未実装なのかな…?)。「LUMINES remixes」という remix CD も出ていますが、大沢伸一氏の曲は入ってないですし、やっぱり自分で remix したいじゃないですか!
まだ妄想段階で具体的な機能は決めてません。とりあえず選んだ音を鳴らせるところまで作ったら公開しようかと思っています。あとはシーケンスデータに沿って一曲再生したり、重ねと順番を好きなように組み合わせてオリジナルミックスにしたり、効果音系を打ち込みしたりできればなぁ、と思ってます。自分で組んだシーケンスをスキンデータに吐き出したりできるとより楽しいかも知れませんね。
開発コードというか名前は remix CD の一文字違いで「LUMINES remixer」にしてみました。「re:LUMINES」とか「luMIXnes」とかわけわからない名前をいっぱい考えたのですが(笑)。毎日少しづつ作っていくので、製作ペースはのんびりだと思いますが、興味のある方はご意見やご指摘など頂ければと思います。
■ 独り言
といっておいてアレですが、僕は仕組み(手段)がわかっちゃうと飽きちゃうクセがあるんですよねぇ。今回も実は要素技術は大体確立していて、PSP 上でのグラフィック表示、音声出力、UMD からのファイル読み込み、PC 上での dat ファイルの解析とデータ切り出し、dat に含まれている csv&vag ファイルの解析、vag ファイルから音声データ(PCM)の生成、というところまではできました。あとは PSP 上で全部組み合わせるだけなのですが、できるかどうかはわかっちゃったのでモチベーション続くかなぁ、という我ながら不安です。
でも、PSP で自分が作ったものが動くというのは、どんなに簡単なプログラムでも感動モノなのです。初めて画像を出力したときに「おー!」と、初めてポリゴンを動かしたときに「おおー!」と、初めて音声を鳴らせたときには「おおおーーー!!!」と、ここ最近感動しっぱなしです。しかも今回は目的自体に興味があるのでがんばれそうな気がします。製作記として晒すことでさらにがんばれるかなぁ、と。情報も集まるかも知れないですしね。話題が話題なので NDOメソッドみたいにはいかないと思いますが(^^
■ Mac OS X で New UMD Dumper v0.2.0 を使う
UMD を吸い出すツールは色々あるのですが、僕は lS さんが製作した New UMD Dumper v0.2.0 というツールを使っています。容量の小さいメモリースティック用に分割ダウンロードができるのと、なによりブログを持っている日本人が作っているのが安心です。
ただこのツール、他の PSP 向けツールと同様に PC での利用が前提となっています。分割ダウンロードを使わなければ問題ないのですが、分割時のデータ切り出し・結合ツールが PC でしか動きません。なので、同等の動作をするスクリプトを perl で書いてみました。以下のファイルを解凍して、吸い出したデータ(UMD.000、UMD.001...)を置いてあるディレクトリで実行すると UMD.ISO という名前の ISO イメージが生成されます。もちろん perl が入っていれば Mac OS X じゃなくても動きます。
$ ls concat.pl UMD.000 UMD.001 UMD.002 $ perl concat.pl
もうすぐ公開予定の v0.3 ではこのような切り出しはいらなくなって、cat とかで単純連結できるようになるみたいです。超期待。








