<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=92513976689277611&amp;zx=99c251a9-60bc-4db4-92c2-95d173a2fc3c' rel='stylesheet'/>

2016年3月2日水曜日

スクリプトエンジン研究(1):RealLive

※この記事はあくまでも僕が研究してMAGCUPに使えそうなことを書いているだけなので、あまり参考にならないと思われます。また、データ抽出が主な目的ではないので抽出方法等は記載しません。そのようなことを質問するコメントがあった場合は削除させていただきます。あと、今回めっちゃ長いですw
どうも、やっとメインテーマを書き始めた赤西 真論です。
記念すべき第1回目は業界大手のVisual Art'sが開発したRealLiveです。
  • どんなエンジンなの?
もともとAVG32と呼ばれるエンジンが使われていたのですが、ゲームの高解像度化と動画再生対応のために作り直されたようです。2000年代に作られたためAVG2000とも呼ばれます。(おそらくAVG32は32bitに対応しているという意味ではないかと思われます)
自他ともに認めるほど出来がよく、馬場社長いわく10万本売れても10件以下のクレームだそうです。なかなか安定してますね。また、数万のコマンド群があるようです。
  • 動作環境は?
これはゲームにもよりますが、大体は以下の様な感じです。この表は「ナツユメナギサ」の場合です。このソフトはRealLiveから次回紹介するこのエンジンの新版であるSiglusEngineへの過渡期に作られたものなのでこのスペックがあれば大体のゲームが動くはずです。
必須環境 推奨環境
CPU Pentium 500MHz以上 Pentium 1GHz以上
メモリ 128Mbyte以上 256Mbyte以上
HDD 3GB以上
光学ドライブ DVD 2倍速以上 DVD 4倍速以上
グラフィック 800x600
(16bit/HighColor/6万色)
800x600
(24or32bit/FullColor/1600万色)
OS 2000/XP/Vista
その他 マウス
DirectX5
ホームページにはHDDが未定になっていますが、僕がインストールした結果2.44GBだったので少し余裕をもって3GBにしました。パッケージを見ればいいはずなのですが、どこにいったか分からない状況でしてw
こんな低スペックなら今のPCであれば大体動くはずです。Win10での動作も一応僕が確認しています。
ちょこちょこ調べたところ、現在RealLiveを使ってるブランドがあったのでそれの動作環境も見てみましょう。
ゲームの名前は「らぶ撮りハレーション」。ブランド名は「裸足少女」です。このブランドはビジュアルアーツ傘下のメーカーらしいです。プレイしたことがないのであんまり知りません。
必須環境 推奨環境
CPU PentiumIII 1GHz 以上 Pentium4 2GHz 以上
メモリ 128MB 以上 256MB 以上
HDD 7.5GB 以上
光学ドライブ DVD 2倍速以上 DVD 4倍速以上
グラフィック 1280x720
(16bit/HighColor/6万色)
1280x720
(24or32bit/FullColor/1600万色)
OS Vista/7/8/10
その他 DirectX5
これを見て驚いたのはこのエンジン、16:9のHD表示に対応してたんですねw
DirectX5以上って表記がされてますが、OS対応がVista以降の時点でこの表記は要らなかったと思います。あと、HDDが7.5GB以上になっていますがDVD-ROM2枚組と書いてあることから、おそらく1層ディスク2枚なんでしょうね。1枚にしたほうがユーザー側からするとインストールが楽になると思うのですが......
さて、動作環境を見た感じ特に高スペックなPCを必要な感じはしませんね。昔作られたエンジンなだけあって動作は今のPCなら軽そうです。
  • 動作画面を見る前にフォルダー覗いとくか
