『逆転裁判』らしさが生まれる秘密! “逆転裁判のスクリプトシステムによる実演を交えた3Dアドベンチャーの作り方”【CEDEC 2015】

2015年8月26日~28日の3日間、パシフィコ横浜にて開催される、日本最大級のゲーム開発者向けカンファレンス“CEDEC 2015”。人気アドベンチャーシリーズ『逆転裁判』における、スクリプトの作成方法が紹介された。その模様をお届けしよう。

●『逆転裁判』はこうして演出されていく!

 2015年8月26日~28日の3日間、パシフィコ横浜にて開催される、日本最大級のゲーム開発者向けカンファレンス“CEDEC 2015”。ここでは、2日目に開催されたセッション“逆転裁判のスクリプトシステムによる実演を交えた3Dアドベンチャーの作り方”をリポートしていく。


01

▲講師を務めたカプコン第四開発部の木本雅博氏。

 セッションの講師は、カプコン第四開発部 プログラマー(アプリ)の木本雅博氏。『逆転裁判』シリーズにおける、スクリプト(簡易的なプログラムのこと)の作成方法に焦点を当てた内容だ。

 本題に入る前に、木本氏の経歴と、『逆転裁判』の概要が紹介された。読者諸兄はご存じだと思うが、『逆転裁判』シリーズは弁護士を題材としたアドベンチャーゲーム。プレイヤーは弁護士の立場となり、無実の罪で裁かれようとしている依頼人の無実を証明し、無罪を勝ち取ることが目的。タイトル通り、窮地からの“逆転”が熱い作品だ。『逆転検事』シリーズほか関連作品も多数登場しており、シリーズ最新作である『大逆転裁判 -成歩堂龍ノ介の冒險-』が7月に発売されたことは記憶に新しい。


02 03

▲木本氏の経歴と、『逆転裁判』シリーズについて簡単に紹介された。

 というわけで、本題のスクリプト作成方法について。『逆転裁判』シリーズでは、まずシナリオライターがシナリオを作成し、それをスクリプトに変換する。続いて演出家がスクリプトに演出を加えていき、最後に実行用データへ変換する、というのが大まかな流れだ。

 ちなみに“演出家”と表現されているが、カプコンには演出専門のスタッフがいるわけではなく、プランナー数名がこの作業を担当しているとのこと。本セッションでは、便宜的に演出家と表現されているため、本リポートもそれにならっていく。

 では、流れの詳細を見ていこう。まずはシナリオについて。こちらはシナリオライターが、一定のルールに基づいて原稿を書いていく。この原稿をスクリプトへ変換し、そのまま実行することもできるが、キャラクターが棒立ちでしゃべっているだけなので、「ゲームとしておもしろくない」と木本氏。


04

▲『逆転裁判』シリーズにおける、スクリプト作成の基本的な流れ。

05

▲シナリオライターが一定のルール(発言者の前に■をつける、タブで始まる行はメッセージ、など)でシナリオを作成。最終的にはこのようにゲームへと落とし込まれる。

 そこで演出家が、文字の表示速度、待ち時間、鳴らすSE(効果音)やBGM、画面フラッシュやフィルターといった演出を指定し、ゲームらしくなっていくワケだ。「このような演出は『逆転裁判』らしさを出す重要なポイント。とても時間がかかります」と木本氏。


06 07

▲演出家の作業内容。演出を加える実例も紹介された。キャラクターではなく、法廷全体が表示されるカメラになっている。

 続いて、スクリプトはどのように書いているのか。これは、シリーズの途中から大きく変わったようだ。『逆転裁判4』まではシナリオデータに直接記述していたが、「この方法ではミスが多い」と語る木本氏。

 関連作品である『逆転検事2』からは、Excelベースのファイルでスクリプトを書くようになった。コマンドは一覧から選択できるため、記述ミスは減少し、コマンド自体も覚える必要が減ったという。またコマンドは直接記述することも可能だが、もしミスがあった場合はセルが赤くなり、さらにエラーの行にすぐジャンプして修正できる。


08

▲こちらが『逆転裁判4』までの記述方法。内容は本セッション用に記載されたものだ。

09

