嵯峨のはてなブログ

ニコニコのブロマガから移転してきました。

PSTAS作成までのチュートリアル Bizhawk 一般向けではないので拡散はしないでください。

どの段階で躓いているのかはよくわからないが、
TwitterでPSのTASを作りたいという人がいたので指南書を少々。
あまり複雑な話をせずに本当に初心者向けのさわりだけ。
というか自分もそんなに知らないので軽くノウハウを披露。
口語が多くなってるけど我慢して。


1.最新版のBizhawkをダウンロード
まずTASVideosにアクセスしてBizhawkをダウンロード
http://tasvideos.org/

英語よくわからんってなったり開発者用の物が置いてあったりするけど
頑張って見つけてインストールしましょう。
(ここで躓く人はそもそもTAS完成できないでしょ)
現バージョンは2.4.2でした。それをもとに記事を書いていきます。

2.CDとBIOSの設定
TASを作りたいディスクをCDドライブに挿入して
CD Manipulatorなどのソフトでcue/ccd/mds/m3u形式にする
吸出しはどの機種よりも楽なんじゃないかな。
imgやbinのファイルはBizhawkが読み込めなかったと思うので注意

BIOSは先人が動画とか出してるはずなので省略
私が主に活動していたころはSCPH-1000が推奨だった気がするが
軽く見た感じTASVideosのsubmitされている作品で明記されていないものもあるし、
5000番台を利用しているものもあった。携帯機から吸い出したのは避けた方がいいかも?
国によってBIOSの末尾の数字が変わるのでそこは合わせておこう。
他は忘れたんですけどサガフロの場合はBIOSによって初期乱数が変わります。

Bizhawkを起動してConfigからFirmwaresをクリック。
PSX J BIOS(J)という所を右クリックし、Set Customizationを選択して
先ほど吸い出したBIOSを設定する。



FileのOpenから先ほどイメージ化したディスクファイルを選択してロードする。
するとゲームを起動することができる。


3.キー設定
Bizhawkはマルチプラットフォームエミュレーターということで
他のゲーム機のソフトも読み込むことができる。
なのでキー設定はソフトをロード後その機種ごとに設定するようになっている。
ConfigからControllerを選択、上から順番に設定していく。


※キー配置は好みで、ジョイパッドなどの入力も受け付けている。
注意してほしいのはQには初期値に下記のHotkeys設定の、MovieタブReadonlyに設定されているのでどちらかは変更するべきだろう。

一番下のMODEはAnalogのオンオフだろうか?使わないから知らない。
R3L3もあんまり使わないかも。

続いてConfigからHotkeysを選択



エミュレーターの機能を使ってTAS制作を行う上で必要なセッティング
Generalタブの1番目から重要なFrame Advanceがありますね。
ここで設定したボタンを押すことでエミュを1フレームずつ進めることができます。
例えば x を 〇として設定していた場合
「x + Frame Advanceキー」 で〇を押した状態で1フレーム進める、ということですね
Frame Advanceを使うと自動的にPause状態になるので
Pauseに設定したボタンを押して解除しましょう
Fast ForwardやTurboはPCスペックに余裕がある場合にゲームが倍速で動きます。
自分の場合は1倍~1.5倍ぐらいしか出ないので
調査は別のエミュレーターなどを使っています。
(PCSX-rr等)この場合10倍速ぐらい出ます。
あとはソフトリセットとかScreenShotなどを設定しておくと便利ですかね。

Save statesのタブを見て見ましょう。
ここで設定したキーを押すことでいつでもセーブ、ロードすることができます。
必要最低限の設定はこれぐらいでしょうか。

4.現在の状況
ViewからDisplay ***にチェックを入れることで現在の状況を確認することができます



ゲーム起動からの現在のFPSやフレーム数、ラグカウント、入力状況など
Frame Advance中に入力がしっかりされているかどうか目視することができるので入力のミスなどが減ったり
これまでの手順で何秒で到達できた、別の手順だと○○秒だったという比較が楽に行えます。

5.ディスク交換設定
PSはゲームによって複数のディスクを交換して遊ぶ場合があります。
主にムービーをたくさん使った大作RPG等ですね。
しかし事前に設定していなければTAS制作途中に
ディスクを入れ替えることができない(はず)なので設定しておきます。
Disc1のソフトをロードした状態で ToolからMult-disk Blanderを起動します。


ここで下の枠内の一番上にロードしたソフトの名前が入っていると思います。
下の空欄の右のBrowseを選択してDisc2のソフトを設定しましょう。
Disc3、Disc4がある場合は左下のAddで追加して同様に設定してください。
最後にSave and Runを押して保存します。これで設定は完了です。
次からソフトを読み込むときはこのXmlファイルをロードしましょう

実際にディスクを交換するときはPSXからDisc Controlsを選択
Trayの枠内のOpenを押してから該当のディスクをクリックしてCloseを選択します。
場合によっては人力で間に合わない交換タイミングを確保できるので
バグが発生した場合もしっかりと実機で再現できるか確認が必要です。(だと思う)


