14.1K Views
November 14, 24
スライド概要
本講演へのアンケートにご協力をお願いします:
https://docs.google.com/forms/d/e/1FAIpQLSeeq3O53ausrSoHXHluKskiabOlucYgXBajAhVQ2IbL__Km7Q/viewform
Youtube URL:https://youtu.be/5UxLj1KTkog
講演内容:
本講演では、UEFN(Unreal Editor for Fortnite)を用いて『逃走中』のゲームをフォートナイト内で開発した技術的挑戦と可能性について紹介します。本ゲームでは、原作のミッションを忠実に実装し、ハンターがNPCとして登場するなど、IPコンテンツをどのように再現したかを詳しく解説します。フォートナイトが提供する新たなエンターテインメントの可能性を探ります。
講演者:
川 大揮(代表取締役CEO(Alche株式会社))
南舘 岳人(エンジニア(Alche株式会社))
尾崎 純一(クリエイティブディレクターAlche株式会社))
Alche studioについてはこちら:
https://alche.studio/
UNREAL FEST 2024 TOKYO 公式サイト:
https://unrealengine.jp/unrealfest/2024/
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
『逃⾛中』×フォートナイト: IPコンテンツの技術的挑戦とフォートナイトの可能性
注意事項 本資料には、説明用の動画が複数所に埋め込まれています。 しかし、PDFのため動画の再生ができません。 動画が再生可能なオリジナルの資料は、以下のリンクよりご覧ください。 https://docs.google.com/presentation/d/1LvbTOVsesyUg1XYknu-MGI4fEcOWWOOBy4CEiYEhQNs/edit?usp=sharing
はじめに 本講演では、フォートナイトが提供する UEFN で 制作した、 逃走中 Created in Fortnite についての解説及び、 フォートナイトでコンテンツを制作するメリットについてお話しします。
実装環境 フォートナイトは、通常二週間に一回程度の頻度で Update が行われる。 それに伴い、UEFN もバージョンが強制的に Update される。 本講演の内容は、以下のバージョンを元にしており、最新のバージョンでは 状況が異なる場合があります。 最新の正確な情報は、公式のドキュメント/規約等をご確認ください。 講演時エディタバージョン v29.30 ~ v30.30
本日の内容 ● ● ● ● ● 登壇者・会社紹介 フォートナイトと UEFN の紹介 逃走中 Created in Fortnite の紹介 制作について マツケンサンバモデル - フロー紹介
自己紹介 川 大揮 代表取締役CEO ● 大学院時代に宇宙論(Cosmology)を専攻 ● 趣味はサッカーとステージマジック ● ディズニーが好き ● LINE株式会社、イスラエルのスタートアップ企業 などを経て起業 Taiki Kawa r_etx
自己紹介 南舘 岳人 テクニカルアーティスト ● CG 会社でゲームエンジンを使った映像作品やゲーム開発を経験。 Unreal Engine を使った開発に魅了され、Alche 株式会社に入社。 ● 趣味で Unreal Engine のブログを投稿している。 ● 逃走中 → ディレクション、機能実装、レベルデザインなど ● マツケンサンバⅡ → 小物作成、デバッグなど ● インディーゲームと猫が好き。 Gakuto Minamidate koituwasugee ゲーム開発備忘録
自己紹介 尾崎 純一 クリエイティブ・ディレクター / デザイナー ● 建築・都市デザイン出身 ● 空間デザインや演出、キャラクターフロー、体験に関わるBP実装 ● 逃走中 → レベルデザインのサポートを少し ● マツケンサンバⅡ → ディレクション、キャラクターシステムなど Jun Ozaki ● Houdini Engine での開発にハマってます O685463
Alcheについて Alcheはデジタルネイティブ時代に、これまでにない エンターテイメント体験を創る インディースタートアップです。 Unreal Engine を使用した制作を得意とし、 ゲームの枠を超えたインタラクティブな体験を 創造します。 直近では、これまでの Unreal Engine を使った開発で 培った制作経験を活かし、フォートナイトのコンテン ツ制作も行っています。 alche_studio https://alche.studio/ https://blog.alche.studio/
UE実績(一例) RADWIMPS SHIN SEKAI お台場 バーチャル冒険アイランド えんとつ町のプペルVR Virtual Tokyo Tower Honda XR Mobility Experience 10
UE実績(一例) TBD
UEFN実績(一例) 逃走中 Created in Fortnite マツケンサンバⅡ Up the World JAPANESE ZOMBIE SURVIVAL Rise 落ちたら◯ぬ ?! ~ カレコレ屋からの依頼 ~ HUMAN HEAD CLIMB 12
UEFN実績(一例) 同時接続 2.2万+ 20万+ PV 世界Top3 逃走中 Created in Fortnite 初週 1500万+ マツケンサンバⅡ Up the World JAPANESE ZOMBIE SURVIVAL Rise Play 落ちたら◯ぬ ?! ~ カレコレ屋からの依頼 ~ HUMAN HEAD CLIMB 13
UEFN Tokyo 2023年8月から、 UEFNのコミュニティー勉強会を 開催。 定期的に、UEFN関連の知見を コミュニティーで共有し議論する 場を作っている。 TBD
逃走中 CREATED IN FORTNITE
TBD 16
まずは、PVをご覧ください! 17
逃走中 CREATED IN FORTNITE の 実績 今年の夏休み 7月末にリリース! とっても多くの人から反響をいただき、 遊んでいただきました!!
逃走中 CREATED IN FORTNITE の 実績 開発期間 約 3 ヶ月 最大同時接続人数 リリース後一ヶ月以内の総アクセス数 2.2 万人 300 約 万回以上
なぜ、この数字を達成することができたのか?
なぜ、大きなヒットにつながったのか? 0. 逃走中というIPの強さ 1. フォートナイト上で制作 2. 逃走中らしさ & フォートナイトらしさの表現 3. ゲーム性 / 制作 4. 他のMapとのコラボ
なぜ、大きなヒットにつながったのか? 0. 逃走中というIPの強さ 1. フォートナイト上で制作 2. 逃走中らしさ & フォートナイトらしさの表現 3. ゲーム性 / 制作 4. 他のMapとのコラボ
1. フォートナイト上で制作
フォートナイトとは? 2017年にリリースされたオンラインゲーム。 ユーザー数は、全世界6億人。Unreal Engine を利用して開発されている。 UE の新機能はフォートナイトでテストされ、改善されることも多い。
Unreal Editor for Fortnite (UEFN) とは 2023年3月にベータ版としてリリースされた、Fortnite 向けのコンテンツを作る ために、Unreal Engine ベースのツール。 UEFN を利用することで、外部の3Dモデルデータや画像、サウンド、 自作したマテリアル、実装を、Fortnite で利用し、ゲームの体験を カスタマイズすることができます。
なぜ Alche は、フォートナイト / UEFNを やり始めたのか? 28
メタバースという新しい領域で これまでにない体験を作っていきたい 29
プラットフォームではなく、 コンテンツ/体験を作りたい 30
UEFN でのコンテンツ制作は、 たくさんのメリットがある! 31
フォートナイトが提供するメリット ● ● ● ● ● ● ● ● ● ● 遊びを盛り上げるスキン(キャラクター) とエモートが揃っている 多様なアイテムを利用できる マルチプレイ関連機能 ユーザーデータの保存 ローカライズ 複数のデバイス/プラットフォームで遊べる 開発環境、テスト環境、リリース環境が用意されている アナリティックス コミニティー etc. 多くの機能、開発をサポートする強力なツールが揃っているため、短期間の開発と、安定した ゲーム運営を実現することができる。
フォートナイトが提供するメリット 遊びを盛り上げるスキン(キャラクター) とエモートが揃っている
フォートナイトが提供するメリット フォートナイトの多様なアイテムを利用できる
フォートナイトが提供するメリット 友達と一緒に遊べるパーティー機能
フォートナイトが提供するメリット 友達と一緒に遊べるパーティー機能 => マルチプレイ機能
フォートナイトが提供するメリット マルチプレイ関連機能の提供 1. Dedicated Server等を自前で用意する必要がない! サーバー費用もかからない! 2. マルチプレイを意識した実装をせずとも、ほぼうまくいく! Verseなど一部のカスタム実装は、マルチプレイを意識 した実装にする必要がある。 マルチプレイのためのVerse入門 https://docs.google.com/presentation/d/1whBiFv0PnytTxw0DM6SdLBhcHxLkmc2EV52lZ1d8j24/edit?usp=sharing
フォートナイトが提供するメリット データの保存 - プレイヤーごとのゲームの進捗 / ポイントなどを管理 Player1 Player2
フォートナイトが提供するメリット ローカライズ => 多言語への対応
フォートナイトが提供するメリット ローカライズ => 多言語への対応 日本語 English
フォートナイトが提供するメリット 複数のデバイス/プラットフォームで遊べる(配布できる) ● ● ● ● ● ● ● PlayStation 4/5 Xbox シリーズ Nintendo Switch PC (Epic Games Store経由) Android iOS (2025年後半予定) クラウドベースのゲーム配信サービス 正確な情報は、フォートナイトの公式FAQをご確認ください。 https://www.fortnite.com/faq 41
フォートナイトが提供するメリット 複数のデバイス/プラットフォームで遊べる(配布できる) 一方で、ライティング、デバイスごとのテクスチャの表示切り替え、 UI等のサムスティック対応、処理不可などやることはたくさんある。。。 UEFNでマルチデバイス向けに快適な体験を構築する https://docs.google.com/presentation/d/1tOL9c0TFQ8RBFuuHoWDS56B-n6uROAD-rFr5Vu994vY/edit?usp=sharing
フォートナイトが提供するメリット 本番環境、テスト(ステージング)環境、開発環境が用意されている 開発環境 ・・・ Lunch Session テスト環境 ・・・Upload Private Version => Play Test 本番環境 ・・・ Private Version を審査へ提出 平均2~12時間
フォートナイトが提供するメリット 本番環境、テスト(ステージング)環境、開発環境が用意されている テストグループを利用することで クローズドベータを実施可能 !!
フォートナイトが提供するメリット 本番環境、テスト(ステージング)環境、開発環境が用意されている テストグループを利用することで クローズドベータを実施可能 !!
フォートナイトが提供するメリット ゲームの Update が簡単 + ブルーグリーンデプロイができる!! Fortnite Endpoint Fortnite Endpoint Fortnite Endpoint 継続して プレイ可能 New! Ver1.7 Ver1.7 Ver1.8 Ver1.7 Ver1.8
フォートナイトが提供するメリット アナリティクス ● ● ● ● ● ● ● ● ● インプレッション クリック数 アクティブプレイヤー 合計プレイヤー数 セッションの長さ(プレイ時間) 新規プレイヤー 再帰プレイヤー リテンション カスタムの統計 など
フォートナイトが提供するメリット アナリティクス
フォートナイトが提供するメリット フォートナイトプレイヤーコミュニティー 既存の大きなコミュニティーがあり、 面白いコンテンツはコミュニティで共有され、SNS等で話題に! スクラッチからのマーケティング&プロモーションと比較したときに格段に成 果がでやすい。そして、多くの人はフォートナイトをインストールしている。
誰もが見る Creator Portalにも掲載! 50
フォートナイトが提供するメリット フォートナイトプレイヤーコミュニティー グローバルへの訴求 友人にマツケンサンバの Mapを紹介してもら い体験しました。ライブが終わったあと目には 涙が溢れていました。 とても楽しい時間であなたの仕事にとっても感 謝しています。マツケンサンバとともに今度日 本に遊びに行きます。 フォートナイトをやっているツイ廃の皆さん! フォートナイトでマツケンサンバのマップを プレイしてみてください。 このマップを体験して、僕の人生は良い方向 に変わりました。
フォートナイトが提供するメリット ディスカバリー フォートナイトプレイヤーが新しいゲームを探す場所。 ● ● ● 人気なマップほど左上の目のつきやしカテゴリーに移動する。 カテゴリーによっては、地域別に表示が異なる。 人毎に表示されるものが異なる。 上位のカテゴリーはグローバルで共通。 こ の項目に乗ることでよりグローバルで、多くのプレイヤーに認知され、プ レイされる。
人気なMapほどの上のカテゴリーへ! カテゴリー内のランキングでより左に!
フォートナイトが提供するメリット ディスカバリー IP => IPのファンがプレイ => ディスカバリーに掲載 => IPのファン以外に届く(グローバルで) => IPのグローバル認知 良い循環を作ることができる。
UEFN / フォートナイトには、 多くの魅力的な特徴があり、 従来のゲーム開発と比較して短期間で、 ゲーム制作が可能に! 55
なぜ、大きなヒットにつながったのか? 0. 逃走中というIPの強さ 1. フォートナイト上で制作 2. 逃走中らしさ & フォートナイトらしさの表現 3. ゲーム性 / 制作 4. 他のMapとのコラボ
2. 逃走中らしさ & フォートナイトらしさ
逃走中らしさ & フォートナイトらしさ 中途半端な再現ではなく、逃走中らしさ(ファンの人たちが喜んでくれるもの)と フォートナイトらしさの両立を目指した。 58
Authenticity 逃走中の象徴でもあるハンター
逃走中らしさ オープニング演出 実際にお台場で行われた逃走中のオープニングも再現 自分が逃走中に参加しているワクワク感を演出
逃走中らしさ ナレーション & SE ナレーションは、テレビ番組の逃走中も担当している、マーク・大喜多さんに お願いし、改めてフォートナイト向けオリジナルバージョンを収録。 SEは、番組で利用されているものを利用した。 61
逃走中らしさ UI
逃走中らしさ 小物
フォートナイトらしさ フォートナイトの多様なアイテムを利用できる
フォートナイトらしさ 独自の3Dモデルと極力使わず、フォートナイトのアセットで制作
Authenticity 逃走中らしさ + フォートナイトらしさ 中途半端な再現ではなく、逃走中らしさ(ファンの人たちが喜んでくれるもの)と フォートナイトらしさの両立を目指した。 フォートナイトユーザーにとっても、普段の遊びの延長で直感的に楽しめる 逃走中のゲームとなった。 66
なぜ、大きなヒットにつながったのか? 0. 逃走中というIPの強さ 1. フォートナイト上で制作 2. 逃走中らしさ & フォートナイトらしさの表現 3. ゲーム性 / 制作 4. 他のMapとのコラボ
3. ゲーム性 / 制作
制作について ・ 配置物と最適化 ・ UEFN における NPC の制御方法 ・ 逃走中における NPC 行動の工夫 ・ 演出 & UI ・ ミッションとVerse を生かしたフレームワーク ・ バランス調整とテストプレイ
逃走中の雰囲気づくり 配 置 物 演 出 & UI N P C シ ス テ ム
逃走中の雰囲気づくり 配 置 物 演 出 & UI N P C シ ス テ ム
配置物と最適化 72
配置物 ・番組から提供されたフジテレビ社屋の3Dモデルや、 逃走中のロゴなどのテクスチャ素材を最適化し ゲームに組み込んだ。 ・実際に現地に訪れてスケール感や、 夜間マップ制作のアイディアなどに生かした。
配置物 開発初期段階では現実の配置をそのまま反映させていた。 → 連続する横に長い建物ということもあり 何もないエリアが くあり、駆け引きが生まれづらい配置になってしまった。 これを解決するために以下の施策を行った。 ・ 道幅の調整 ・ 海岸やショッピングモールの独自調整(内装&入口の追加) ・ 上空にはねるタイヤ ・ 高速移動が可能なグラインドレール これらの調整により、お台場の雰囲気を残しつつも 逃走を楽しめる地形を目指した。 多
最適化 ・アセット配置にはメモリの最適化が常に求められた。 ・多くのユーザーに遊んでもらうためにも、据え置きハードだけでなく 携帯ゲームハード向けに最適化を意識する必要があった。 ・フジテレビ社屋のモデルはサイズが大きく、 ゲーム向けに DCC ツールや UEFN で最適化作業を行った。 → 元データから1/9程度までサイズを縮小。 ・ユニークな形状でなければ、フォートナイトの アセットを利用することでダウンロードサイズを小さく。 → ゲーム開始時のロード時間短縮に貢献。 → 結果的にフォートナイトらしさも演出できた。
最適化 空間プロファイラを利用した分析。 → 空間上をグリッド状に分割し、それぞれの地点での 情報を収集できる。項目は以下の通り。 ・ アクタ数 ・ 1フレームあたりのゲームスレッドの時間 ・ 1フレームあたりのレンダリング時間 ・ メモリ使用量 これらの情報をもとにアセット点数の調整や、 最適化の調整をしていった。
最適化 特に効果があった ISM / HISM や DataLayerを用いた最適化について。 ・ DataLayer → 空間内のアクタを任意のレイヤーに分け DataLayer の初期設定や シーケンサーでロード or アンロードする仕組み。 ロード時に瞬間的な負荷や読み込みが遅れることがある。 ・ ISM / HISM → 複数の同一の StaticMesh をまとめる機能。 描画をまとめて効率化できるが、エリア全体で 登録するとワールドパーティションのストリーミングで カリングされなくなるので注意。 ▲ カリングの影響で壁が透けてしまっている。 いずれの設定も描画に影響があるので、 最適化を行った後はゲームプレイに影響がないか確認する必要がある。
参考文献 引用: Project Optimization in UEFN | Unreal Fest 2023 https://www.youtube.com/watch?v=k9fAXZ4U4XA&ab_channel=UnrealEngine 引用: World Partition - データレイヤー https://dev.epicgames.com/documentation/ja-jp/unreal-engine/world-part ition---data-layers-in-unreal-engine?application_version=5.5 引用: 【HISM / ISM】レベル上のStaticMeshをHISMに一括変換する - YuyaShiotani https://dev.epicgames.com/community/learning/tutorials/Ddkd/fortnite-hism-ism-staticme sh-hism
逃走中の雰囲気づくり 配 置 物 演 出 & UI N P C シ ス テ ム
UEFN における NPC の制御方法 80
制御の種類(ヒト型) ガードスポナー キャラクターの仕掛け NPCスポナー 巡回やプレイヤーの攻撃・ 射程距離への接近に対し 反応するガードを配置できる スポナー。 カスタムエモートやアイドル といったアニメーションを 再生できる仕掛け。 キャラクターを独自の見た目 に設定できる。 Verse による行動の制御が できるスポナー。 見た目が選択式でオリジナル のメッシュにすることが できない。 AI のような高度な行動制御が しづらい。 見た目が選択式でオリジナル のメッシュにすることが できない。 早期アクセス期間中の機能。 アップデートにより不具合が 発生する可能性がある。
制御の種類(ヒト型) ガードスポナー キャラクターの仕掛け NPCスポナー 巡回やプレイヤーの攻撃・ 射程距離への接近に対し 反応するガードを配置できる スポナー。 カスタムエモートやアイドル といったアニメーションを 再生できる仕掛け。 キャラクターを独自の見た目 に設定できる。 Verse による行動の制御が できるスポナー。 見た目が選択式でオリジナル のメッシュにすることが できない。 AI のような高度な行動制御が しづらい。 見た目が選択式でオリジナル のメッシュにすることが できない。 早期アクセス期間中の機能。 アップデートにより不具合が 発生する可能性がある。
NPCスポナー 説明の前に ・ 本講演時点(2024年11月2日)では「早期アクセス機能」として提供中。 ・ 開発段階においても、更新により挙動が変化したものもあった。 → 検証内容が変動する可能性があるため スライドの情報は参考にとどめ、 最新の状態を都度確認する必要がある。 引用: https://dev.epicgames.com/documentation/ja-jp/uefn/using-npc-spawner-devices-in-unreal-editor-for-fortnite
NPCスポナーとNPCキャラクター定義 NPCの見た目や動作は「NPCキャラクター定義」と呼ばれるアセットを使用する。
NPCキャラクター定義 NPCキャラクター定義 では 3 つのカテゴリーから構成される。 ・NPCキャラクタータイプ ・NPCキャラクター動作 ・NPCキャラクターモディファイア
NPCキャラクター定義 NPCキャラクター定義 では 3 つのカテゴリーから構成される。 ・NPCキャラクタータイプ ・NPCキャラクター動作 ・NPCキャラクターモディファイア
NPCキャラクター定義 - NPCキャラクタータイプ NPCキャラクタータイプは、ベースとなる動作を設定できる。 → 逃走中ハンターとして適切なタイプを選ぶ必要がある。 ・Guard - ガード → ヒューマノイドNPC。 エリア巡回や他のGuardとの連携した行動ができる。 ・Wildlife - 野生動物 → 非ヒューマノイド NPC。 飼育やマウントなど生物向きの行動ができる。 ・Custom → Verse の NPC Behavior で独自に行動を制御できる。
NPCキャラクター定義 - NPCキャラクタータイプ NPCキャラクタータイプは、ベースとなる動作を設定できる。 → 逃走中ハンターとして適切なタイプを選ぶ必要がある。 ・Guard - ガード → ヒューマノイドNPC。 エリア巡回や他のGuardとの連携した行動ができる。 ・Wildlife - 野生動物 → 非ヒューマノイド NPC。 飼育やマウントなど生物向きの行動ができる。 ・Custom → Verse の NPC Behavior で独自に行動を制御できる。
NPCキャラクター定義 - Guard or Custom Guard Custom ・ プレイヤーを見つけ、追いかける 警備機能を標準で備えている。 ・ グラインドレールなどのギミック 利用を自動でできる。 ・ 独自の歩行アニメーションを実装 できる。 ・ 行動をすべてスクリプト上で実装 できるため自由度が高い。 ・独自の歩行アニメーションを 利用できず、リターゲットされた モーションしか利用できない。 ・ グラインドレールなどのギミック 利用も含めNPCの行動をすべて管理 する必要がある。
NPCキャラクター定義 - Guard or Custom Guard Custom ・ プレイヤーを見つけ、追いかける 警備機能を標準で備えている。 ・ グラインドレールなどのギミック 利用を自動でできる。 ・ 独自の歩行アニメーションを実装 できる。 ・ 行動をすべてスクリプト上で実装 できるため自由度が高い。 ・独自の歩行アニメーションを 利用できず、リターゲットされた モーションしか利用できない。 ・ グラインドレールなどのギミック 利用も含めNPCの行動をすべて管理 する必要がある。
NPCキャラクター定義 NPCキャラクター定義 では 3 つのカテゴリーから構成される。 ・NPCキャラクタータイプ ・NPCキャラクター動作 ・NPCキャラクターモディファイア
NPCキャラクター定義 - NPCキャラクター動作 NPC キャラクター定義 の NPC キャラクター動作から、 行動ロジックを書き換えることができる。 ・キャラクタータイプごとに設定できる項目が異なる。 ・Guard タイプは ジップラインの利用など設定項目が 追加表示される。 ・独自の動作は Verse の NPC Behavior テンプレート から作成し、割り当てることができる。
NPCキャラクター定義 - NPCキャラクター動作 NPC Behavior を利用すると... ・他クラスの参照が複雑になる問題。 ・NPC Manager との相互参照により、 UEFN エディタがクラッシュしてしまう問題。 →以上のことからNPC Behavior を利用しなかった。 Guard のDefault Behavior をベースに、 独自で用意した Controller クラスから制御している。
NPCキャラクター定義 - NPCキャラクター動作 NPC Behavior を利用せずにスポーンされた NPC を操作する方法は、 過去のイベントで紹介している。 https://www.youtube.com/watch?v=zmlsqB_M0k4&ab_channel=AlcheStudio
NPCキャラクター定義 - NPCキャラクターモディファイア NPCキャラクター定義 では 3 つのカテゴリーから構成される。 ・NPCキャラクタータイプ ・NPCキャラクター動作 ・NPCキャラクターモディファイア
NPCキャラクター定義 - NPCキャラクターモディファイア NPCキャラクター定義 の NPC キャラクターモディファイアより機能を強化できる。 キャラクタータイプごとに設定できる項目が異なる。 ・オリジナルの見た目 → Cosmetic Modifier ・視覚 聴覚 索敵能力の変更 → Guard Perception Modifier ・移動速度 → Movement Modifier ・体力・シールド → Health Modifier
NPCキャラクター定義 - NPCキャラクターモディファイア NPCキャラクター定義 の NPC キャラクターモディファイアより機能を強化できる。 キャラクタータイプごとに設定できる項目が異なる。 ・オリジナルの見た目 → Cosmetic Modifier ・視覚 聴覚 索敵能力の変更 → Guard Perception Modifier ・移動速度 → Movement Modifier ・体力・シールド → Health Modifier
NPCキャラクター定義 - Cosmetic Modifier について キャラクタータイプごとに設定できる項目が異なる。 ・キャラクターの外見 → Fortnite キャラクター or カスタムキャラクター ・キャラクターブループリント → スポーンされるキャラクターの見た目を設定できる。
NPCキャラクター定義 - Cosmetic Modifier について キャラクタータイプごとに設定できる項目が異なる。 ・キャラクターの外見 → Fortnite キャラクター or カスタムキャラクター ・キャラクターブループリント → スポーンされるキャラクターの見た目を設定できる。 ・キャラクター移動 → カスタムキャラクター + Guardタイプの場合、 リターゲットのみ。 キャラクターブループリントのルート に一番近い SkeletalMeshComponent が対象となる。 ・IKリターゲッタ → フォートナイトのアニメーションを 独自のメッシュに反映するためのリターゲットアセット
NPCキャラクター定義 ・NPCキャラクタータイプ ・NPCキャラクター動作 ・NPCキャラクターモディファイア
逃走中における NPC 行動の工夫 101
行動制御 逃走中で利用している NPCハンターには、 逃走をより面白くするための実装している。 例として、見失ったプレイヤーランナーの 地点に移動する実装を紹介。 このように Verse を利用することで、 NPCの移動制御をコードベースで、 実装が可能。 UE の ビヘイビアツリー や StateTree といったアセットは使えないが、 Verse ならではの並列処理で扱いやすくなっている。
高低差のある地形の制御 UE では Nav Link Proxy という機能を用いることで、 分断されたナビメッシュ同士を接続することができる。 これを UEFN で実現できるか検証した。
高低差のある地形の制御 UEFN のガード NPC では、パトロール中に低い段差を ジャンプして乗り越えたりする機能がある。
高低差のある地形の制御 ・一般的なキューブやオリジナルアセットには SmartLink が表示されない。 ・ 一部の UEFN のアセットには NavLinkProxy コンポーネントが存在しないが、 SmartLink が表示されるアセットがある。 → Fortnite Prefabs 限定の機能 の可能性 大。
高低差のある地形の制御 実際に配置した映像。 UEFNであっても2Fから1Fへ飛び降り、プレイヤーを追従可能。 しかし、1Fから2Fへのジャンプ移動 については確認できなかった。
高低差のある地形の制御 高低差のある挙動が可能なことで、マップデザインの幅が広がった。 非表示にしてカスタムプロップ上で配置することで、 見栄えを気にせずに利用することができる。
逃走中の雰囲気づくり 配 置 物 演 出 & UI N P C シ ス テ ム
演出& UI 109
演出 ・番組の演出を参考にチームで魅力的なオープニングについて考えた。 ・取り回しのよさや Verse との連携を考えシーケンサーで制御。 ・カメラワーク・キャラクタアニメーション・VFXなどをサブシーケンスで 分割管理することで、同時作業による弊害が発生しづらい運用 を目指した。
UI 独自フォントのカウントダウンなど、動的更新が必要な演出 → UEFN はフォントデータの差し替えに対応していない。 マテリアルの FlipBook ノードを利用し、 マテリアルパラメータコレクション (MPC) で対応。 → 同じ MPC を利用することで同期できるメリットも。
ユーザビリティの工夫
ユーザビリティの工夫
ユーザビリティの工夫 ・ 逃走中ではランナーの役職でミッションが発生する。 ・ 当初ミッション文言のみの説明でアイコンや空間UIを 表示していなかった。 ・ テストプレイのフィードバックにより アイコンや、ビーコンを利用することで、 ユーザビリティを向上させた。 ・ ミニマップUI →マップインジケーターの仕掛けを利用。 ・ 空間UI → ビーコンを利用。
ローカライズに関するTips ・ HUD メッセージ仕掛けに登録した WBP が参照している テクスチャは ローカライズアセットが反映される。 ・ Verse から参照し表示している UI のテクスチャは ローカライズアセットが反映されなかった。 → マップのどこかにそのテクスチャを利用したアセットを 配置するとローカライズが行われることが分かった。 ▼ 海の底に沈めた Verse により表示するテクスチャたち
逃走中の雰囲気づくり 配 置 物 演 出 & UI N P C シ ス テ ム
ミッションとVerse を生かしたフレームワーク 117
ミッション ・ ミッションは難易度とペナルティの重さの バランスが取れるようにテストプレイを繰り返した。 ・ 前後半でミッションプールを分ける。 → プレイ回数の少ないプレイヤーが 重いペナルティを受けてしまう問題を回避。 ・ ミッションは逃走中の重要な要素である。 → 番組側との連携を密にし、 コンセプトと乖離しないように注意した。
チーム開発におけるVerseの工夫 短期間での実装なので検証と本実装を高速で回す必要があった。 ・ 破棄しやすい設計 ・ 理解しやすい API の整備 提案 本実装 仮実装 テスト プレイ 破棄
チーム開発におけるVerseの工夫 短期間での実装なので検証と本実装を高速で回す必要があった。 ・ 破棄しやすい設計 ・ 理解しやすい API の整備 提案 本実装 仮実装 テスト プレイ 破棄
破棄しやすい設計 Fortnite 仕掛け 本実装 モジュール Creative Device プレイヤー 情報 ゲーム フェーズ Interface Creative Device 残り時間 . . . Creative Device
破棄しやすい設計 Fortnite 仕掛け 本実装 モジュール Creative Device プレイヤー 情報 ゲーム フェーズ Interface Creative Device 残り時間 . . . Creative Device
チーム開発におけるVerseの工夫 短期間での実装なので検証と本実装を高速で回す必要があった。 ・ 破棄しやすい設計 ・ 理解しやすい API の整備 提案 本実装 仮実装 テスト プレイ 削除
理化しやすいAPIの整備 公式APIとほぼ同じ形式でカスタム Digest ファイルを作成。 公式のプレイヤーAPI 逃走中用プレイヤーAPI そこになければ無いですね。
Verseでの並列処理活用法 ミッション・ゲームフェーズ・NPC 制御 など並列処理が多く登場する。 ・ 複雑な条件処理の可読性向上。 ・ Verse ならではの実装に挑戦。
Verse言語特有の並列処理とは 引用: Verse Concurrency—Time Flow: Everything, Everywhere in UEFN, All at Once | Unreal Fest 2023 https://www.youtube.com/watch?v=B3WiSgKXsrg&t=1s&ab_channel=UnrealEngine
Verse言語特有の並列処理とは 引用: Verse Concurrency—Time Flow: Everything, Everywhere in UEFN, All at Once | Unreal Fest 2023 https://www.youtube.com/watch?v=B3WiSgKXsrg&t=1s&ab_channel=UnrealEngine
Verse言語特有の並列処理とは ・ タスクを同時に実行し、どれかが終了すれば その他全て式がキャンセルされる。 ・ タイムアウト処理を追加するときも利用できる。 ・ 仕様変更によるタスクの追加/削除が容易。
Verse言語特有の並列処理とは Race式を抜けたら全ての処理を止めリソースの解放を実行 ペナルティの残り時間 ミッション成功 ミッションの進捗 ミッションの残り時間 ペナルティ終了 ミッションクリア ハンターに捕まる ミッション終了 リソースの開放 ペナルティ リソースの開放 ミッション
バランス調整とテストプレイ 130
バランス調整 ・ 短期間で【ハンター】【ランナー】という 非対称対戦ゲームのバランスをどうとるか? ・ ランナー → ミッション+逃げる&隠れる。 ・ ハンター → ひたすら探す+追いかける。 ⇒ 陣営ごとにできることが全く違う。 ハンターがゲームを楽しむにはどうすれば??
バランス調整 ・ ステータスの差による気持ちよさ。 → 移動速度やスタミナをランナーよりも、 引き上げることで索敵が苦痛になりづらい工夫 ・ ユーザーに任せた人数調整 → 陣営ごとの人数調整をユーザーに任せる仕組みにした。 ・ 入手可能アイテムによる調整 → 陣営ごとにアイテム付与のプールを変えた。 ・ ミッションによる誘導 → ミッションのUIをあえてハンター陣営にも表示することで、 マップの中からホットゾーンを作り出す。 出待ちのリスク or ペナルティを受けるリスク という駆け引きが生まれた。
バランス調整 フォートナイトでは、ゲーム内でのイベントを 集計する方法として、『分析の仕掛け』というものがある。 この仕掛けは、任意の文字列設定したのち、 Verseもしくはデバイスから送信することができる。 → クリエイターポータルの分析データダッシュボードから 送信されたイベントの回数を確認することができる。 引用: フォートナイト クリエイティブとUEFNの「分析データの仕 掛け」でプレイデータを収集しましょう https://create.fortnite.com/news/get-play-stats-with-theanalytics-device-for-fortnite-creative-and-uefn?lang=ja&te am=personal ▲ 逃走中で実装した分析データ仕掛けのマネージャー 勝利回数 ハンター/ランナー 捕まった原因 プレイヤーハンター/AIハンター/環境ダメージ 脱出要因 プレイヤーによる救出 / 自己脱出
バランス調整 分析仕掛けによるデータを元に バランス調整のためのアップデートを実施。 ハンターとランナーの勝利指標を設定し、 そのバランスになるようパラメータの調整をした。 ゲームバランスに影響するパラメータの一例。 ・ 陣営ごとのキャラクター性能。 ・ 自己脱出に必要なカードキーの排出確率。 ・ 足場デバイスの配置やタイヤの反発係数。
テストプレイ リリース前に2回のクローズド β を行った。 テストプレイ後にアンケートに答えてもらい、 リリースまでに優先度の高いものから修正を行った。 開発サイドでは気づきにくいルールの分かりやすさや バランス調整、バグの報告をもらい改善することができた。 直接ユーザーからポジティブ感想をもらうことで、 チーム内がポジティブになった。
マツケンサンバモデル - フロー紹介 136
MAP CODE: 1865-4829-7018
マツケンさん+腰元ダンサーズ モデル制作フロー feedback / iteration 素体+骨 base update モーション調整 update フェイシャルモデリング +ペイント × 5 衣装モデリング update 揺れ・シミュレーション update モーフアニメーション マツケンハンター衣装
リアルすぎず、フォートナイトらしいスタイライズドテイストで依頼
https://dev.epicgames.com/documentation/ja-jp/uefn/creating-fortnite-ready-assets-in-unreal-editor-for-fortnite
マツケンハンターモデル
Blender パート担当紹介
モーションキャプチャー
https://wonderdynamics.com/ 150
Introducing Wonder Studio : https://www.youtube.com/watch?v=nEHCBPGo-5M
https://help.wonderdynamics.com/intro-to-wonder-studio/introduction/credits-system
2024/06月時点 120秒以上の動画には未対応 動画を3分割
モーキャプデータの主な問題点 ①分割アニメーションのブレンド ②キャラクターの位置と向き ③足の浮き・すべり ④指 ⑤自己交差
モーキャプデータ の First-Aid
①分割アニメーションのブレンド → Motion Clip Sequence - モーキャプデータ の First-Aid -
T-Pose Anim01 Anim02 Anim03 + + + Motion Clip Sequence
時間データを持ったジオメトリのまとまりとして扱う → 軌跡をスムージング、フレーム補間等が可能 animation:9000 frame
②キャラクターの位置と向き → Extract Locomotion - モーキャプデータ の First-Aid -
← 原点:カメラ位置?
体が傾いている
足の位置がバラつく、浮く
ダンスモーションでは、特定の骨の向きをみるだけでは不十分。全体を見ながら手動で調整も加える。
③足の浮き → Rig Wrangle - モーキャプデータ の First-Aid -
hipの位置を取得 footの位置を取得 foot高さの最小値を計算 最小値をもとにhipの高さを調整
メッシュの厚み分 地面から(どちらかの)足の高さを一定に
Stabilize Joint SOP 微震を軽減するノード。ターゲット(地面など)との距離に応じてスナップ。足すべり対策にも。
④指 → 複数のポーズをブレンド - モーキャプデータ の First-Aid -
⑤自己交差 → Rig Pose+Soft body+Thickness - モーキャプデータ の First-Aid -
メッシュの自己交差は、シミュレーションに破綻をもたらす
所々にRig Poseを入れ込み、手動調整が必要
関節の自己交差 ソフトボディ化し、コリジョンをオフセットするなど(生地の逃げ場を確保する)
厚みの疑似表現 重ね着の自己交差に厚み表示が効果的
骨の差し替えとリターゲット
Fortnite マネキン
空中での骨の配置は各ジョイント3方向の調整が必要。もっと手軽にしたい・・・
Mixamo Auto-Riggerを使用して時短。Auto-Rig Proなど複数選択肢あり。
スナップポイントとして利用しやすい
Fortnite Wonder Studio リターゲット
着物モデリング
Curveで展開図を作成
Planar Patch from Curves で Vellumシミュレーションに適した面を生成
Transformで立体的に配置
Vellum Drapeで縫い合わせるが、着物は縫い合わせる相手がいない
複数のシミュレーションを組み合わせ、着付けのような工程を再現
着物袖の揺れ表現
自由なアニメーションをUEFNでどのように再現するか? 目標 自由なアニメーションをUEFNで再現 ハードル UEFN : インポートの制限、ダウンロードサイズ400MB Plugin使用不可 etc...
モーション内の布の揺れに関係するメソッド一例(UEFN) ○ △ ✕ Skeletal Animation Chaos Cloth Alembic Import ジョイントの入れ方で様々 複数体では負荷懸念 Pluginのため未対応 Control Rig VAT Kawaii Physics セカンダリーモーション 長フレームに不向き Pluginのため未対応
Skeletal Animation
KineFXのスケルトンの扱い ジョイント:3つの情報を含むポイント ・ポジション ・移動, 回転, スケール(3×3変換行列) ・Nameデータ https://www.sidefx.com/ja/docs/houdini/character/kinefx/skeletons.html
1ピースにつき1つの骨をもつFBX
6482-8686-1670 1つの頂点につき1つの骨をもつFBX、エフェクトも骨で構成。
1つの頂点につき1つのジョイントをもつFBX、Switch等でも動作。 HUMAN HEAD CLIMBでは約1000個のスケルタルメッシュを配置。
赤:通常スキンニング 紫:1頂点1ジョイントのスキニング(シミュレーション)
頂点ベースエリアのポイントを取得し、
ジョイント(≒骨)に変換
biharmonic = 重調和 proximity = 近接性 ジョイントの距離をベースに 単純化された四面体メッシュをベースに (四面体は空間を充填できる) 影響させる頂点数の指定が可能。 無関係な頂点への影響を0にできる 2つのプロシージャルなスキニング方法をミックス
▶ ジョイントの向きを法線に合わせる 法線を取得し、ジョイントに転送
Vellumの結果を自然な形でUEFNで再現、Switchでも再生可能
LogValkyrieSyncProject: エラー: アップロードサイズの合計 (2213571KB) が大きすぎます。 最大許容サイズは 2097152KB (2.0GB)です。 プロジェクト後半、 アップロードサイズを圧迫していることが発覚
Project Size:ダウンロードサイズ エディタで確認できる プロジェクトサイズ ダウンロードサイズ : 12MB アップロード内訳(非表示):600MB😨 600MB → 12MB の 圧縮??(すごい)
Secondary Motion
UEFNマネキンの骨に
袖用の骨を追加
プロシージャルなスキニングをベース
揺れる着物表現には、JointCapturePaintなどで微調整が大切
揺れる着物表現には、JointCapturePaintなどで微調整が大切
Secondary Motionノードで調整すると
揺れだけでなく、下向きのLook Atによって擬似重力表現が可能
スキニング、モーション、着物モデルの反復調整を行いながらクオリティアップ
Compatible Skeleton で体格や着物の形が異なる男女のアニメーションを共通化 揺れモノも再現しつつ、アップロードサイズを削減
Control Rig
エフェクト制作リード・Control Rig検証担当紹介
本日、Alcheブースで試遊できます! なくなってしまいました🙇 MAP CODE: 4090-6935-8150 MAP CODE: 1865-4829-7018 アップデート終了後、フォートナイトで無料で遊べます!
・採用相談 ・講演への質疑 ・ノベルティ配布 奥から三つ目の場所で ブースを出展しています! この後もお話しさせてください! ・・・
Alche公式X(Twitter) @alche_studio リリース情報やテストプレイのご案内、Tips等を発信しています!
ご清聴ありがとうございました