▲『逆転検事2』からは、Excelベースのファイルでスクリプトを記述するように改良されたそうだ。

 スクリプトは、コマンドを設定すると引数(ひきすう)というデータを渡す必要がある。新しい方式の場合は、どのような引数を渡せばいいのかがわかりやすく表示されるため、コマンドの細部まで完璧に覚えてなくとも、すぐに確認できるように設計されている。

 また、渡す引数によって、ほかの引数も自動的に変化し、対応する設計になっている。たとえばキャラクターとモーションを引数として渡す場合、キャラクターを変えると、選択できるモーションもそのキャラクターに応じたものに置き換わるという。

 ローカライズ機能も搭載。日本語を見ながら英語を入力することができ、最終的に出力するときも、英語を選択するだけで英語版用のデータが出力されるという。


10

▲コマンドに対応した引数の詳細がすぐに確認できる。

11

▲コマンドや引数に応じて、選択できる引数の内容が自動で変化する。

 ちなみに、シナリオテキストからスクリプトファイルへの変換は、すべてを手作業で行うと作業量が膨大なため、ツールである程度は自動化しているとのことだ。ほぼ毎回決まっている演出、たとえば発言者に合わせてカメラが移動する、といったものは、自動的に設定されるような仕組みになっている。またメッセージの最初に、表示速度をリセットするコマンドを入れることで、直前の表示速度をリセットし忘れてそのまま引き継ぐ、というミスを減らすテクニックも解説された。

 このようなスクリプトファイルだが、「『逆転裁判』の文字数は8~90万字になるため、1ファイルにまとめると、編集するのも修正するのも大変」と木本氏。そこで、実際はシーン別に500ファイルぐらいに分けているという。だが、ファイルを分割したことで発生する問題も存在する。

 ひとつが、フラグや所持品の問題。ゲームを進めるとどんどんデータが増えていくため、すべてのスクリプトで設定するのは現実的ではないとのこと。この問題は、スクリプト開始前にフラグや所持品の設定を行う、プリセットスクリプトという手法で解決していると木本氏。


12 13

▲ファイルを分割することで発生する、フラグや所持品の問題は、プリセットスクリプトで解決している。

 もうひとつの問題が、直前のシーンと演出が変わってしまう問題。カメラやBGM、キャラクターのモーションなどが引き継がれないと、スムーズに表示されなかったり、違和感が生じてしまう。

 こちらは直前のシーンのスクリプトファイルを確認し、反映させることで対応できるが、毎回確認するのはかなりの手間となる。そこで、つぎのシーンに引き継ぐ“メタデータ”を作成し、渡すことで、問題を解決しているという。このメタデータは、チェック用としても役立つとのことだ。


14 15

▲もうひとつの問題である演出の引き継ぎは、メタデータを作成して解決している。

●より3Dらしい演出を求めて

 『逆転裁判』シリーズは、『逆転裁判5』から3D表示となった。続く作品の『大逆転裁判 -成歩堂龍ノ介の冒險-』では、もっと3Dを活かした演出を目指したという。たとえばキャラクターが横から移動してくる平行移動、キャラクターがゆっくりと手前に近づいてくる演出などが紹介された。

 カメラに関しても、視点、注視点の移動、画角の変更といったカメラの制御が、スクリプトで行えるように設計されている。

 また視線制御機能も搭載されている。これはキャラクターの視線を変化させる機能で、同じモーションであっても印象を大きく変えら、演出の幅が広がるそうだ。「最初はいるのかな、と思っていましたが、実際に使ってみると意外とよかった」と木本氏。


16 17

▲カメラの制御もスクリプトで行えるそうだ。

▲キャラクターの視線を変化させることで、同じモーションでも演出の幅が広がる。

 最後に、実際にスクリプトを組んでいく実演が行われた。最初はシナリオだけの味気ないゲーム進行だったが、キャラクターが台詞にあったような動きを行うようになり、BGMも設定され、テキスト内容は同じながら、見違えるように楽しいゲームへと変わっていく様を体感できた。


18 19

▲スクリプトファイルで演出を設定し、実際にゲームとして動作させていく実演も行われた。演出の力によって、『逆転裁判』らしさが徐々に増していく。

 「演出はとても大変な仕事。何度も何度も試行錯誤を繰り返し、やっと『逆転裁判』ができあがるんです」と木本氏は語り、大盛況のうちにセッションは幕を閉じた。

 本セッションを通じて、アドベンチャーゲームにおける演出の重要性を、改めて実感させられた。演出に注目して『逆転裁判』シリーズを再びプレイし直してみれば、これまで見逃してきた開発者たちの情熱に気づけるかもしれない。