More Related Content Similar to Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2 (20) More from エピック・ゲームズ・ジャパン Epic Games Japan (20) Unreal Engine 5 早期アクセスの注目機能総おさらい Part 22. こちらの講演は Part 1 があります
本講演では Unreal Engine 5 早期アクセスのプログラマ・エンジニアの方に向け
た機能を紹介します。
Part1 ではアーティスト・デザイナ向けの機能について紹介しています。
7. World Partition
● World Partition とは?
● UE5で新しく追加される大規模なワールドを管理するための機能・方法
● 新しいデータ管理および距離ベースのレベルストリーミングシステム
https://docs.unrealengine.com/5.0/ja/WorldFeatures/WorldPartition/
● 大規模ワールドを構築するシステム
● UE4では World Composition を利用することで実現、ただし利用する際に機能的な制限が多
く組み込むには多くの工夫が必要だった
● UE5では(将来的に)World Composition が廃止となり、World Partition がデフォルトの
ワールド作成方法となる
● World Partition では既存の問題を解消してより使いやすいものになる
23. One File Per Actor
● レベル上の1アクターに対して1つのパッケージ(ファイル)が割り当てられる
● アセットのチェックアウトもアクター毎
● 複数の開発者が同時に同じレベルに対して作業できる
● レベル上のアクターを操作してもそれを格納したレベルは編集マークがつかない
● 平行作業のためのサブレベル分割は不要
● 大きなレベルでは万単位のファイルが追加されることになります
● ファイル増加に伴いソースコントロールの負荷は増加
● パッケージビルドではクック時に単一のumapパッケージに纏められます
24. One File Per Actor 有効化 (レベル単位)
● ワールドセッティング > WORLD >
「外部アクタを使用」にチェック
● チェックボックスを外すことで
もとの「内部アクタモード」に
戻すことが可能
25. One File Per Actor 有効化 (アクター単位)
● アクタの詳細中の
「パッケージ化モード」を「外部」にする
● アクターが作成されたときの初期設定は
レベルの設定による
26. One File Per Actor の保存先
追加・変更されたファイルは緑で、
削除されたアクタは赤で表示されます。
外部アクタは__ExternalActors__フォルダ以下に
マップのパス+ハッシュ値で保存されます。
__ExternalActors__フォルダはコンテンツブラウザから不可視
基本的にエンジンが自動で制御するので直接操作しない
44. デバッグ描画用コンソールコマンド
● p.chaos.debugdraw.enabled 1/0
● 大元のデバッグ描画有効化フラグ
● p.ForceDisableAsyncPhysics 1/0
● 非同期物理シムの無効化
非同期物理有効時は正しい描画ができません
● p.chaos.solver.DebugDraw.LineThickness 1.0
● デバッグ用描画の線の太さ
● p.chaos.solver.DebugDraw.DrawScale 1.0
● 矢印などの大きさ
● p.Chaos.DebugDraw.MaxLines 30000
● 最大描画ライン数
● p.Chaos.DebugDraw.Radius 1000
● デバッグ表示の描画半径
● showflag.temporalaa 0
● カメラが動いた時にブレにより見辛くなるのでTAAを無効化します
p.chaos.solver.debugdrawshapes 1
45. デバッグ描画用コンソールコマンド
● p.chaos.solver.debugdrawshapes 1/0
● コリジョンメッシュ表示
● p.chaos.solver.debugdrawcollisions 1/0
● 接点表示
● p.Chaos.Solver.DebugDrawBounds 1/0
● バウンディングボックス表示
● p.Chaos.Solver.DebugDrawTransforms 1/0
● トランスフォームのボックスや重心の表示
● p.Chaos.Solver.DebugDrawIslands 1/0
● シミュレーションアイランドの表示
● p.Chaos.Solver.***
● 物理シムソルバー用CVarの名前空間
p.chaos.solver.debugdrawcollisions 1
46. デバッグ描画用コンソールコマンド
● p.Chaos.ImmPhys.***
● リジッドボディ アニムノード用CVarの名前空間
● p.Chaos.ImmPhys.DebugDrawShapes 1/0
● p.Chaos.ImmPhys.DebugDrawShowStatics 1/0
● p.Chaos.ImmPhys.DebugDrawShowKinematics 1/0
● p.Chaos.ImmPhys.DebugDrawShowDynamics 1/0
● p.Chaos.ImmPhys.DebugDrawCollisions 1/0
● p.Chaos.ImmPhys.DebugDrawJoints 1/0
● p.Chaos.ImmPhys.DebugDrawJointFeatures 6/0
● p.Chaos.ImmPhys.DebugDrawSimulationSpace 1/0
● p.Chaos.ImmPhys.DebugDrawParticles 1/0
60. 従来の対策・解決方法
Gameplay Ability System で分割
● 実装の切り分け・ON/OFF を促す仕組み
● 参照関係を一方通行にしやすい
● データドリブンで調整・量産が可能
● 大きな単位(ミニゲームなど)での
実装・アセットの分割には不向き
● 良くも悪くも自由度が高く
プロジェクト側で用意・実装する部分が多い
近接攻撃用の実装・アセットを付与
63. Game Features の キホン
実行中に指定のGame Featureを
動的に有効・無効化可能
(右図のノードは古代の谷サンプルの独自実装)
コンソールコマンドからでも切り替え可能
● LoadGameFeaturePlugin <プラグイン名>
● UnloadGameFeaturePlugin <プラグイン名>
64. Game Features の キホン
対象のGame Featureを有効・無効にした際に
実行する処理(Action)をData Asset で設定
Action の 例
● 対象のキャラクターに
Component, GameplayAbility を 付与
● Level Instance を指定のレベルに追加
● ユーザ入力設定( Enhanced Input )を追加
66. Game Features の キホン
対象のGame Featureを有効・無効にした際に
実行する処理(Action)をData Asset で設定
Action の 例
● 対象のキャラクターに
Component, GameplayAbility を 付与
● 専用のキー入力設定を追加
● Level Instance を指定のレベルに追加
Modular Gameplay が担当してるのはここ
71. Game Features のつよみ ①
プロジェクト本体 から完全に独立している!
プロジェクト本体はGame Features への参照を持てず、
参照関係は『Game Features ▶ プロジェクト本体』への一方通行のみ
プロジェクト本体への影響を気にすることなく、
機能の無効化ができる!
これは実装作業・作業分担する上でも大きなメリット!
75. Game Features のつよみ ②
プロジェクト側で
Action を自由に追加可能!
Modular Gameplay 機能が実装をサポート
古代の谷サンプルにて
様々なActionが実装されてるので是非確認を
無効化時に追加したものを削除する処理を
入れることを忘れずに
77. Game Features のつよみ ③
プログラマが追加した処理(Action)を
データドリブンで実行可能!
(下準備が済めば)UE5、プロジェクト内の
様々な機能・処理をノンコードで呼び出せる!
(下準備が済めば)可能性は無限大!
79. 参考資料
公式ドキュメント - ゲームプレイ フレームワークの新機能 -
https://docs.unrealengine.com/5.0/ja/GameplayFeatures/
公式ドキュメント - 「古代の谷」サンプル -
https://docs.unrealengine.com/5.0/ja/ContentAndSamples/ValleyOfTheAncient/
Modular Game Features | Inside Unreal
https://www.youtube.com/watch?v=7F28p564kuY
株式会社ヒストリア様によるブログ記事
[UE5] プレイヤーの技などをプラグインで実装できる! GameFeaturesプラグインの紹介
https://historia.co.jp/archives/21145/
82. OnlineSubsystem とは
Online Subsystem とそのインターフェースは、Steam、Xbox Live、Facebook
などのオンライン サービスの機能にアクセスする共通の方法を提供します。
複数のプラットフォームで提供したり複数のオンライン サービスをサポートした
りするゲームを手がける場合は、Online Subsystem を使用すると、デベロッ
パーは各サービスのコンフィギュレーションの調整を行うだけで良くなります。
https://docs.unrealengine.com/4.26/ja/ProgrammingAndScripting/Online/
89. OSS EOS の有効化
● Engine.ini に下記を追加
[OnlineSubsystem]
DefaultPlatformService=EOS
bHasVoiceEnabled=true
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsyste
mEOS.NetDriverEOS",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[/Script/OnlineSubsystemEOS.NetDriverEOS]
bIsUsingP2PSockets=true
93. OnlineSubsystemEOS の機能
● EAS/EGS Auth
● EAS Presence
● EAS Friends
● EGS/EAS Ecom
● EOS Sessions
● EOS Stats
● EOS Achievements
● EOS Leaderboards
● EOS Player Data Storage
● EOS Title Data Storage
● EOS p2p Sockets
● EOS Metrics (session based analytics)
● EOS Voice
112. Epic Online Services Support
コミュニティベースのサポートサイトにてディスカッションや質問、解答が可能
https://eoshelp.epicgames.com/s/
118. 日本語ドキュメント 誤植&誤訳 投稿所
Unreal Engine や日本語ドキュメント内の誤植
や誤訳などを発見した際はぜひこちらからご報
告お願い致します
https://forums.unrealengine.com/t/topic/29
122