---
title: 猫でもわかる UE5 シーケンサー自動生成！【Unreal Engine Meetup in Nagoya Season2 Vol.1】
tags:  #ue5 #ue-sequencer  
author: [スクワッドスターズ株式会社](https://www.docswell.com/user/squadstars)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/4JQ5MYQ67P.jpg?width=480
description: 2024年3月16日二開催された「Unreal Engine Meetup in Nagoya Season2 Vol.1」で使用した講演スライドです。 https://anurabless.connpass.com/event/308577/  講演者： スクワッドスターズ株式会社 岡田和也
published: March 26, 24
canonical: https://www.docswell.com/s/squadstars/ZVVDDJ-2024-03-26-012103
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/4JQ5MYQ67P.jpg)

猫でもわかるシーケンサー
自動生成
スクワッドスターズ株式会社
岡田 和也
#UENagoya


# Page. 2

![Page Image](https://bcdn.docswell.com/page/K749VWNME1.jpg)

本スライドは動画を多く含むため
下記データからの閲覧を推奨いたします
https://docs.google.com/presentation/d/135JogUFiouU1XgzqGKDTaC
HjKAXEwV4tfWzpbezn4nw/edit?usp=sharing
#UENagoya


# Page. 3

![Page Image](https://bcdn.docswell.com/page/LJ1K3Y5Y7G.jpg)

自己紹介
スクワッドスターズ株式会社
シニアプログラマー
岡田 和也 兼 おかず( @pafuhana1213 )
2023年10月まで Epic Games Japan で
サポートエンジニアしてました
今は現職でゲーム開発中！たのちい！
仲間募集中です！ご興味のある方はぜひ！
https://squadstars.jp/recruit/
#UENagoya


# Page. 4

![Page Image](https://bcdn.docswell.com/page/GJWDPG5172.jpg)

猫でもわかる
シーケンサーの自動生成
※ 本日の講演内容は業務で実際に使っているものではなく
個人的に学習・検証したものです
#UENagoya


# Page. 5

![Page Image](https://bcdn.docswell.com/page/4EZGKLNXJ3.jpg)

シーケンサー（ Sequencer ）とは？
リアルタイムの
シネマティックアニメーションツール
UE4.12 ( 2016年6月 ) に正式リリース
#UENagoya


# Page. 6

![Page Image](https://bcdn.docswell.com/page/Y76YQW8PEV.jpg)

シーケンサーはいいぞ
レベル上のActor や 見た目 を制御できるだけでなく、
イベントなども設定することが可能！直感的で操作しやすいUIもある！
#UENagoya


# Page. 7

![Page Image](https://bcdn.docswell.com/page/G75GRM9P74.jpg)

シーケンサーはいいぞ
BPで実装したイベントを呼ぶことも可能！
#UENagoya


# Page. 8

![Page Image](https://bcdn.docswell.com/page/9J2YD92ZJR.jpg)

カットシーンだけでなく、様々な用途で利用可能
-
カットシーン・映像作品の制作
必殺技・スキル演出の制御
ゲーム中のギミック制御
などなど
#UENagoya


# Page. 9

![Page Image](https://bcdn.docswell.com/page/DEYG24YNEM.jpg)

シーケンサーの基本的な使い方はこちら
【初心者向け】UE5 シーケンサーと
Movie Render Queue の使い方
https://www.youtube.com/watch?v=-qKSJLNLV94
UE4のシーケンサーをもっともっと使いこなそう！
最新情報・Tipsをご紹介！
https://www.docswell.com/s/EpicGamesJapan/5XP4YZ-U
E4_GCC19_Sequencer_LatestInfoAndTips
#UENagoya


# Page. 10

![Page Image](https://bcdn.docswell.com/page/VJNG8YPV78.jpg)

Sequencerのセットアップ大変すぎる問題
できることが沢山ある分、編集・設定作業が膨大になりがち…
#UENagoya


# Page. 11

![Page Image](https://bcdn.docswell.com/page/YE9WKP3VE3.jpg)

Sequencer の物量多くなりがち問題
主な用途
-
カットシーン・映像作品の制作
必殺技・スキル演出の制御
ゲーム中のギミック制御
などなど
✖ 500
大量の
シーケンサーアセットが
爆誕！
3分 =
10,800フレーム
#UENagoya


# Page. 12

![Page Image](https://bcdn.docswell.com/page/GE8NRDM47D.jpg)

つらい…
人間がすべき作業じゃない…
#UENagoya


# Page. 13

![Page Image](https://bcdn.docswell.com/page/LELPKM3V7R.jpg)

そうだ！
シーケンサーを自動生成しよう！
#UENagoya


# Page. 14

![Page Image](https://bcdn.docswell.com/page/4JM42YDN7W.jpg)

シーケンサーの自動生成とは？
設定ファイル や スクリプトなどから
シーケンサーアセット（ Level Sequence ）を 自動的に生成・構築すること
#UENagoya


# Page. 15

![Page Image](https://bcdn.docswell.com/page/PJRWM94479.jpg)

シーケンサーの自動生成に関する事例
SCARLET NEXUS 開発事例：特徴的なカットシーンの実装および次世代機開発の道のり
【UNREAL FEST EXTREME 2021 WINTER】https://www.youtube.com/live/66q4d56FoFk?si=xlavAPa2ydHHhHIJ&amp;t=2406
https://www.docswell.com/s/EpicGamesJapan/Z9GD15-UE4_UFE21W_BNE_TOSE_SCARLETNEXUS#p24
グラフィニカの開発したツールで紹介する、UE4でのカットシーン制作ワークフロー
【あにつく2022】
https://youtu.be/_GB-r3FJxtw?si=cdX60bI4Ss6axdYG
https://www.too.com/dc/report/2209_atsuc2022_graphinica01/
クライシス コア -ファイナルファンタジーVII- リユニオン 開発における心得と制作手法
【UNREAL FEST 2023 TOKYO】
https://youtu.be/NENg8lxLGhE
https://www.docswell.com/s/EpicGamesJapan/5W1V9P-UE_UF23T_TOSE
劇場版 シルバニアファミリー フレアからのおくりもの
【CGWORLD vol.306 2024年2月号】
https://cgworld.jp/magazine/cgw306.html
#UENagoya


# Page. 16

![Page Image](https://bcdn.docswell.com/page/PEXPVQ2Z7X.jpg)

昨今の傾向
UE外のツールで作成したカットシーンデータを使って
Level Sequenceを自動生成する事例が年々増加
UnityにおけるSequencerに近い機能
「Timeline」を会話・戦闘演出で活用した事例が年々増えている
カットシーン以外での
利用・自動生成の需要も
更に広がっていく（いっている）予感
https://docs.unity3d.com/ja/2019.2/Manual/TimelineOverview.html
#UENagoya


# Page. 17

![Page Image](https://bcdn.docswell.com/page/3EKDQ9MVJD.jpg)

UnityのTimeline で 会話シーン・戦闘演出を実装した事例の一部
「IDOLY PRIDE」における動画のようなADVの実現方法
https://learning.unity3d.jp/8852/
ヘブンバーンズレッド × バトル × アドベンチャー 〜WFSのゲーム制作・演出の最大化手法〜
https://techcon.gree.jp/2022/session/TrackB-2
『呪術廻戦 ファントムパレード』の多彩なスキル演出を生み出した制作ツールへのこだわり
https://cagc.cyberagent.co.jp/2024/session/index.html?id=T6yR9hPB
#UENagoya


# Page. 18

![Page Image](https://bcdn.docswell.com/page/L73RPW2QJ5.jpg)

というわけで
シーケンサーの自動生成のみに
絞ってみました
#UENagoya


# Page. 19

![Page Image](https://bcdn.docswell.com/page/87DYLKZW7G.jpg)

お品書き
1.
2.
3.
4.
シーケンサーの基本機能・データ構造について
シーケンサーの自動生成 - 基本編 シーケンサーの自動生成 - 特殊Track編 シーケンサーの自動生成 - データ管理編 -
#UENagoya


# Page. 20

![Page Image](https://bcdn.docswell.com/page/VJP62KDXE8.jpg)

今回の検証環境
Unreal Engine
5.3
ちなみに、5.4 から Sequencer のエディタUIが変わるみたいです
講演前にそういうのはやめてほしい
#UENagoya


# Page. 21

![Page Image](https://bcdn.docswell.com/page/2EV3DV137Q.jpg)

シーケンサーの
基本機能・データ構造について
#UENagoya


# Page. 22

![Page Image](https://bcdn.docswell.com/page/57G3YL2YJL.jpg)

自動生成するにはまず基本から
シーケンサーを自動生成
シーケンサーのデータ構造と
各エディタ操作の内部を
（ある程度）把握する事が重要！
シーケンサーエディタ上での
各操作を全自動で実行
#UENagoya


# Page. 23

![Page Image](https://bcdn.docswell.com/page/4EQ5MYP6JP.jpg)

Level Sequence（LS）
#UENagoya


# Page. 24

![Page Image](https://bcdn.docswell.com/page/KJ49VWYM71.jpg)

Level Sequence
シーケンサー アセットのこと
Shot Track や Subsequences Track により
複数の Level Sequence を 連結・同時使用 することが可能
#UENagoya


# Page. 25

![Page Image](https://bcdn.docswell.com/page/LE1K3Y6YJG.jpg)

Track, Section, Channel, Key
#UENagoya


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GEWDPGW1J2.jpg)

基本データ構造
Track：
制御対象の要素・機能
( Actor, Component, Propertyなど）
Section：
制御する時間
Channel
Channel：
設定する値の型・クラス
Key
Key：
設定値
Track
Section
#UENagoya


# Page. 27

![Page Image](https://bcdn.docswell.com/page/47ZGKL5XE3.jpg)

基本データ構造
こんなイメージ
#UENagoya


# Page. 28

![Page Image](https://bcdn.docswell.com/page/YJ6YQW9P7V.jpg)

基本データ構造
Track（制御対象）：
- Actor, Component, Transform
Section（制御時間)：
- 0フレーム ~ XXX フレームまで
Channel（設定値の型・クラス）：
- Transform ( double * 9 )
Key（設定値）：
- Location (■■■, ■■■, ■■■ )
- Rotation ( … )
- Scale ( … )
#UENagoya


# Page. 29

![Page Image](https://bcdn.docswell.com/page/GJ5GRMNPJ4.jpg)

Object Binding
#UENagoya


# Page. 30

![Page Image](https://bcdn.docswell.com/page/LE3RPW2675.jpg)

シーケンサー と レベル
Level Sequence と Level は
別アセット
制御するには
紐付ける必要がある
#UENagoya


# Page. 31

![Page Image](https://bcdn.docswell.com/page/8EDYLKZMEG.jpg)

基本データ構造の振り返り
Track：
制御対象の要素・機能
( Actor, Component, Propertyなど）
Section：
制御する時間
Channel
Channel：
設定する値の型・クラス
Key
Key：
設定値
Track
Section
#UENagoya


# Page. 32

![Page Image](https://bcdn.docswell.com/page/V7P62KDQJ8.jpg)

Object Binding
Track と『レベル上に存在するオブジェクト(※)』を紐づけする機能
※ オブジェクト = Actor, Component, プロパティ など
#UENagoya


# Page. 33

![Page Image](https://bcdn.docswell.com/page/2JV3DV1PEQ.jpg)

Object Binding はかんたん！（この方法の場合は
エディターから
Actorを追加した場合は
Object Bindingが
自動的に行われる
#UENagoya


# Page. 34

![Page Image](https://bcdn.docswell.com/page/5EG3YL2Q7L.jpg)

余談：Track Settings
LevelSequenceにActorを追加した際に
自動的に追加されるTrackを設定することが可能
https://docs.unrealengine.com/5.3/ja/cinematic-actor-tracks-in-unreal-engine/
#UENagoya


# Page. 35

![Page Image](https://bcdn.docswell.com/page/4JQ5MYPW7P.jpg)

Object Binding による紐づけが切れてしまうケースの一部
●
Object Binding対象の
Actorをレベルから削除した
●
Object Binding対象のActorを
別BPに置き換えた
●
別レベルを開いた状態で
Level Sequenceを開いた
#UENagoya


# Page. 36

![Page Image](https://bcdn.docswell.com/page/K749VWY1E1.jpg)

つまり…
LevelSequence が 特定のLevel・Actor と強く紐づくため
別の環境・条件で使い回すことが不可能
#UENagoya


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LJ1K3Y657G.jpg)

Possessable , Spawnable
#UENagoya


# Page. 38

![Page Image](https://bcdn.docswell.com/page/GJWDPGWW72.jpg)

Possessable と Spawnable
Possessable
（所有可能なもの)
Spawnable
（スポーン可能なもの)
レベル上のActorを参照
Sequencer から
制御対象のActorをSpawn
これまでのものはこちら
#UENagoya


# Page. 39

![Page Image](https://bcdn.docswell.com/page/4EZGKL52J3.jpg)

Spawnable のメリット ①
レベルの情報に依存しないため
様々なレベルで使用することが可能！
Spawnable に設定した
Level Sequence
#UENagoya


# Page. 40

![Page Image](https://bcdn.docswell.com/page/Y76YQWV6EV.jpg)

Spawnable のメリット ②
Object Binding を実行中に変更することで
レベル上のActorを制御可能（ SequencerからのSpawnはスキップ ）
「動的に生成されたActor」もSequencerで制御することが可能
( 例：プレイヤーキャラ )
#UENagoya


# Page. 41

![Page Image](https://bcdn.docswell.com/page/G75GRMD574.jpg)

Object Bindingの動的変更 - Add Binding Object Bindingを変更するTrackを一覧から指定する方法
実装が楽な反面、汎用性に欠ける方法。また、LS側の変更に弱い
#UENagoya


# Page. 42

![Page Image](https://bcdn.docswell.com/page/9J2YD98GJR.jpg)

Object Bindingの動的変更 - Add Binding by Tag Trackに設定した Tag を元にObject Binding を実行する方法
Tag設定が少々面倒ですが、LS側の変更に強く汎用性も高い
・・・
#UENagoya


# Page. 43

![Page Image](https://bcdn.docswell.com/page/DEYG246GEM.jpg)

Object Bindingの動的変更 - 動的Binding ( UE5.3 から )
従来の方法とは異なり
Level Sequence内で Object Bindingの設定処理を実装可能に！
より手軽に様々な環境・条件で再生できるように
操作キャラ
特定のActorタグを持つActor
#UENagoya


# Page. 44

![Page Image](https://bcdn.docswell.com/page/VJNG8YZ878.jpg)

ブループリントでアクタをシーケンサーとリバインドする
https://docs.unrealengine.com/5.3/ja/
change-cinematic-track-bindings-in-unreal-engine/
シーケンサーでプレイヤーを参照する
https://docs.unrealengine.com/5.3/ja/
how-to-reference-the-player-in-unreal-engine-cinematics/
動的バインディング
https://docs.unrealengine.com/5.3/
ja/dynamic-binding-in-sequencer/
#UENagoya


# Page. 45

![Page Image](https://bcdn.docswell.com/page/YE9WKPZXE3.jpg)

Track
Section
Channel
Object
Binding
Possessable
Spawnable
Key
#UENagoya


# Page. 46

![Page Image](https://bcdn.docswell.com/page/GE8NRD197D.jpg)

基本データ構造
Track：
制御対象の要素・機能
( Actor, Component, Propertyなど）
Section：
制御する時間
Channel
Channel：
設定する値の型・クラス
Key
Key：
設定値
Track
Section
#UENagoya


# Page. 47

![Page Image](https://bcdn.docswell.com/page/LELPKMQM7R.jpg)

Object Binding
Track と『レベル上に存在するオブジェクト(※)』を紐づけする機能
※ オブジェクト = Actor, Component, プロパティ など
#UENagoya


# Page. 48

![Page Image](https://bcdn.docswell.com/page/4JM42Y167W.jpg)

Possessable と Spawnable
Possessable
（所有可能なもの)
Spawnable
（スポーン可能なもの)
レベル上のActorを参照
Sequencer から
制御対象のActorをSpawn
これまでのものはこちら
#UENagoya


# Page. 49

![Page Image](https://bcdn.docswell.com/page/PJRWM9LN79.jpg)

お品書き
1.
2.
3.
4.
シーケンサーの基本機能・データ構造について
シーケンサーの自動生成 - 基本編 シーケンサーの自動生成 - 特殊Track編 シーケンサーの自動生成 - データ管理編 -
#UENagoya


# Page. 50

![Page Image](https://bcdn.docswell.com/page/PEXPVQW87X.jpg)

基本編ですること
Editor Utility 機能を使って
シーケンサーアセット（ Level Sequence ）を 自動的に生成・構築
#UENagoya


# Page. 51

![Page Image](https://bcdn.docswell.com/page/3EKDQ9VLJD.jpg)

Editor Utility
UE5上で動作する便利ツール や
エディタ拡張を実装するための標準機能
BP, C++, Python に対応
ツールのUIは UMGで構築できるため
非エンジニアにも優しい
既に多くのドキュメント・解説記事が
あるので今回は説明を割愛
https://cgworld.jp/regular/202401-ue5tool-02.html
#UENagoya


# Page. 52

![Page Image](https://bcdn.docswell.com/page/L73RPWM6J5.jpg)

おすすめリンク
公式ドキュメント
https://docs.unrealengine.com/5.3/ja/scripting-and-automating-the-unreal-editor/
https://docs.unrealengine.com/5.3/ja/editor-utility-widgets-in-unreal-engine/
UE5：Editor Utilityを活用したツール制作術 ( CG WORLD )
https://cgworld.jp/regular/unreal_engine_5_editor_utility/
UE5 ブループリントでツールをつくる本 - 入門編 https://zenn.dev/pokotaro/books/ce31aff7a884d1
Unreal Engine Editor Utility Widget | エディタ拡張 ( UE5攻略リンク )
https://ue5study.com/unrealengine-editorutility/
#UENagoya


# Page. 53

![Page Image](https://bcdn.docswell.com/page/87DYLK6M7G.jpg)

Sequencer と Python
シーケンサーでの Python スクリプティング
https://docs.unrealengine.com/5.3/ja/python-scripting-in-sequencer-in-unreal-engine/
公式サンプル集
Engine/Plugins/MovieScene/SequencerScripting/Content/Python
kezzardrix/UE4のPython Sequencer Scriptingの基本
https://gist.github.com/kezzardrix/8514eda83691efb348c3ab0a1ffef9ac
20tab/UnrealEnginePython
https://github.com/20tab/UnrealEnginePython/tree/master/examples
#UENagoya


# Page. 54

![Page Image](https://bcdn.docswell.com/page/VJP62KYQE8.jpg)

シーケンサーの自動生成 - 基本編 1.
2.
3.
4.
5.
Level Sequence アセットを作成
キャラクターを追加
移動アニメーションを再生
指定のポイント間を移動
作成・編集したアセットを保存
#UENagoya


# Page. 55

![Page Image](https://bcdn.docswell.com/page/2EV3DVGP7Q.jpg)

Level Sequence アセットを作成
Level Sequence Factory New
Level Sequence
#UENagoya


# Page. 56

![Page Image](https://bcdn.docswell.com/page/57G3YL8QJL.jpg)

Construct Level Sequence Factory New ノードのつくりかた
#UENagoya


# Page. 57

![Page Image](https://bcdn.docswell.com/page/4EQ5MY9WJP.jpg)

Tips :
Create Unique Asset Nameノードを使うと、既にある既存ファイルとは
重複しないファイル名を取得可能 ( 過去に解説した記事 )
#UENagoya


# Page. 58

![Page Image](https://bcdn.docswell.com/page/KJ49VWX171.jpg)

#UENagoya


# Page. 59

![Page Image](https://bcdn.docswell.com/page/LE1K3YN5JG.jpg)

Tips：
自動生成ではなく、
現在開いているLevelSequenceに対して処理を実行したい場合は
Get Current Level Sequenceノードを使う
#UENagoya


# Page. 60

![Page Image](https://bcdn.docswell.com/page/GEWDPG4WJ2.jpg)

シーケンサーの自動生成 - 基本編 1.
Level Sequence アセットを作成
2. キャラクターを追加
3.
4.
5.
移動アニメーションを再生
指定のポイント間を移動
作成・編集したアセットを保存
#UENagoya


# Page. 61

![Page Image](https://bcdn.docswell.com/page/47ZGKL22E3.jpg)

#UENagoya


# Page. 62

![Page Image](https://bcdn.docswell.com/page/YJ6YQM667V.jpg)

Skeletal Mesh Actor の Spawnable Track を追加
Add Spawnable from Class ノードを使って
指定クラスのActor のTrack を Spawnable 設定で追加
Skeletal Mesh Actor
#UENagoya


# Page. 63

![Page Image](https://bcdn.docswell.com/page/GJ5GRZ65J4.jpg)

Skeletal Mesh Actor の Spawnable Track を追加
Skeletal Mesh が空
#UENagoya


# Page. 64

![Page Image](https://bcdn.docswell.com/page/9E2YDRMGER.jpg)

Skeletal Mesh を設定
Get Object Template ノードの結果を編集することで
追加した Track のデフォルト値を変更
Movie Scene Binding Proxy Structure
#UENagoya


# Page. 65

![Page Image](https://bcdn.docswell.com/page/D7YG2DXG7M.jpg)

Skeletal Mesh を設定
#UENagoya


# Page. 66

![Page Image](https://bcdn.docswell.com/page/VENG8618J8.jpg)

Add Spawnable from Instance ノードの場合
動的に生成したActor を Spawnable Track として追加可能
EditorUtilityからSpawnしたActorを取り除かないと
レベル上に残り続けるため
#UENagoya


# Page. 67

![Page Image](https://bcdn.docswell.com/page/Y79WKL5X73.jpg)

シーケンサーの自動生成 - 基本編 1.
2.
Level Sequence アセットを作成
キャラクターを追加
3. 移動アニメーションを再生
4.
5.
指定のポイント間を移動
作成・編集したアセットを保存
#UENagoya


# Page. 68

![Page Image](https://bcdn.docswell.com/page/G78NRXY9JD.jpg)

#UENagoya


# Page. 69

![Page Image](https://bcdn.docswell.com/page/L7LPK84MJR.jpg)

Add Track ノード で アニメーション再生用Trackを追加
Trackのみで、Sectionなどは空
Movie Scene SkeletalAnimation Track
#UENagoya


# Page. 70

![Page Image](https://bcdn.docswell.com/page/4EM426K6JW.jpg)

Add Section ノードで追加したセクションを編集
Section を末尾まで伸ばす
アニメーション再生用
Section の パラメータを設定
#UENagoya


# Page. 71

![Page Image](https://bcdn.docswell.com/page/PERWMPXNJ9.jpg)

Set End Frame Bounded, Set End Frame ( Seconds ) ノード
Add Section のみだと 長さが 0 フレームしかないため
セクションを伸ばす必要がある
#UENagoya


# Page. 72

![Page Image](https://bcdn.docswell.com/page/P7XPV368JX.jpg)

Section の長さを調整するノード
#UENagoya


# Page. 73

![Page Image](https://bcdn.docswell.com/page/37KDQY1LED.jpg)

再生するアニメーションアセットを設定
アニメーション再生用Sectionのプロパティ（Params) から設定
#UENagoya


# Page. 74

![Page Image](https://bcdn.docswell.com/page/LJ3RP9Q6E5.jpg)

再生するアニメーションアセットを設定
アニメーション再生用Sectionのプロパティ（Params) から設定
#UENagoya


# Page. 75

![Page Image](https://bcdn.docswell.com/page/8JDYLG9MJG.jpg)

#UENagoya


# Page. 76

![Page Image](https://bcdn.docswell.com/page/VEP623ZQ78.jpg)

シーケンサーの自動生成 - 基本編 1.
2.
3.
Level Sequence アセットを作成
キャラクターを追加
移動アニメーションを再生
4. 指定のポイント間を移動
5.
作成・編集した Level Sequenceアセットを保存
#UENagoya


# Page. 77

![Page Image](https://bcdn.docswell.com/page/27V3D4WPJQ.jpg)

指定のポイント間を移動
1.
2.
Transform Track、Sectionを追加
Location.X/Y/Z , Rotation.X/Y/Z , Scale.X/Y/Z の
合計 9 個の Key を追加 ( Transform・Vector・Rotation Keyはない ）
#UENagoya


# Page. 78

![Page Image](https://bcdn.docswell.com/page/5JG3Y1DQEL.jpg)

Transform Track、Sectionを追加
追加したSpawnable Trackに対して
Add Track, Section ▶ 追加したセクションの長さを調整
Movie Scene 3D Transform Track
#UENagoya


# Page. 79

![Page Image](https://bcdn.docswell.com/page/47Q5MD1WEP.jpg)

Transform Section が持つ各Channelを取得
Get Channels by Type ノード
または Get All Channels ノードにより、Section から Channelを取得
Movie Scene Scripting Double Channel
#UENagoya


# Page. 80

![Page Image](https://bcdn.docswell.com/page/KE49VZR1J1.jpg)

9 個の
Double Channel
Double Channel :
Channel Name = Location.x
#UENagoya


# Page. 81

![Page Image](https://bcdn.docswell.com/page/L71K3RQ5EG.jpg)

Double Channel ( Location.X ) に対して
0 フレーム目に
Key ( 0.0f ) 追加
50 フレーム目に
Key ( 0.0f ) 追加
#UENagoya


# Page. 82

![Page Image](https://bcdn.docswell.com/page/G7WDP1MWE2.jpg)

#UENagoya


# Page. 83

![Page Image](https://bcdn.docswell.com/page/4JZGKPQ273.jpg)

関数化するとしたら…（つらい
#UENagoya


# Page. 84

![Page Image](https://bcdn.docswell.com/page/YE6YQMN6JV.jpg)

PG向け : エンジン内で用意されている C++ 関数
Transformとフレーム数の配列を渡せば Transform Keyを追加してくれる関数
bool MovieSceneToolHelpers ::AddTransformKeys (
const UMovieScene3DTransformSection * InTransformSection,
const TArray&lt;FFrameNumber &gt;&amp; Frames,
const TArray&lt;FTransform&gt;&amp; InLocalTransforms,
const EMovieSceneTransformChannel &amp; InChannels)
注意：フレーム数( FFrameNumber )を変換する必要あり
FFrameRate::TransformTime(KeyTime,
UMovieSceneSequenceExtensions::GetDisplayRate(Sequence.Get()),
UMovieSceneSequenceExtensions::GetTickResolution(Sequence.Get())).RoundToFrame();
#UENagoya


# Page. 85

![Page Image](https://bcdn.docswell.com/page/GE5GRZ55E4.jpg)

BPノード化がオススメ！
bool UMyEditorBlueprintFunctionLibrary ::AddTransformKeys (
const UMovieScene3DTransformSection * InTransformSection,
const TArray&lt;FFrameNumber &gt;&amp; InFrames,
const TArray&lt;FTransform &gt;&amp; InLocalTransforms)
{
TArray&lt;FFrameNumber &gt; TransformedFrames;
const UMovieScene * MovieScene = InTransformSection-&gt; GetTypedOuter &lt;UMovieScene &gt;();
for (const FFrameNumber &amp; Frame : InFrames)
{
FFrameTime KeyTime =
FFrameRate ::TransformTime (FFrameTime (Frame),
MovieScene-&gt; GetDisplayRate (), MovieScene-&gt; GetTickResolution ()).RoundToFrame ();
TransformedFrames. Add(KeyTime. FrameNumber );
}
return MovieSceneToolHelpers ::AddTransformKeys (InTransformSection,
TransformedFrames, InLocalTransforms, EMovieSceneTransformChannel ::AllTransform );
}
#UENagoya


# Page. 86

![Page Image](https://bcdn.docswell.com/page/972YDRNG7R.jpg)

シーケンサーの自動生成 - 基本編 1.
2.
3.
4.
Level Sequence アセットを作成
キャラクターを追加
移動アニメーションを再生
指定のポイント間を移動
5. 作成・編集した Level Sequenceアセットを保存
#UENagoya


# Page. 87

![Page Image](https://bcdn.docswell.com/page/DJYG2DPGJM.jpg)

Save Loaded Asset ノードで生成・編集したアセットを保存
LSの
編集処理
#UENagoya


# Page. 88

![Page Image](https://bcdn.docswell.com/page/V7NG8658E8.jpg)

ここまでの成果
#UENagoya


# Page. 89

![Page Image](https://bcdn.docswell.com/page/YJ9WKLYXJ3.jpg)

ここまでの内容だけでもいろいろできる！
#UENagoya


# Page. 90

![Page Image](https://bcdn.docswell.com/page/GJ8NRX69ED.jpg)

お品書き
1.
2.
3.
4.
シーケンサーの基本機能・データ構造について
シーケンサーの自動生成 - 基本編 シーケンサーの自動生成 - 特殊Track編 シーケンサーの自動生成 - データ管理編 -
#UENagoya


# Page. 91

![Page Image](https://bcdn.docswell.com/page/LJLPK89MER.jpg)

シーケンサーの自動生成 特殊Track編
●
●
●
●
●
プロパティ系 Track
Component の Track
Camera Cut Track
Shot, Subscene Track
Event Track
#UENagoya


# Page. 92

![Page Image](https://bcdn.docswell.com/page/47M426Z6EW.jpg)

String型プロパティ「Test」の Track を追加
Set Property Name and Path
自作BP
Movie Scene String Track
#UENagoya


# Page. 93

![Page Image](https://bcdn.docswell.com/page/P7RWMP6NE9.jpg)

Movie Scene Scripting String
Channel
#UENagoya


# Page. 94

![Page Image](https://bcdn.docswell.com/page/PJXPV3M8EX.jpg)

#UENagoya


# Page. 95

![Page Image](https://bcdn.docswell.com/page/3JKDQYGL7D.jpg)

Set Property Name and Path ノード
Actor/Componetが持つプロパティ と
プロパティ系Track を紐づけ
BP
Track
#UENagoya


# Page. 96

![Page Image](https://bcdn.docswell.com/page/LE3RP9N675.jpg)

Set Property Name and Path ノード の Property Path ピン
プロパティの内部実装名（ Internal Name ）を指定
構造体の場合は 【構造体名】.【プロパティのInternal Name】
FocusSettings.
ManualFocusDistance
Cineカメラコンポーネントが持つプロパティ
#UENagoya


# Page. 97

![Page Image](https://bcdn.docswell.com/page/8EDYLGWMEG.jpg)

Trackをコピーした際のテキストデータにも記載あり
Begin Object
Class=/Script/Sequencer.MovieSceneCopyableB
inding Name=&quot;MovieSceneCopyableBinding_3&quot;
…
UniqueTrackName=&quot;FocusSettings.ManualFocus
Distance&quot;
PropertyBinding=(PropertyName=&quot;ManualFocusD
istance&quot;,PropertyPath=&quot;FocusSettings.ManualFo
cusDistance &quot;,bCanUseClassLookup=True)
Sections(0)=&quot;/Script/MovieSceneTracks.MovieS
ceneFloatSection&#039;MovieSceneFloatSection_0&#039;&quot;
#UENagoya


# Page. 98

![Page Image](https://bcdn.docswell.com/page/V7P6239QJ8.jpg)

余談： UE5.3 から Text 型 も Sequencerで制御可能に
MovieScene
TextTrack
Textなので、
ローカライズ対応
できるのが嬉しい！
ただし、
UE5.3時点では
BPから
自動生成できず…
#UENagoya


# Page. 99

![Page Image](https://bcdn.docswell.com/page/2JV3D4MPEQ.jpg)

TArray&lt;UMovieSceneScriptingChannel *&gt; UMovieSceneSectionExtensions::GetChannelsByType (UMovieSceneSection * Section,
TSubclassOf&lt;UMovieSceneScriptingChannel &gt; ChannelType)
{
…
// ToDo: This needs to be done dynamically in the future but there&#039;s not a good way to do that right now with all of the SFINAE-based Templating
driving these channels
TWeakObjectPtr &lt;UMovieSceneSequence &gt; Sequence = Section-&gt;GetTypedOuter &lt;UMovieSceneSequence &gt;();
if (ChannelType == UMovieSceneScriptingBoolChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneBoolChannel , UMovieSceneScriptingBoolChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingByteChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneByteChannel , UMovieSceneScriptingByteChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingFloatChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneFloatChannel , UMovieSceneScriptingFloatChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingDoubleChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneDoubleChannel , UMovieSceneScriptingDoubleChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingIntegerChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneIntegerChannel , UMovieSceneScriptingIntegerChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingStringChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneStringChannel , UMovieSceneScriptingStringChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingEventChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneEventChannel , UMovieSceneScriptingEventChannel &gt;(ChannelProxy, Sequence, Section, Channels); }
else if (ChannelType == UMovieSceneScriptingActorReferenceChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneActorReferenceData , UMovieSceneScriptingActorReferenceChannel &gt;(ChannelProxy, Sequence, Section,
Channels); }
else if (ChannelType == UMovieSceneScriptingObjectPathChannel::StaticClass ())
{ GetScriptingChannelsForChannel &lt;FMovieSceneObjectPathChannel , UMovieSceneScriptingObjectPathChannel &gt;(ChannelProxy, Sequence, Section, Channels);
}
else
{
FFrame::KismetExecutionMessage (TEXT(&quot;Unsupported ChannelType for FindChannelsByType!&quot; ), ELogVerbosity::Error );
}
return Channels;
}
#UENagoya


# Page. 100

![Page Image](https://bcdn.docswell.com/page/5EG3Y1GQ7L.jpg)

シーケンサーの自動生成 特殊Track編
●
プロパティ系 Track
● Component の Track
●
●
●
Camera Cut Track
Shot, Subscene Track
Event Track
#UENagoya


# Page. 101

![Page Image](https://bcdn.docswell.com/page/4JQ5MDXW7P.jpg)

Component の Track
Component が
Object Binding の対象である
Possessable Track
既にレベル上に存在することを
前提とした実装になっているため、
自動生成時は少々面倒なことに
（より良い方法あったら知りたい…
#UENagoya


# Page. 102

![Page Image](https://bcdn.docswell.com/page/K749VZ61E1.jpg)

ComponentのTrackを追加する方法
① Componentを持つActorをSpawn ▶ LSに追加
③ Spawn した Actor を削除
② Componentを Possesable として追加し
Actor の Object Binding と親子付け
#UENagoya


# Page. 103

![Page Image](https://bcdn.docswell.com/page/LJ1K3RV57G.jpg)

Destoryしたはずの Actor の Track が残る問題
#UENagoya


# Page. 104

![Page Image](https://bcdn.docswell.com/page/GJWDP1LW72.jpg)

Remove ノード で 不要になったTrackを削除
① Component Track 追加時に自動生成された
親TrackのObject Binding 情報を取得
② 親TrackのBinding情報を削除。この時点でTrackは消えるが
レベル上のActorは消えないため、Destroy Actorは必要 #UENagoya


# Page. 105

![Page Image](https://bcdn.docswell.com/page/4EZGKPM2J3.jpg)

例：Cina Camera Actor の 焦点距離のプロパティのTrackを自動生成
Set Property Name and Path
Path = FocusSettings.ManualFocusDistance
#UENagoya


# Page. 106

![Page Image](https://bcdn.docswell.com/page/Y76YQM56EV.jpg)

シーケンサーの自動生成 特殊Track編
●
●
プロパティ系 Track
Component の Track
● Camera Cut Track
●
●
Shot, Subscene Track
Event Track
#UENagoya


# Page. 107

![Page Image](https://bcdn.docswell.com/page/G75GRZY574.jpg)

Camera Cut Track
シーケンサーのカメラ制御を行う専用Track
既に登録されたCamera系ActorのTrackを設定する必要あり
#UENagoya


# Page. 108

![Page Image](https://bcdn.docswell.com/page/9J2YDRGGJR.jpg)

Camera Cut Track の生成・セットアップ
Cine Camera Actor の
Track 追加処理
Camera Cut Track に Cine Camera を設定
Get Binding ID -&gt; Set Camera Binding ID
Movie Scene
Camera Cut Track
#UENagoya


# Page. 109

![Page Image](https://bcdn.docswell.com/page/DEYG2DVGEM.jpg)

シーケンサーの自動生成 特殊Track編
●
●
●
プロパティ系 Track
Component の Track
Camera Cut Track
● Shot, Subscene Track
● Event Track
#UENagoya


# Page. 110

![Page Image](https://bcdn.docswell.com/page/VJNG86M878.jpg)

他 Level Sequence を組み込むための 専用Track
Shot Track
映像制作における
カットを管理するもの
https://docs.unrealengine.com/5.3/ja/sequences-shots-and-takes-in-unreal-engine/
SubScene Track
1つのカットを
複数人で同時作業する
ためのもの
#UENagoya
https://docs.unrealengine.com/5.3/ja/cinematic-subscequences-track-in-unreal-engine/


# Page. 111

![Page Image](https://bcdn.docswell.com/page/YE9WKLNXE3.jpg)

#UENagoya
https://www.docswell.com/s/EpicGamesJapan/5XP4YZ-UE4_GCC19_Sequencer_LatestInfoAndTips#p81


# Page. 112

![Page Image](https://bcdn.docswell.com/page/GE8NRXK97D.jpg)

Shot, Subscene Track の 追加、LSの登録
Movie Scene
Cinematic Shot Track
Movie Scene
Sub Track
Set Sequence ノードで
Track に LS を登録
#UENagoya


# Page. 113

![Page Image](https://bcdn.docswell.com/page/LELPK8ZM7R.jpg)

Shot, Subscene Track の 追加、LSの登録
#UENagoya


# Page. 114

![Page Image](https://bcdn.docswell.com/page/4JM426V67W.jpg)

シーケンサーの自動生成 特殊Track編
●
●
●
●
プロパティ系 Track
Component の Track
Camera Cut Track
Shot, Subscene Track
● Event Track
#UENagoya


# Page. 115

![Page Image](https://bcdn.docswell.com/page/PJRWMP2N79.jpg)

Event Track
Level Sequence 毎に存在する専用BP (Director BP) が持つ
イベント・関数を実行するTrack
#UENagoya


# Page. 116

![Page Image](https://bcdn.docswell.com/page/PEXPV3D87X.jpg)

Actor・Component Track でも
Event Trackを使用可能
呼び出したい関数・イベントを
Director BP に自動追加・配置
#UENagoya


# Page. 117

![Page Image](https://bcdn.docswell.com/page/3EKDQYXLJD.jpg)

実行する関数・イベントに渡すパラメータを
Level Sequence側で設定可能 ( Payload )
Directo BP のイベント
#UENagoya


# Page. 118

![Page Image](https://bcdn.docswell.com/page/L73RP956J5.jpg)

Event Trackの自動生成における課題
●
●
●
実行する関数・イベントをDirector BPに自動追加するには？
実行する関数・イベントの引数（Payload）はどう設定すれば？
Director BPを汎用化するにはどうすれば？
#UENagoya


# Page. 119

![Page Image](https://bcdn.docswell.com/page/87DYLGDM7G.jpg)

実行する関数・イベントをDirector BPに自動追加するには？
Create Quick Binding、Create Event ノードを使う！
#UENagoya


# Page. 120

![Page Image](https://bcdn.docswell.com/page/VJP623XQE8.jpg)

実行する関数・イベントの引数（Payload）の設定方法
In Objectに指定したものが持つ
SetActorScale3D関数を指定
#UENagoya


# Page. 121

![Page Image](https://bcdn.docswell.com/page/2EV3D4LP7Q.jpg)

DirectorBPへのイベント追加 と Event Key の追加を実現
#UENagoya


# Page. 122

![Page Image](https://bcdn.docswell.com/page/57G3Y1XQJL.jpg)

Payloadの書き方
Event Trackをコピーして
テキストにペーストすると…
PayloadVariables =
((&quot;Bool&quot;, (Value=&quot;True&quot;)),
(&quot;Int&quot;, (Value=&quot;1&quot;)),
(&quot;String&quot;, (Value=&quot;Test&quot;)),
(&quot;Vector&quot;,(Value=&quot;1.000000,2.000000,3.000000&quot;)))
#UENagoya


# Page. 123

![Page Image](https://bcdn.docswell.com/page/4EQ5MD8WJP.jpg)

Create Quick Bindingの問題 その1
In Objectに
LevelSequence を 指定しても機能しない
Director BPがもともと持つ
イベント・関数を Key として使えない
Create Quick Bindingの
改変ノードをC++で自作すれば解決（記事
作成中…
#UENagoya


# Page. 124

![Page Image](https://bcdn.docswell.com/page/KJ49VZ2171.jpg)

Create Quick Bindingの問題 その2
指定した関数名が同じであっても
Create Quick Bindingを実行するたびに
イベントノードが自動生成・追加される問題
近日中に記事を公開予定
返り値のEndPointを使い回せば、暫定的に回避可能
#UENagoya


# Page. 125

![Page Image](https://bcdn.docswell.com/page/LE1K3RM5JG.jpg)

Event Trackの自動生成における課題
●
●
実行する関数・イベントをDirector BPに自動追加するには？
実行する関数・イベントの引数（Payload）はどう設定すれば？
● Director BPを汎用化するにはどうすれば？
汎用化したい・課題になる理由
-
一時停止、分岐処理など、LS間で共通化したい処理は多い
共通処理の実行用Actorを使うのは楽だが、スマートなやり方ではない
共通処理をDirector BPの基底クラスにまとめたいが
基底クラスの変更が少々面倒（ 参考記事 その1, その2 )
#UENagoya


# Page. 126

![Page Image](https://bcdn.docswell.com/page/GEWDP13WJ2.jpg)

Director BPの基底クラスを変更するノードをつくってみました
UBlueprint * UMyEditorBlueprintFunctionLibrary ::SetDirectorBlueprint (ULevelSequence * LevelSequence,
UBlueprint * BaseDirectorBlueprint)
{
UBlueprint * NewDirectorBlueprint = nullptr ;
if(LevelSequence &amp;&amp; BaseDirectorBlueprint)
{
NewDirectorBlueprint = FKismetEditorUtilities ::CreateBlueprint (BaseDirectorBlueprint-&gt; GeneratedClass , LevelSequence,
FName(*LevelSequence-&gt; GetDirectorBlueprintName ()), BPTYPE_Normal , UBlueprint ::StaticClass (),
UBlueprintGeneratedClass ::StaticClass ());
NewDirectorBlueprint-&gt; ClearFlags (RF_Standalone );
LevelSequence-&gt; SetDirectorBlueprint (NewDirectorBlueprint);
LevelSequence-&gt; MarkPackageDirty ();
UObject * AssetObject = LevelSequence;
while (AssetObject)
{
if (AssetObject-&gt; IsAsset ())
{
break;
}
AssetObject = AssetObject-&gt; GetOuter ();
}
if (AssetObject)
{
FBlueprintActionDatabase ::Get().RefreshAssetActions (AssetObject);
}
}
return NewDirectorBlueprint;
}
参考：
-
FMovieSceneSequenceEditor_LevelSe
quence::CreateBlueprintForSequence
FMovieSceneSequenceEditor::GetOrCr
eateDirectorBlueprint
#UENagoya


# Page. 127

![Page Image](https://bcdn.docswell.com/page/47ZGKPV2E3.jpg)

お品書き
1.
2.
3.
4.
シーケンサーの基本機能・データ構造について
シーケンサーの自動生成 - 基本編 シーケンサーの自動生成 - 特殊Track編 シーケンサーの自動生成 - データ管理編 -
#UENagoya


# Page. 128

![Page Image](https://bcdn.docswell.com/page/YJ6YQMY67V.jpg)

シーケンサーの自動生成とは？
設定ファイル や スクリプトなどから
シーケンサーアセット（ Level Sequence ）を 自動的に生成・構築すること
#UENagoya


# Page. 129

![Page Image](https://bcdn.docswell.com/page/GJ5GRZG5J4.jpg)

シーケンサーの自動生成とは？
設定ファイル や スクリプトなどから
シーケンサーアセット（ Level Sequence ）を 自動的に生成・構築すること
#UENagoya


# Page. 130

![Page Image](https://bcdn.docswell.com/page/LE3RP9R575.jpg)

基本的な流れ
1.
2.
3.
自動生成に関するコマンドを用意
1で用意したコマンドやルールに基づいて、スクリプト・データを用意
UE側：2を読み込み、その内容を元にコマンドを実行（ = LSを自動生成）
Add Character (00)
Character :
00_グレイマン
Animation : Walk
Start : Point 00
Stop : Point 01
Frame : 0 - 100
Add Animation (Walk)
Add Transform (100, 100, 0)
Add Transform (100, 200, 0)
Character ID :
01_マニー
#UENagoya


# Page. 131

![Page Image](https://bcdn.docswell.com/page/8EDYLGYYEG.jpg)

基本的な流れ
1.
2.
3.
自動生成に関するコマンドを用意
1で用意したコマンドやルールに基づいて、スクリプト・データを用意
DCCツールからスクリプト・データを生成
UE側：2を読み込み、その内容を元にコマンドを実行（ = LSを自動生成）
Set Skeletal Mesh (00)
Character :
00_グレイマン
Animation : Walk
Start : Point 00
Stop : Point 01
Frame : 0 - 100
Add Animation (Walk)
Add Transform (100, 100, 0)
Add Transform (100, 200, 0)
#UENagoya


# Page. 132

![Page Image](https://bcdn.docswell.com/page/V7P62362J8.jpg)

「設定ファイル や スクリプトなど」の例
UEアセット
●
●
Data Table
Data Asset
ローカルファイル
●
●
CSV
テキストファイル (.json など）
オンライン
●
●
Google スプレッドシート
Notion
#UENagoya


# Page. 133

![Page Image](https://bcdn.docswell.com/page/2JV3D43XEQ.jpg)

DataTable・DataAsset（既に沢山資料があるので詳細は割愛）
DataAsset 詳細パネルでデータ管理
DataTable 表形式でデータを管理csv
と json を入出力可能
自由度は高いが、外部データへの変換機
能は自前で用意する必要がある
#UENagoya


# Page. 134

![Page Image](https://bcdn.docswell.com/page/5EG3Y13R7L.jpg)

Instanced Object （Struct）でコマンドを実装するのがオススメ！
パラメータが異なるものを
#UENagoya
同じ配列で管理できるのが便利！


# Page. 135

![Page Image](https://bcdn.docswell.com/page/4JQ5MD5Y7P.jpg)

エディタのUXを向上させる
Unreal C++との付き合い方
#UENagoya


# Page. 136

![Page Image](https://bcdn.docswell.com/page/K749VZ9ZE1.jpg)

UEアセットをソースにする メリット・デメリット
メリット
●
●
UE内で作業が完結
自動生成の呼び出し実装が楽
デメリット
●
●
UEにある程度慣れている必要がある
（学習コスト問題）
作業効率を上げるために専用エディタを
自作する必要があるかもしれない
#UENagoya


# Page. 137

![Page Image](https://bcdn.docswell.com/page/LJ1K3RKD7G.jpg)

「設定ファイル や スクリプトなど」の例
UEアセット
●
●
Data Table
Data Asset
ローカルファイル
●
●
CSV
テキストファイル (.json など）
オンライン
●
●
Google スプレッドシート
Notion
#UENagoya


# Page. 138

![Page Image](https://bcdn.docswell.com/page/GJWDP1D872.jpg)

CSV
カンマ区切りで管理する
データフォーマット
Excelで編集・出力可能なので
扱いに慣れている人が多い
UEでは CSV を 読み取って
DataTableを更新する形で利用可能
-
公式ドキュメント
【UE4】DataTableの使い方-その①
～基本編～【★～★★】
ID,Parent,Command,Param 0,Param 1,Param
2,
0,,キャラクター ,00-Grayman,,,
1,0,アニメーション再生 ,Walk,,,
2,0,Transform 設定,0,0,,
3,0,Transform 設定,50,1,,
#UENagoya


# Page. 139

![Page Image](https://bcdn.docswell.com/page/4EZGKPG9J3.jpg)

Json
テキスト形式の
データフォーマット
扱いやすく人気があり
多くのツールが対応している
BPでも扱うことが可能！
-
【UE5】Json Blueprint Utilities
プラグインを活用する
Unreal Engine Json（UE5攻略
リンク）
{
&quot;Commands&quot;: [
{
&quot;Command&quot;: &quot;AddCharacter&quot;,
&quot;Type&quot;: &quot;00_Grayman&quot;,
&quot;Commands&quot;: [
{
&quot;Command&quot;: &quot;AddAnimation&quot;,
&quot;Animation&quot;: &quot;00_Grayman&quot;,
},
{
&quot;Command&quot;: &quot;AddTransform&quot;,
&quot;Frame&quot;: &quot;0&quot;,
&quot;Transform&quot; :
{
#UENagoya


# Page. 140

![Page Image](https://bcdn.docswell.com/page/Y76YQMYDEV.jpg)

CSV
●
Excelという強力な編集エディタを使える
○
●
その反面、Excelの呪いも受ける
データの入力ルールの策定や
入力支援機能の準備にコストがかかる
Json
●
●
様々なツールと連携しやすい
直接編集するのは不便なため、
Jsonを編集 or 出力するツールが必要
#UENagoya


# Page. 141

![Page Image](https://bcdn.docswell.com/page/G75GRZG874.jpg)

「設定ファイル や スクリプトなど」の例
UEアセット
●
●
Data Table
Data Asset
ローカルファイル
●
●
CSV
テキストファイル (.json など）
オンライン
●
●
Google スプレッドシート
Notion
#UENagoya


# Page. 142

![Page Image](https://bcdn.docswell.com/page/9J2YDRYVJR.jpg)

Google スプレッドシート
Excel・CSVと同じく
表形式で編集・管理
オンライン上に
データがあるのが大きな強み！
Runtime DataTable
UEから直接アクセス可能
https://www.unrealengine.com/marketplace/ja
/product/runtime-datatable
#UENagoya


# Page. 143

![Page Image](https://bcdn.docswell.com/page/DEYG2DGQEM.jpg)

Notion
様々なツールに分散していた役割を
統合したオンラインサービス
個人でも会社でも活用中！
Notionはいいぞ
公式のNotion APIを実行することで
ページ内の情報を Json で取得可能
https://developers.notion.com/reference/intro
#UENagoya


# Page. 144

![Page Image](https://bcdn.docswell.com/page/VJNG86G278.jpg)

Googleスプレッドシート
●
●
●
強力な編集エディタを使える
直接アクセス可能なため、DL ▶ 変換作業が不要
CSVと同じく、データ編集ルールと支援機能の問題がある
Notion
●
●
ドキュメントやタスク管理といった
Notionの各機能と連携できる
カスタマイズに限界があり、融通が利かない部分もある
#UENagoya


# Page. 145

![Page Image](https://bcdn.docswell.com/page/YE9WKLWDE3.jpg)

UEアセット
●
●
Data Table
Data Asset
ファイル
●
●
CSV
テキストファイル (.json など）
オンライン
●
●
Google スプレッドシート
Notion
どのプロジェクトにおいても
ベストな方法は無い
ワークフロー、作業環境、
人員構成などを考慮しつつ、
何が最適な方法なのかを
検証する必要がある
#UENagoya


# Page. 146

![Page Image](https://bcdn.docswell.com/page/GE8NRXN57D.jpg)

参考資料
スクリプトに関して
UE4と融合されたスクリプトシステム！「Caligula2」イベントシーン開発事例【UNREAL
FEST EXTREME 2021 WINTER】
UEとNotionの連携に関して
AIR-Plateによる空間情報記述の新手法について【UNREAL FEST WEST ’22】
#UENagoya


# Page. 147

![Page Image](https://bcdn.docswell.com/page/LELPK8P37R.jpg)

本日のまとめ
シーケンサーを自動生成するには、まず基本機能・データ構造の把握から
●
●
Track, Section, Channel, Key
Object Binding, Possessable, Spawnable
少し手数は多いものの、
BPのみで シーケンサーの自動生成は可能！（C++が使えると更に楽に）
自動生成のソースデータは様々な選択肢があるが
プロジェクトに最適な方法を自身で検証・決定する必要がある
#UENagoya


# Page. 148

![Page Image](https://bcdn.docswell.com/page/4JM4264M7W.jpg)

自動生成で作業効率をあげて
楽しい・重要な作業に
時間をもっと使っていきましょう！
おしまい
#UENagoya


