Unity を検索

Half Mermaid はいかにして『IMMORTALITY』のマッチカットメカニズムをデザインしたか

2022年12月13日 カテゴリ: ゲーム | 16 分 で読めます
How Half Mermaid designed IMMORTALITY’s match cut mechanic | Hero image
How Half Mermaid designed IMMORTALITY’s match cut mechanic | Hero image
シェア

Is this article helpful for you?

Thank you for your feedback!

英国アカデミー(BAFTA)賞を 3 度受賞した脚本家兼監督の Sam Barlow 氏(『Her Story』)から、Unity ブログへ、Half Mermaid 社(『Telling Lies』)がその最新タイトルである『IMMORTALITY』において、いかにして同社チームのゲームデザイン目標を達成したかを解説した記事を寄稿してくれました。2022 年 8 月に発売されたこの実験的なナラティブ主導のシングルプレイ用ゲームは、2022 年のトライベッカ映画祭で Official Mention を受賞、The Game Awards 2022 で IGN の Best Game of the Year、Best Game Direction、Best Narrative、Best Performance にノミネートされるなど、その革新的なストーリー展開とマッチカットを使ったゲームプレイはすでに高い評価を得ています。

Half Mermaid が『IMMORTALITY』の構想を練り始めたとき、私たちは、プレイヤーが映画というメディアを触覚による有意義な方法で身近に感じられるようなゲームを作ることを目標に掲げました。

私たちはまず、フィルムのアナログな性質を前面に押し出すために、プレイヤーにフィルム映像の再生をコントロールさせる再生の仕組みを検討することから始めました。私たちが映画の動感や生命感と捉えているものは、1 秒間に 24 枚の画像を見せることによって組み立てられたトリックであることを忘れないように、プレイヤーにスロー再生や逆再生をさせるようにしました。そして、実際の Moviola のマシンから取り出した音と、マウスやキーボード、コントローラーなどの物理的なクリック感を補助することで、フィルムの機械的な性質を想起させました。

こうしたゲーム的な要素に加え、撮影現場では細部にまでこだわり、クラシックな映画の化学的な要素(光とセルロイド)と光学的な要素(レンズ、とにかくたくさんのレンズ)を表現することができたのです。

ここまでやって、まだ 1 つだけ重要な要素が残っていました。「魔法」です。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

コンセプトとプリプロダクション

映画の魔法がカットに込められているのは有名な話です。映画で 2 つのショットがつながることで、時空を越えてテレポートし、主観性を生み出し、イメージ同士を結びつけ、最終的にストーリーを伝えることができるのです。

一般的に、ビデオゲームはこの魔法を避けています。カットシーン以外では、ほとんどのゲームは、空間、時間、カメラの連続性に固執しています。『IMMORTALITY』を特別にしているのは、カットの魔法を想起させ、それをゲームプレイの一部とする方法を見つけていることであるのは明らかです。

それより平凡なアイデアでは、うまくいかないような気がしたのです。例えば、タイムライン上にクリップを並べ、カットをエンジニアリングするという編集インターフェースのゲーミフィケーションでは、カットのエネルギーと驚きは奪われてしまいます。そうではなく、何もないところからカットを呼び出せるような、一振りでカットを作れるような魔法の杖をプレイヤーに持たせることはできないか、と考えました。

しかし、「ここをカットしましょう」というだけでなく、より正確な表現が必要だと思われました。カットになりうる場所はたくさんあります。では、どうすればより意図的に物事を進めることができるのでしょうか。そこで、似ている 2 つの画像や動作の間をカットする(例 1例 2)マッチカットはどうだろうと考え始めました。そして、これを写真を使うゲームに結びつけて考えてみたんです。

IMMORTALITY is a game about exploring hundreds of pieces of lost film footage
『IMMORTALITY』は、数百枚に分かれた、失われた映画のフィルムを探索するゲームだ。

カメラのレンズを通してデザインする

写真を撮るゲームでは、プレイヤーは特定の被写体にカメラ(FPS なら銃のレチクルにあたる)を向けて、最高の写真を撮るという課題を与えられています。被写体となるものはたくさんあり、フレーミングや瞬間の切り取り方などについては、美的スキルも関わってきます。私たちは、編集者が特定のフレームを選んでカットするように、プレイヤーが映像の中をスクラブして(写真を撮るゲームで道を行ったり来たりするように)、一時停止して特定のアイテムを指差すことができるようにすることを思いつきました。

IMMORTALITY』でプレイヤーが特定の画像を選択すると、その画像が表示される別のシーンに切り替わります。このようにして、プレイヤーは特定のキャラクターやアイテム、イメージに興味を示すことができます。私たちは「スーパーカットビデオ」(例 1例 2)のファンでした。これは、特定の監督の映画の中で繰り返されるイメージのシーケンスをカットして、その監督の作品に流れるこだわりや視覚的な糸を強調するものです。 

