【Unity道場】AssetGraph入門...

79
1Made with Unity : ADAM AssetGraph 入門 山村 達彦

Transcript of 【Unity道場】AssetGraph入門...

Page 1: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

1

Mad

e w

ith U

nity

: A

DA

M

AssetGraph入門山村 達彦

Page 2: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

2

Page 3: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

3

予定● 前半

○ Asset Graphの紹介

○ AssetGraphの機能

● 後半

○ デモ(AssetBundleを作る)

○ デモ(設定の変更を作る)

○ デモ(Prefabのセットアップ)

Page 4: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

4

AssetGraphってなんぞや?

Page 5: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

5

Page 6: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

6

アセットのフローを改善するもの

● アセットの操作に特化したシステム

● 手作業のオペレーションを削減する

● 汎用的なノードの組み合わせで複雑な設定を表現

● C#で容易に拡張が可能

● 大量のファイル操作に強い

Page 7: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

7

アセットの一括生成。アセットの一括更新。アセットの一括バンドル化。

グラフィカルに。

Page 8: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

8

なんでそんなモンが必要に?

Page 9: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

9

Page 10: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

10

Page 11: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

11

Page 12: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

12

Page 13: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

13

A社 B社

C社

Page 14: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

14

「TextureからPrefab作る拡張、作れる?」

「お任せあれ」

「この前のアレなんだけど、 ちょっと設定を変えれる?」

「反応無いけど大丈夫? 出来たら連絡ヨロ」

「おーい?」

Page 15: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

15

拡張作るはプログラマ? 動作の修正にはプログラマが必要、もしくはどんな設定にも対応できるような汎用的な実装が必要(大変)

Page 16: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

16

Page 17: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

17

● アセット操作をコーディング無しに作成できる。ノードを作って接続していくだけで、必要なアセットを作成できる

● ビルドするときに、何が起こるのかがわかるグラフィカルに確認できる

● ルールベースでパイプラインを構築できる名前やパスといったルールで動作を定義できる

Page 18: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

18

ちなみに・・・

Page 19: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

19

2年前・・・

Page 20: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

20

AssetBundle Browser AssetBundle Graph Tool

AssetBundle Manager

Page 21: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

21

Page 22: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

22

AssetBundle Browser

アセットの登録や依存関係を視覚的に制御・確認できる

暗黙的なアセット参照の問題

AssetBundle Graph Tool

AssetBundleの生成をルールベースで一括処理する

複雑なアセット管理の面倒さ

Page 23: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

23

「このツールでPrefabとか作りたいんだけど、どうやるん?」

Page 24: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

24

Page 25: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

25

「ABGTでPrefabとかも作れたら便利だな」

「もういっそアセット制御全般に使おうぜ」

「それ、最早 ”AssetBundle” Graph Toolじゃなくね?」

「おk、名前を変えよう」

「Asset Flow Special Graph Toolとかどうよ?」

「ダサい」

「臭い」

「長い」

Page 26: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

26

Mad

e w

ith U

nity

: A

DA

M

Asset Graph Tool

Page 27: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

27

Asset Graph Toolの立ち位置

● オープンソースで展開(Github、Bitbacket)

Page 28: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

28

Asset Graph Toolの立ち位置

● オープンソースで展開(Github、Bitbacket)

● 標準ツールとしてPackman経由で配信予定

NavmeshPostProcessingStackUGUISRP

Unity Package Manager

Page 29: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

29

Asset Graph Toolの立ち位置

● オープンソースで展開(Github、Bitbacket)

● 標準ツールとしてPackman経由で配信予定

● 作ってるのは日本人

今なら要望には割と答えられるかもしれない

We need feedback

Page 30: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

30

Asset Graph Toolの立ち位置

● オープンソースで展開(Github、Bitbacket)

● 標準ツールとしてPackman経由で配信予定

● 作ってるのは日本人

今なら要望には割と答えられるかもしれない

● 別口の手動ワークフローとして Preset も出る

Page 31: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

31

AssetGraphには、どんな機能があるの?どうやって使うの?

Page 32: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

32

● ノードを繋いで処理を行う

● 処理の内容を確認できる

● アセットを監視し、変化したら処理を行う