6.ゲームの知識
最短を目指す場合自分が知らない情報がある前提で
既成概念にとらわれずにいろいろ試してみる必要があります。
しっかりと事前計画(チャート)を立てて制作していきましょう。
例えば制作するTASがRPGの場合、ラスボスのHPが10000だったとして
1ターンで10000ダメージを与えるか、
1ターンで5000ダメージを与え2ターンで倒すか
1ターンで3334ダメージを与え3ターンで倒すか
敵は何ターン目にどのような行動をとってくるか、回避できるのか、演出の時間は?等
思い入れの強いゲームであるならば、一度そこそこの出来のTASを作って
あとから最適化を目指すというのも手です(Testrun)ニコニコに投稿などをして
他の人からの評価や更新案の提案がないか確認してみましょう。
Twitter経由でRTA走者と情報交流することもお互いの刺激になるかな、と思います。

※先駆者の記録は時間をかけてラスボスを1ターンで撃破していた

7.本制作、本番
例として
チョコボの不思議なデータディスクでサガフロンティアのセーブデータを
メモリーカードに保存しようとするだけのTASを作ってみます。

作ってる最中にメモリーカードをOFFの設定にしていたことに気付いたので
保存ではなく保存しようとするだけのTASに移行しました。
(メモリーカードの設定はPSXのController / Memcard Settingから設定できます。)

まず画面を右クリックかFileのMovieからRecord Movieを選択
Fileはムービーファイルの名前でAuthorは製作者の名前かな。

Record Fromはムービーファイルの開始地点。
・Power-ON
基本はこれ、勝手にリセットしてくれて電源投入地点から記録が始まります
・Now
ゲームの現在の状況から作りたい時(たしか容量がちょっとだけ多くなる)
ちょっとしたお遊びプレイや実験の時に使ったりします。
・SaveRam
Bizhawkのこの機能は使ったことないんだけど
メモリーカードのデータを引き継いでプレイできるって事かな。
事前に用意したセーブデータを利用するTASなどで使われるハズ。

参考になるかわからないけど動画も撮っときました。

Power-ONを選んだら0フレーム目から開始して
PSの起動画面(なぜか表示されない)と音が出てきます。
まずいきなりFrame Advanceでゲームを止めてShift+0-9(F1-F10)にセーブをします。
セーブは結構雑にいろんな場所に取るといいでしょう。
1つはゲーム開始地点で残しておくといいと思います。

次にどのタイミングから入力を受け付けるか把握する必要があります。
〇を適当に連打してSQUAREのロゴが飛ばせるものなのか、
事前に〇を押しておけば非表示にできないのか、などを通常速度で試していきます。
録画してることもあって何度かミスしていますがまあそんなものです。
というか普段はもっとゆっくりやってますし、これからもたくさんミスしています。
少しずつセーブの間隔を狭めていき、再挑戦、再入力しやすいようにして確認します。
どうやらSQUAREのロゴは飛ばせないようなので何も押さずに進めました。


次はオマケデータの選択。
画面が暗い段階から入力受付があるのか、総何フレーム目からボタンを受け付けるのか
複数のセーブスロットを利用して少しずつ確認していきます。
反応があった場合でも少し不安になるので
本当にそのタイミングが最速なのかちょっと前のフレームから戻って確認しなおします。


オマケデータを選択できたら次にサガフロンティアはどこにあるのか、
確認する必要があります。
Frame Advanceを使わずに通常速度で左右を押しながら
どこになにのデータがあるのか、キー入力は何回必要なのかなどを確認します。
調査の結果すぐ右にサガフロンティアのデータがありました。

あとはオマケデータを選択してからどれぐらいの時間を経過してから
右の入力を受け付けるのか、セーブとロードを使って試していきます。
右の入力と〇を同時に押すと〇は認識されるのか?
Frame Advanceで1フレーム入力を待てば〇は認識するのか?など
少しずつ無入力を混ぜながら進めていきます。
あとはそれの繰り返しで全員分のデータをセーブしようとしてみただけのTAS完成です。
制作が終わったらStop Movieを選択して記録を終えます。

TAS制作とは少し関係ないですが使用しているキーボードによっては同時押しできるキーと
できないキーがあるので注意が必要です。
例えばアクション系でダッシュジャンプをするために
十字キーで移動方向を決めて、□で攻撃しながら〇でダッシュ
×でジャンプしながらFrame Advanceのキーの同時押し等


また、必要なステートセーブを作らずに進めてしまって巻き戻せない場合は
一旦ムービーを止めてPlay Movieから該当の箇所に戻ってステートセーブを作ります。
(Frame Advance + Shift+F*でセーブ)
Play MovieでMovieファイルを読み込んだ場合はデータの上書きができません。
作ったTASのMovieの再生(いわゆる鑑賞会)になっています。

この状態を解除するにはReadOnlyを解除する必要があります。
初期設定ではhotkeysにQが設定されていますが、File-Movieの一番上にも項目がありますね。
ReadOnlyが解除されている時にState Loadすると、そのLoad地点からTASを再び作り直すことができます。

先ほど一つはゲーム開始地点(例えば100f地点)のセーブを残しておくといいと言ったのは
いちいちPlay Movieをしなくても
例えば1500フレームまで進めたゲームの1400フレームからやり直したい、
しかしState Saveは1420-からの物しか残していない。
こんな時にReadOnlyに変更してゲーム開始地点(100f)のセーブをロードしなおします。
すると勝手にMovieが再生されて順々に進んでいき、1400まで戻ることができます。
※BizhawkはPlay MovieでMovieファイルを任意のフレームから始められるっぽい。優秀だな。

一応完成品


あとはメモリウォッチやチートコードサーチだけどここら辺は
素人に毛が生えた程度しか知らないので記述予定はなしということで。
まあ多少は使ってます。(結構細かい部分を書いたので疲れた、おわり)