このコンセプトをゲームプレイのメカニクスに転化することで、私たちが求めていた魔法を実現できると思ったのです。これは、実現すれば、プレイヤーに表現とコントロールを大いに与えられるものでした。プレイヤーは何千もの選択肢の中から、いつカットするか、何をカットするかを選びます。しかし、それに魔法とサプライズが組み合わされ、いつ、どこまでカットするかはゲームが決めてくれるようになります。それはゲームとプレイヤーとの間で行われるダンスとなるでしょう。

An example of a match cut framing and cross fading between two scenes
2 つのシーン間のマッチカットフレームとクロスフェードの例

コアとなるゲームプレイの確立

このアイデアの基本的なメカニズムはとても簡単でした。いくつかの実験の後、マッチカットを単なるマウスクリックやスクリーンタップにするのではなく、独自の「モード」として重要視することにしました。

「イメージモード」では、カーソルの周囲に樽型の歪みやビネットを加えることで、監督がルーペ(フィルムのネガを調べるときに使う携帯型の特殊な拡大装置)でフィルムをチェックするようなイメージと、従来の FPS のスナイパースコープモードのようなイメージを表現しています。

プレイヤーに映像を一時停止させ、モードを移行させるこのプロセスは、明らかにモンタージュの流動性を失わせますが、代わりにプレイヤーの視点をフィルム編集者の視点に近づけ、(おそらく無意識のうちに)そのプロセスを考えさせることになります。この部分は簡単にできたのですが、次は複雑な技術的問題、つまりカット自体の魔術的な細工をどう引き出すかということに取り組まなければなりませんでした。

マッチカットを行うには、ゲームは画面上に何があるのかを毎フレーム把握し、各アイテムと同種の他のアイテムを関連付けることができ、また、いつ、どこでカットするかについて賢明な判断を下す必要があります。

Entering ‘image mode’  adds a subtle vignette and barrel distortion around the player’s cursor
「イメージモード」にすると、カーソルの周りにわずかなビネットと樽型の歪みが追加される

映画制作の技術にインスピレーションを得る

画像認識のさまざまな方法を(AI を使ったものも含め)調べましたが、私たちが必要としているものは非常に特殊で、大きなミスが許されないものであることに気づきました。プレイヤーが特定のフレームで花をクリックしたのに、羽をクリックしたとゲーム側が判断すると魔法が解けてしまうのです。ゲームがマッチカットをフレームに収めようとしたとき、そのフレームが少しでもずれていたら、エレガントさも映画の魔法も感じられないでしょう。

そこで、ある程度コントロールでき、かつプロジェクト全体(何時間もある映像)にわたってスケールアップできる方法を探したところ、映画のポストプロダクションにたどり着きました。VFX やマット処理などで使うための、フィルム上でオブジェクトのトラッキングを自動化・支援するツールは数多く存在します。Adobe After Effects からトラッキングマスクをエクスポートして、Unity に持ってくることができるプラグインを作成しました。

Here we see the image masks after being imported into the Unity game engine
Unity ゲームエンジンにインポートした画像マスクの様子。

オブジェクトトラッキングを処理する

まず分かったことは、ポストプロダクションでは、すべてがオフラインで実行され、超高速レンダーコンピューターで処理されるため、フレームやポリゴンに関する経済性はないということです。顔を追跡するなら、フレームを 1 枚ずつ、ピクセルパーフェクトが確保される詳細度まで下りて、データを持ってくるのです。この容量のデータはリアルタイムで使うには適していません。そこで、After Effects のデータを圧縮して、どの程度の精度と動きが許されるかの閾値を定義し、データを画面上を移動する各オブジェクトに正確にマッピングできるシンプルなポリゴンのアニメーションにまで縮小する中間ステップを作りました。

システムで重複する項目を処理する必要がありました。マスクをトラッキングする場合、ほとんどのポストプロダクションフローでは、オブジェクトが前景の要素によって隠されているときにトラッキングを行いますが、私たちが作るゲームプレイの目的は、見えているものだけをクリックすることです。私たちのシステムは、大きな物体によるオクルージョンと小さな物体によるオクルージョンを区別することができます。

例えば、小さなろうそくがキャラクターの顔の前を通過しても顔の追跡を妨げることはありませんが、小さなろうそくが顔の後ろを通過した場合は、データから削除されます。

映像にタグを付ける

映像の中で追跡するオブジェクトが決まったら、インポーターが入力し、デザイナーがコードを助けるために情報を追加できるデータベースを作成しました。それぞれのオブジェクトには ID(「apple」「robert_jones」など)が付けられ、統計情報(ゲームのテーマとの関連性。この情報は音楽システムを動作させる時にも使用)とオブジェクトが所属するグループ(例えば、「apple」と「orange」はどちらも「fruit」に、「robert_jones」とambrosio 役を演じる robert jones を表す「robert_jones_ambrosio」は、どちらも「robert jones」のインスタンスなど)が付与されていました。

