イベント
「野狗子: Slitterhead」膨大な数のプレイヤーアクションを実装するために使用したGameplay Ability Systemとは[UEFest’24TOKYO]
後半では,同スタジオのカットシーンテクニカルアーティスト・Stephen Oberheim Jr.(スティーブン・オーバーハイム Jr.)氏が登壇し,カットシーンの制作において外部協力会社と連携するなど,小規模スタジオならではの工夫やノウハウが紹介された。
大量のプレイヤーアクションの実装を支えるGameplay Ability System(GAS)
野狗子は,「SILENT HILL」や「SIREN」で知られる外山 圭一郎氏が立ち上げたBokeh Game Studioのデビュー作だ。記憶と肉体を失った「憑鬼」となり,人間たちに憑依してその身体を動かし,人間に擬態する「野狗子」を殲滅する3Dバトルアクションアドベンチャーである。
開発期間は約4年(プロトタイプ:1年,プロダクション:3年)。開発序盤でUE4を使用していたが,開発終盤にUE5へ移行した。
「野狗子: Slitterhead」クリエイターの外山圭一郎氏と作曲家の山岡 晃氏にインタビュー。謎多き“ホラー×エンタメ”作品に込めた思いとは
Bokeh Game Studioが開発中の「野狗子: Slitterhead」とは,果たしてどんなゲームなのか。同作クリエイターの外山圭一郎氏と,音楽を担当する作曲家の山岡 晃氏に話を聞いた。インパクトのあるタイトル名とトレイラーで話題となった同スタジオのデビュー作は,どういった経緯で誕生し,どんな思いで制作されているのかをお伝えしよう。
分からないからこそ面白く,理解したときの驚きがある。コッソリ覗き見てほしい,謎多きホラーアクション「野狗子: Slitterhead」の楽しみかた
混沌の街を舞台に,人に憑依する謎の精神体と人に擬態する怪物が暗闘を繰り広げる「野狗子:Slitterhead」。「サイレントヒル」や「SIREN」の外山圭一郎氏による新たなホラーゲームということもあり,注目している人もたくさんいるだろう。そしてこういう人も多いはず。どういうゲームかまだ掴めていないと……。
憑依する能力によってプレイヤーは,多数のキャラクターを切り替えられる。憑依できるキャラクターには,固有能力を持っている8種類の「希少体」と,大きく分けて男女2種類の一般人「モブ」が存在する。
プレイヤーアクションの種類は,「移動アクション」「近接攻撃」「防御」「スキル」「バフ/デバフ」「リアクション」「特殊リアクション」であり,これらのアクションを希少体8種とモブ2種にそれぞれ用意するため,全体で膨大な数のアクションとなる。
アクションの量産時に複数人で並行して作業したり,類似するアクションを効率的に実装したりするほか,攻撃アクション中は回避を実行できないようにするなど,アクションの依存関係の整理を効率的に行うために,「Gameplay Ability System」を開発初期の段階で採用したという。
Gameplay Ability Systemは,攻撃やアビリティ,ダメージリアクションなどを実装するためのプラグインだ。RPGやMOBA向けに設計されているが,さまざまなプロジェクトに適用可能である。
Epic Developer Community「Gameplay Ability System」
セッションでは,Gameplay Ability Systemの詳しい使い方や,システムの構成要素のうち「Gameplay Ability」と「Gameplay Tag」にフォーカスした解説などが行われた。
Gameplay Abilityは,アクションの実行内容や発動条件などを定義し,アニメーションやエフェクトの再生に加え,アクションのキャンセルやブロックを設定できる。アクション1つに対し,1つのアセットで実装するため,アクションを整理しやすい特徴を持つ。
Gameplay Abilityの量産では,カスタマイズ可能なベースとなるロジックを作成し,それを継承して攻撃タイプごとにパラメータを設定,それをさらに継承してキャラクターごとにアニメーションアセットの差し替えなどを行っており,バリエーション対応を効率化しているそうだ。
また,野狗子で実装されているGameplay Abilityの総数が380個であると明かされた。特に,近接攻撃の種類が豊富に用意されているのが分かる。
- 移動アクション:11個
- 近接攻撃:151個
- 防御:36個
- スキル:51個
- バフ:12個
- デバフ:16個
- リアクション:64個
- 特殊リアクション:39個
アクションのキャンセルやブロックの設定は,Gameplay Tagというタグを利用する。「Activation Required Tag」で実行条件を設定でき,例えばダッシュ攻撃は「Ability.State.Move.Dash」(ダッシュしている状態を示すタグ)というGameplay Tagを持っていると実行可能,といったように条件を指定できる。
一方,「Activation Blocked Tag」ではブロックの条件を設定でき,例えば落下中はジャンプ攻撃を発生させ,ダッシュ攻撃は発生しないようブロックしたいので「Ability.State.Fall」(落下している状態を示すタグ)を持っているとブロックするという風に設定可能だ。
Gameplay Tagは任意の階層構造にでき,「Ability」はプレイヤーのアクションとして設定されている。また,その子として状態を示す「State」のほかに,下記のようなGameplay Tagを設定しているそうだ。
- Action:主に移動や戦闘時に使用するGameplay Abilityのタグ
- Block:特定のGameplay Abilityをブロックするためのタグ
- Buff:バフのGameplay Abilityのタグ
- Debuff:デバフのGameplay Abilityのタグ
- Event:イベントの送受信に使用するタグ
- PassiveSkill:パッシブスキルのGameplay Abilityのタグ
- Reaction:リアクションのGameplay Abilityのタグ
- Skill:アクティブスキルのGameplay Abilityのタグ
- State:Actorの状態を示すためのタグ
なお野狗子では,アクションの重複の少なさや実装作業時の競合を避けるため,プレイヤーは「Ability」,エネミーは「EnemyAbility」,モブは「MobAblity」という風に階層を分けているそうだ。
一方,アクションの構成が類似している場合や,実装者間で緻密な連携と設計ができる場合は,共通のタグを使用する選択肢もあるという。
Gameplay Ability Systemは,1つのアクションあたり1つのアセットで実装するため,ロジックをキャラクターやコンポーネントに集中してしまうのを避けられる。整理しやすく,効率的にアクションを実装できるほか,複数人での作業にも向いているそうだ。
実績があり,安定したシステムを1から構築せずに利用できる点は大きく,コストを大幅に抑えられ,汎用性も高く使いやすいという。ただし,システムの複雑性から学習コストは少し高めだそうだ。
Gameplay Ability Systemの利用には,ある程度のC++の知識が必要で,システムの使いやすさもGameplay Tagの設定で左右される。
松下氏は,Gameplay Ability Systemの利用について,すべての機能を最初から使いこなすより,使いながら習熟していくことを推奨した。
UE環境でのカットシーン制作手法や外部会社との連携について
野狗子では,大きく分けて3つのムービーシーンが用意されており,イベント班作成の簡易イベント「スクリプトデモ」,モーション班作成のリアルタイムムービー「イベントシーン」,カットシーン班作成のプリレンダムービー「カットシーン」に分けられる。セッションでは,カットシーンについて解説された。
本作は小規模開発のため,外部協力会社との制作を前提にしていた。カットシーンについては,外部作業者がメインで作成するので,映像素材としてゲームに入れ込むほうが無難であると判断したという。
カットシーン制作では,本編と共通してUE5.2.1を利用しているが,ゲーム本編に影響を与えないように,プロジェクトは別のものを用意している。プリレンダ前提のため,カットシーン用のプロジェクトでは最適化を行わず,コストを抑えているそうだ。
カットシーン班は,社内と外部で合わせて最大20人前後の規模という。
外部との連携はGoogle Workspaceを利用し,FBXデータやムービーなどExport出力されたデータの納品はGoogle Drive経由で行い,背景データやUE関連データなどの共有はバージョン管理ツールのSVNで,アートアセットとゲームアセットにそれぞれ別のリポジトリを用意し,アクセス範囲を明確に分けたそうだ。
また,ゲーム本編のプロジェクトでは,ゲームロジックやUIデータなどを含まないカットシーン専用のサブレベルを作成しておき,そのサブレベルを利用して,カットシーン制作用のプロジェクトへ定期的にデータをマイグレート(移植)していったそうだ。
作業では,外部と社内それぞれMaya班とUE班に分け,外部会社のMaya班はレイアウトやアニメーション,UE班はエフェクトの仮配置やライトの方向性確認を担当した。
社内のMaya班で揺れものやフェイシャル,UE班はエフェクトやライティングなどの最終調整を行い,完成まで持っていったという。
それぞれの担当範囲を制限することで,混乱を減らせたほか,アーティストが作業に集中できることにもつながったそうだ。
ミスや手間がかかるような作業は自動化やツールを活用しており,Mayaで仮モデルを使ったレイアウトを行い,キャラクターの位置情報やカット情報などのCSV設定データを作成。それをもとにUEのレベルシーケンスを自動生成し,細かい調整はUE5用のツールを作成できるEditor Utility Widgetと,Pythonを利用して作成した調整用ツールで行ったという。
レイアウトが完了したら,正式のモデルに差し替え,アニメーションなどを付けていく。
フェイシャル(キャラクターの表情の実装)については,フェイシャルモーションキャプチャアプリ「MocapX」とMayaを利用し,iPhoneのカメラ録画をもとにアニメーションを作成し,UEで微調整を行ったそうだ。キャラクターの衣装や触手などの揺れものについては,UE標準のChaos Clothを使用し,めり込みなどが発生する場合は,Mayaで調整するなど,各フェーズでMayaなどのDCCツールとUEでの作業を並行して行っている。
エフェクトは,UE5の標準機能であるNiagaraのほか,Houdiniも採用し,作業者が使いやすいほうで制作を進めたそうだ。
ライティングについては,本編ではライトマップ,カットシーンではLumen(反射や間接光を考慮したリアルタイムのライティング機能)を使用しており,本編とカットシーンで見た目が少し異なってしまったという。
この差を減らすため,一括でエミッシブ(発光の強さに関わるパラメータ)を調整できるブループリントを作成し,キャラクターのブループリントにも,血の色味や量,目の虹彩や瞳孔などをカット単位で調整できるパラメータを用意して,Lumen環境下で本編のビジュアルをある程度再現したそうだ。
「野狗子: Slitterhead」公式サイト
「UNREAL FEST 2024 TOKYO」公式サイト
- 関連タイトル:
野狗子: Slitterhead
- 関連タイトル:
野狗子: Slitterhead
- 関連タイトル:
野狗子: Slitterhead
- 関連タイトル:
野狗子: Slitterhead
- 関連タイトル:
Unreal Engine
- この記事のURL:
キーワード
(C)2021 Bokeh Game Studio Inc.
(C)2021 Bokeh Game Studio Inc.