● 複数のグラフを複数プラットフォーム向けにバッチ処理できる

機能概要

Page 33: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

33

ノードを繋いで処理を行う

Page 34: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

34

Page 35: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

35

見つける

操作対象を決める

抽出する

まとめる

アセットを作る

設定を書き換える

ビルドする

絞り込む 何かする

Page 36: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

36

見つける

スプライトフォルダから Textureを

抽出する

名前を元にまとめる

アニメーションを作る

絞り込む 何かする

Page 37: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

37

uWalk (01~14)

uRun (01~18)

uBrake (01~18)

Walk

Run

Brake

Page 38: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

38

uWalk (01~14)

uRun (01~18)

uBrake (01~18)

Walk

Run

Brake

Breake

RunBrake

u*

見つける 絞り込む 何かする

Page 39: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

39

uWalk (01~14)

uRun (01~18)

uBrake (01~18)

Walk

Run Brake

Breake

RunBrake

u*

Idle (01~6)Attack (01~6)

IdleAttack

IdleAttack

見つける 絞り込む 何かする

Page 40: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

40

Page 41: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

41

アセットを作る

設定を書き換える

ビルドする

何かする見つける

操作対象を決める

抽出する

まとめる

絞り込む

Page 42: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

42

アセットを作る

設定を書き換える

ビルドする

Page 43: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

43

アセットを作る

設定を書き換える

ビルドする

Page 44: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

44

アセットを作る

設定を書き換える

ビルドする

Page 45: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

45

DEMO

Page 46: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

46

アセットを変更したらPrefabにも反映

Page 47: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

47

操作対象を決めるノード

Page 48: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

48

Textureをインポートして

スプライト作って

Prefabを作る

Page 49: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

49

処理の内容を確認する

Page 50: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

50

基本な流れ(処理を確認する)

スプライトフォルダから Textureを

抽出する

名前を元にまとめる

アニメーションを作る

ちゃんと抽出できる?

設定は正しい?

ちゃんとグループ化できた?

Page 51: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

51

Page 52: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

52

処理したアセット一覧表示

Page 53: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

53

何か設定がおかしいアセットがある…

ログで確認 操作したノードをハイライト

Page 54: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

54

Page 55: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

55

各プラットフォーム向けにバッチ処理

Page 56: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

56

バッチ処理

Prefab設定のグラフ

Sprite構築のグラフ

AssetBundleビルドのグラフ

Page 57: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

57

グラフを登録して、 処理を実行する

Page 58: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

58

ドラッグ&ドロップ

Page 59: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

59

ビルドしたいプラットフォームを

指定

Page 60: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

60

$> sh -e buildassetbundle.sh -target WebGL MyGraphNameToRun

Page 61: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

61

● ノードを繋いで処理を行う

● 処理の内容を確認できる

● アセットを監視し、変化したら処理を行う

● 複数のグラフを複数プラットフォーム向けにバッチ処理できる

機能概要

Page 62: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

62

Page 63: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

63

Asset Graphの拡張

Page 64: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

64

● IModifier● IPostprocess● IFilter● IAssetGenerator● IPrefabBuilder● IAssetImporterConfigurator

Page 65: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

65

Page 66: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

66

Page 67: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

67

Page 68: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

68

Page 69: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

69

Page 70: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

70

Page 71: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

71

Page 72: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

72

Mad

e w

ith U

nity

: A

DA

M

後半に続く

Page 73: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

73

実際に使ってみる(AssetBundleを作る)

Page 74: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

74

実際に使ってみる(設定の変更)

Page 75: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

75

実際に使ってみる(Prefabのセットアップ)

Page 76: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

76

Mad

e w

ith U

nity

: G

ener

ativ

e A

rt

まとめ

Page 77: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

77

● AssetGraphはノードベースで一括操作するときに便利な機能

● なんか一括処理とかするやつはコレ使って楽しよう(提案

● ノードは割と簡単に拡張できる

● 将来的には標準化する予定

● 求む現場のフィードバック

まとめ

Page 78: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

78

Page 79: 【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜

79

Mad

e w

ith U

nity

: M

onum

ent V

alle

y 2

by u

stw

o G

ames

Thank you