この情報をもとに、マッチカットを作る方法を決定するアルゴリズムの作成に取りかかりました。あるオブジェクトが与えられると、コードはそのオブジェクトのすべてのインスタンス(または関連するオブジェクト、つまり上記の例ではリンゴをクリックするとオレンジも見ることができる)を引き出し、次にすべての可能なフレームについて、以下の項目を評価します。

  • オブジェクトの大きさや位置は良いか。きれいにフレームに入ったものをカットしたい。
  • ショットに入ったばかりなのか、それともショットから出るところなのか。画面に収まるような画像が欲しい。
  • ダイアログに入っていくところであるか。スピーチの途中でシーンにカットしないようにするのが理想。

その多くは、マスクデータを Unity にインポートする時点でオフラインで事前計算し、シーンにアタッチされています。そのため、ゲームの実行時に瞬時にカットする必要がある場合、事前に検証したフレームのコレクションを素早く引き出すことができます。

A closeup on Marissa Marcel during a transition scene
トランジションシーンでのマリッサ・マルセルのクローズアップ

カットを作る

カットを作る必要が出た場合、『IMMORTALITY』のゲームプレイシステムは、可能な行き先をそれぞれ重みづけして、瞬間瞬間で最適な行き先を決定します。

  • このゲームは、行き先のシーンとプレイヤーの現在の主題となっている筋を一致させようとします(何を見たりクリックしたりしたかが、時間とともに全体の「テーマスコア」として蓄積される)。
  • このゲームでは、型のマッチ(「apples」と「oranges」)よりも完全一致(「apples」と「apples」)を重視します。
  • そのため、ゲーム内では新しいシーンを選ぶ傾向があり、その比重はプレイヤーの移動距離が長いほど大きくなります。
  • ゲーム内には、目的別に循環する「ハートビート」がいくつかあるので、この「ビート」の位置によって、よりドラマチックなシーンや、プロットの重要度が高いシーン、「驚くような要素」を含むシーンに重みがかかることがあります(プレイヤーが驚かない時間が長くなるほど、ここに重みがかかります)。

これらの重み付けをアルゴリズムで組み合わせ、混合し、強調しました。このアルゴリズムは開発中も微調整を続け、収集したプレイテストデータを使ってテストしました。

Screenshot from the set of IMMORTALITY’s detective film, Minsky
『IMMORTALITY』の探偵映画『Minsky』のセットのスクリーンショット

体験をテストする

プロセスがうまくいった後は、既存の映画のクリップを使って一連のテストを行い、パイプラインを証明し、さまざまな閾値を洗練させていきました。ここからはプロセスは確立されました。Half Mermaid のチームは、各クリップのオブジェクトのインスタンスを確認し、一意の ID を付与します。そして、ロトスコープを行うチームがシーンを撮影し、すべてのオブジェクトを完全に追跡して、その結果得られた膨大なデータをゲームに適した形式にエクスポートします。

これを Half Mermaid のチームがレビューします。レビューはゲーム内で、私たちが開発したデバッグツールを使って行います。このツールは、シーン内のすべてのアイテムへと素早くジャンプし、ゲームコードが良いカット候補として強調したフレームを循環させながらレビューできるというものです。ロトスコープの作業は、圧縮時に変なものが入っていないか、またマッチカットアルゴリズムが最終データに対して「良い」フレームを選び出しているかという観点で、常にゲーム内でレビューされました。

このようにデータ駆動のシステムを構築することで、デザイナーがタグ付けしたり、予想したカットを選んだりすることに依存しない、リッチでプレイヤーに反応するメカニクスを作ることができたのです。『IMMORTALITY』では、最初から 100 万通り以上のカットを作ることが可能です。このつながりの規模は、私たちが手作業で作れる量をはるかに超えています。それでいて、魔法をかけることができるシステムなのです。

これらの要素のプロトタイピングの際、プレイヤーにクールなカットを覚えてもらって、それを次に活かしてもらうことを正当化するために、1 回のプレイで 1 つ素敵なカットを作るという目標を設定しました。

オーディエンスを魅了する

IMMORTALITY』を実際に遊んでもらってテストしてみると、ヒット率が格段に上がりました。映像とシステムの組み合わせは、面白いつながりや並びを生み出すことで、ほぼ毎回プレイヤーを驚かせることができました。

私のゲームが他のシナリオゲームとしばしば一線を画したものになる理由は、あらかじめ決められた分岐や選択肢ではなく、大きなデータ構造を作り、あとはプレイヤーの直感と堅牢なアルゴリズムに委ねるという精神を持っていることだと思います。そのため、ゲームを作るときも遊ぶときも、より探索的で驚きのある体験ができるのです。『IMMORTALITY』は、おそらく私たちがこの考え方を実践した中でも、最も魔法がかかった作品になったと思います。

Half Mermaid の『IMMORTALITY』は、Xbox Series X|S、PC、macOS、iOS 向けに販売中です。また、Android 用は Netflix Games を通じて配信されています。より多くのインスピレーションやリソースについては、Unity の Create Games ハブをご覧ください。

2022年12月13日 カテゴリ: ゲーム | 16 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

フォーラムでディスカッションに参加する
関連する投稿