シーケンサー自動生成で詰まったところとTIPSの共有

5K Views

March 16, 25

スライド概要

UE Tokyo .dev #4 (2025.03) (https://ue-community-tokyo.connpass.com/event/343141/) で発表したスライドです。

profile-image

東京在住のゲームプログラマー。漫画とゲームをこよなく愛します

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

シーケンサー自動生成 で詰まったところと TIPSの共有 2025/03/14 KTA552

2.

アジェンダ 01 02 03 04 シーケンサーについて シーケンサーを自動生成するBlueprint 詰まったところの共有 TIPSの共有

3.

自己紹介

4.

自己紹介 KTA552 Engineer / Technical Artist ● ● ● ゲーム業界15年ほど 仕事ではUE5でコンソールゲーム開発 UnrealEngine歴は5年程度

5.

お詫び

6.

お詫び 昨年のUnreal Engine Meetup in Nagoya Season2 Vol.1で発表されている 「猫でもわかる UE5 シーケンサー自動生成!」 https://www.docswell.com/s/squadstars/ZVVDDJ-2024-03-26-012103 と内容が被ってるところが多々あります。 知識の重ね掛けが出来てお得!ぐらいの温かい気持ちで聞いてもらえると助 かります

7.

シーケンサーについて

8.

シーケンサー、いいよね・・・

9.

シーケンサーとは UnrealEngine上で動作するリアルタイムのシネマティックアニメーションツール 「時間軸に沿って〇〇する」の処理をさせるのがとても得意 UnrealEngine内のActorやComponentのプロパティの多くが対応しているので、 「XXフレームでレベル内のXXComponentのXXをZZの値にしたい!」といった ケースに柔軟に対応出来ます。 特定のイベントで発動するカットシーン、あるバトル中の演出シーンなどなど・・・

10.

何故シーケンサーを自動生成したいのか?

11.

設定する手間が多い!

12.

設定の手間が多い問題 シーケンサーのメリット 様々なケースに対応できる高い柔軟性 シーケンサーのデメリット 値を設定するまでの手間が多い

13.

あるActorのComponentの値を設定したい時 Actorを紐づけorスポーン ↓ 設定したいプロパティがあるComponentのトラックを追加 ↓ Component内のプロパティのトラックの追加 ↓ トラックにキーフレームを打ってキーの値を入力

14.

あるActorのComponentの値を設定したい時 (Actor設定は1度で良いとして) 値を調整したいプロパティ毎にこんな感じの作業を行わなければいけない 数十種類あるカットシーン、数百種類あるバトル中の演出を1つ1つ人が丁寧に 設定する工数があるならOK

15.

基本的にはない

16.

そうだ、自動生成しよう シーケンサー1つ1つに手間をかけて大量に生産する工数はない → 手間をかけずにシーケンサーを作れないか → データを元にシーケンサーを生成してコスト削減したい これがシーケンサーを自動で生成したい一番のモチベーション

17.

実際に生成するサンプル

18.

サンプル ● シーケンサーアセットを作成 ● CineCameraActorを生成 ● 基本的なプロパティトラックを追加 ここまでを行うEditorUtilityWidgetを用意しました

19.

サンプル

20.

サンプル

21.

サンプル 作ったEUWのサンプルはGitHubで公開しました。 参考にしたい場合は実際に見てみてください。 ※作成時のUEのバージョンは5.5.3 https://github.com/KTA552/UE-seq_gen_sample UE内のサンプルは下記パスです。Pythonスクリプトがあります。 Engine\Plugins\MovieScene\SequencerScripting\Content\Python

22.

詰まったところの共有

23.

Add Spawnable from Classの罠(?) Spawnable from Instanceとfrom Classの2つがあります 何故かfromClassの方で作成されたインスタンスにはトラックのバインディング が出来ない 仕方ないので一旦Spawn from ClassでSpawnして、 そのインスタンスをSpawnable from Instanceに繋げる必要がある ※そのSpawnしたActorとトラックは後で消す必要がある

24.

Add Spawnable from Classの罠(?) 成功する例

25.

Add Spawnable from Classの罠(?) うまくいかない例 Blueprints/NG/EUW_Gen_Sequencer_NG.uasset

26.

(ただのミス)get_name()の結果が微妙に違う Python上での話。 Actorのget_name()とBindingのget_name()の結果が微妙に異なる Actorの名前で一致しているかを判定するときは、actor.get_actor_label()と binding.get_display_name()で比較しましょう

27.

(ただのミス)get_name()の結果が微妙に違う 意図した結果になった例

28.

(ただのミス)get_name()の結果が微妙に違う 意図しない結果になった例 Blueprints/NG/EUW_Gen_Sequencer_NG.uasset

29.

TIPSの共有

30.

TIPS シーケンサーで作成されるもののデフォルト値を変えたい場合があります 変えられるデフォルト値の共有をします

31.

デフォルトFPSの設定 デフォルトFPSの設定の変更ができます

32.

デフォルトFPSの設定 Project/Config/DefaultEngine.ini内のパラメータが変更されます [/Script/LevelSequence.LevelSequenceProjectSettings] LevelSequence.DefaultDisplayRate=60fps

33.

CineCameraの設定 Engine\Source\Runtime\CinematicCamera\Public\CineCameraSettings.h UCineCameraSettings デフォルトのカメラのFocalLengthやF値の設定など

34.

CineCameraの設定 Project/Config/DefaultEngine.iniに設定を追加 例) [/Script/CinematicCamera.CineCameraSettings] DefaultCropPresetName="1.77 (16:9)" 設定する項目と値はEngine/Config/BaseEngine.iniを参照。

35.

TIPSのTIPS エンジンやEditorの挙動のデフォルト値を変更できるパターン 名前がXXXSettingsになっていることが多いです コンフィグ設定を探すときに参考にしてみてください

36.

ActorにFBXをインポートするときの設定 カメラのTransform情報をDCCツールで付けていて、 その情報を反映させたい時など

37.

ActorにFBXをインポートするときの設定 インポート時のオプションも実はデフォルト値を変えられます Engine\Source\Editor\MovieSceneTools\Public\MovieSceneToolsUserSettings.h UMovieSceneUserImportFBXSettings 下記iniにデフォルト値を設定してあげます Project/Config/DefaultEditorSettings.ini 例) [/Script/MovieSceneTools.MovieSceneUserImportFBXSettings] bCreateCameras=False

38.

まとめ

39.

まとめ ● シーケンサーを大量に作らなければいけない場合、自動で生成できないか?を検討してみましょう ● ハマりどころがちょっとあるので、サンプルのPythonスクリプトを見ながら作るのが吉 ● 毎度設定を行うようなものは意外とデフォルト値を変えられるので、確認してみましょう

40.

THANKS!

41.

CREDITS This is where you give credit to the ones who are part of this project. Did you like the resources on this template? Get them for free at our other websites. ◂ Presentation template by Slidesgo ◂ Icons by Flaticon ◂ Infographics by Freepik ◂ Author introduction slide photo created by Freepik ◂ Text & Image slide photo created by Freepik.com