今回動作を研究するのは先程の動作環境でも紹介した「ナツユメナギサ」です。
一応リトバスとかもあるんですけど、今PCにインストールしてあったのがこれだったのでこれで見ていきます。
インストール後のフォルダーはこんな感じです。
SnapCrab_No-0000
・ARDフォルダ
SnapCrab_No-0001
マップ情報と思われるファイルが入っています。ARDは何の略なんでしょうか?
・BGMフォルダ
SnapCrab_No-0002
BGMですね。そのままです。生oggで入っていますのでそのまま再生出来てしまいます。
・DATフォルダ
SnapCrab_No-0003
設定データとかでしょうか?これもよく分かりません
・G00フォルダ
SnapCrab_No-0004
画像データです。1つのアーカイブにまとめるとかせずに1つ1つファイルを暗号化しているようです。そのため、すごい数になってます。
・GANフォルダ
SnapCrab_No-0005
アニメーションファイルですね。このゲームをプレイしたことがある人ならわかると思いますが、途中で蝶が飛ぶアニメーションがあると思います。それに使われているのがこのファイルです。ファイルサイズから分かるように画像データはG00フォルダに入っているので、このファイルには動きしか定義されていません。
・KOEフォルダ
SnapCrab_No-0006
出ました、KOEフォルダですww RealLive独特の名前ですね。このフォルダはBGMと違いアーカイブにまとめてあります。流石にこれを分解しちゃうと何万というファイルが出てしまう上に不正利用される可能性があるのでしょうがないと思います。
・MOVフォルダー
SnapCrab_No-0007
動画ファイルですね。OPがmpg形式でそのまま入ってます。
・WAVフォルダ
SnapCrab_No-0008
効果音ですね。独自形式だなと思いますよね?ですが、少しスクロールすると......
SnapCrab_No-0009
oggが出てきたりします。正直意味が分かりません。
・そのまま突っ込んであるファイル
SnapCrab_No-0000
ここからは1つ1つ丁寧に見ていきます。
GAMEEXE.INI→エンジン設定、これを弄るとあるものを見ることができます。
NATUYUME.ICO→アイコン、起動するとタイトルバーやタスクバーにこのアイコンが表示されます。
REALLIVE.EXE→エンジン本体、これが一番重要です。
REALLIVE.EXE.manifest→マニフェストファイル、確か管理者権限としてエンジンを動かすとかの定義がされてるはずです。
rl_d3d.dll→dllファイル、名前からしてDirectXようですね。rlはreal liveの略でしょう。
SEEN.TXT→シナリオファイル、これも重要です。これにシナリオが書いてあり、RealLiveはこれを元にしながら動いていきます。TXTという拡張子ですが、中身はテキストではありません。複数のファイルが固めてあります。また、コンパイル後のファイルであるためテキストを読むことはそのままではできません。
  • 実行するか
じゃあ、とりあえず実行してみます。ゲームなのに実行前にUACが出るのってどうなの?
image
今回はプレイが目的では無いので、素の状態です。ちなみにSnapCrabのホットキーが動きません。ですが、何故かWindows標準のスクリーンショット機能は動きます。とりあえずこの状態でのメモリー使用量を見てみます。
image
あー、なんかいろいろ起動してますね。今回重要なのはRealLiveです。(青色反転している行です。)これを見るとなんと17.1MBしか使用していません!何ですか、このエコ仕様は!どこかの糞エンジンとは違いますwww(その糞エンジンもいつか紹介します。)
次はコンフィグ画面を確認します。
image
image
image
image
これで全部です。横にいろいろ選択があるので大量にページがあるのかな思ってしまいますが、ただスクロールするだけです。オーソドックスな感じで必要な物は全部ついてるようなのですが、出来ればマウスポインタの自動消去とデザイン変更に関しての設定が欲しかったかな。これ以外に個別で設定があるので見てみます。
まずは画面モード内にあるフルスクリーンの設定です。
image
いきなり普通のウィンドウが開きましたww 結構細かく変更できるのが特徴です。
特にフルスクリーン表示モード内のカスタム表示を選択すると
image
こんな感じで非常に細かく設定できます。ここまで設定する人はいないんじゃないんでしょうか。僕も使ったことは無いです。というかどんなゲームもウィンドウでプレイするのが好きなのでフルスクリーンにすることすら稀です。
この中のDirect3Dの設定をクリックすると
image
こんなウィンドウに切り替わります。この設定は今のPCであれば有効に設定することをおすすめします。
次にフォント設定を見ます。
image
こんな感じです。特に特別な設定があるというわけではありませんが、テストの用のテキストはなぜこれにしたのか気になりますww
次はその他の設定です。もう一度画面を見てみましょう。
image
ここが一番独特な気がします。サウンドの周波数を変えたりできるんですね。マウスカーソルはモノクロにしたほうが速いんですかね?今のスペックだとあまり変わらない気がします。
この中のMMXのサポートを見てみます。
image
うーん、よく分からない。とりあえず有効にしておいたらいいんじゃないんでしょうか。現在のCPUはMMXをサポートしてるんで......
ムービーサポートも見てみます。
image
これも分かりません。標準設定でいいと思います。
さて、プレイ画面も軽く確認しておきましょう。こっちにしかない設定があるんで......
image
えっと、Qセーブが無いじゃん。そんなことはどうでもいいのでこの画面で右クリックします。
image
メニューが出てきました。やっぱ、Qセーブ無い...... 見てほしいのはオートモードの横の設定です。
image
いい感じに細かく設定できます。この方式はどのゲームにも実装して欲しいですね。セリフ長いのに短い場合と同じ時間だと読めないことがあるんで......
じゃあ、通常モードはこのぐらいにしておきましょう。っとその前にプレイ画面でのメモリー使用量も確認しておきましょう。
image
えっと、少し増えて24.4MBです。もう少しプレイすればどんどん増えていくはずです。まあ、そこまで気にしなくていいと思います。この感じだと最大でも100MBはいかないでしょうから......
  • さあ、研究開始だ
こんなことで「はい、研究結果です」だと誰も読みません。ただのレビューです。こういうゲームをするときはまずデバッグモードを出してしまいます。ということで出してみましょう。
先ほどフォルダー説明の中でGAMEEXE.INIがあったと思います。それを普通のテキストエディタで開いてみます。
SnapCrab_No-0010
いろいろ書いてありますね。全部で1270行あります。これを読むためにあるものを準備しました。
  • あるものってなんだ?
実はですね、このRealLiveなんですが2010年7月から一般利用が可能になっています。その名もRealLiveMax!VA曰く貸出という形式での利用であるため、許諾が必要なはずなのですが、現在許諾申請を受け付けてないようです。それでも、ダウンロードはできるので使っちゃえw(多分やばいので自己責任でお願いします。今回はマニュアルが目的なのでグレーゾーンな感じですが......)
ダウンロードサイトはググれば出てきます。あえてここにはリンクを張りません。
ダウンロードしたファイルを展開するとこんな感じになっています。
SnapCrab_No-0011
えっと、StartっていうのはインストールせずにRealLiveを使用できるようするためのものなので今回は関係ありません。主に体験版で使うみたいです。RealLive開発環境を開いてみます。
SnapCrab_No-0012
こんな感じのはずです。マニュアルを発見しました。開きます。
SnapCrab_No-0000
「マニュアルについて」というテキストがあります。それを読むとCHM版が一番詳しいようです。では、見てみましょう。(ちょっと手順を飛ばします)
SnapCrab_No-0001
ほう、なかなかに読みやすそうです。では、GAMEEXE.INIについての項目を読みます。
SnapCrab_No-0002
多すぎますw 目的のデバッグモードについては一番最初に書いてありましたが、少し気になる項目があったので軽く読んでおきます。(スクショは貼りません)
  • 本題にもどるぞ
先ほどのGAMEEXE.INIに戻ります。編集するのは行として「#MEMORY=001」を追加するだけです。これでセーブします。
そして、RealLiveを起動すると
image
なんかいろいろ増えてます。
image
image
image
image
すごい数です。多いすぎて使い切れる気がしません。この状態でのメモリー使用量はどんな感じでしょうか?
image
流石に増えてますね。20MBぐらい増えてます。
ひとつひとつ説明したいのはやまやまなのですが、それをするとえらいことになるのでやめます。というか、もうそろそろ書くのが面倒になってきましたw
ということで無理やりまとめに入ります。
  • まとめ
記念すべき最初はRealLiveにしました。これが結構楽だと思ったんですよね。開発環境は公開されているし、昔から使われているですから。でも、いざ記事にしてみると書けることが案外少ない。多分この記事を最初に見た人は「バイナリエディタとかでシーンファイルの解析をしてるのかな?」とか「OllyDbgを使って内部まで調べてるのかな?」とか思っちゃうはずです。僕だってこんな記事を見かけたらそんなことを考えてしまいます。ですが、それは現実的には結構厳しいです。解析行為というのは高い技術力がいるもので僕の現在の能力だと無理です。もし、出来たとしてもブログの記事にはしません。何かと法律等が関わってきそうですからね。なので今回はこんな感じにさせていただきました。本当の目的はMAGCUPの開発でどんな機能が必要なのかを研究することですから。とりあえず今回このエンジンから使えそうだと思ったものは「オートモードの設定」「デバッグ機能の量」ですかね。古いエンジンなのですごい最先端の機能が付いているわけではありませんから。あ、あとは「コマンドの実装」ですかね。ここまで詳しいマニュアルが付いているエンジンはそうそうありません。これは非常に参考になりそうです。
次回はこれの次世代版SiglusEngineについて扱う予定です。いつになるかは分かりませんw
では、次回までさようなら
  • 以下愚痴(読まなくていいです)
今回の記事は書くのに4時間ぐらいかかった気がする。これを長いと思うか短いと思うかは人それぞれだと思うが、俺的にはこんぐらいの量ならもう少し短縮できたと思う。理由は画面の狭さだ。今回も前回と同様にX61sを使用した。このPCはXGA、つまり1024x768の解像度である。いくらなんでも狭すぎる。この記事はウィンドウをせっせと切り替えながら作ったが、効率が非常に悪い。次回からは16:9のゲームを扱う予定にしている。なのでもっと画面が狭く感じるはずだ。早くメインマシンを使いたい。
[今回参考にしたページ]
https://ja.wikipedia.org/wiki/RealLive
http://togetter.com/li/33797
http://sagaplanets.product.co.jp/works/natuyume/
http://hadashi.product.co.jp/lovedori/

0 件のコメント:

コメントを投稿