勉強会のレポート(メモ)です。
参加したのはこちら、「Unity道場6月〜新しいPrefabワークフロー入門とVectorGraphics〜」
会場はユニティ・テクノロジーズ・ジャパンさんです。
動画はこちら
1. 新しいPrefabワークフロー 入門
スライドはこちら
新しいプレハブワークフローは実質NestedPrefab(ネステッドプレハブ)です
これと和解できるのかどうかというお話を今回はします。
事前アンケート
2018.3以降使っている方は74.4%もいました。
新しいプレハブワークフローを理解している方は20%。
そもそもプレハブとは
インスタンスしたオブジェクトをアセット化する機能
これはアタッチしたコンポーネントなどもまとめてロードしてくれます
また、プレハブを参照して動的に生成することもできる
特徴
・またプレハブの大本を書き換えることで、全てのプレハブも更新できる
・分業しやすい
シーンに配置したプレハブはシーン内で値を変更するとユニークな値になり、
大本の変更を受けなくなる
プレハブの編集方法
2つあります
・シーンに配置後、変更してアプライ
・アセットエディターで編集
2018からプレハブの階層関係を作ることができるようになりました(ネスト)
これでプレハブを持ったプレハブを作ることができます
新機能 Variant
Variant(バリアント)プレハブでは普通のプレハブと同様、個別でパラメータを持たせることができるが、
これは変更してもハンドルが切れることなく、オリジナルの変更を受け取ることができるため、
マテリアルなどサクッと一括変更でき、手軽にキャラクターを量産できる。
ここまでが基本的な部分
ここからは修羅の道
NestedPrefabとハンドル
プレハブはIDしか持っておらず参照しているだけ(Unity4までは全部書き込んでいました)
パラメータを書き換えた時、差分となるその値だけ保持します。
これはNestedでも基本的に同じで、バリアントも基本は同じ。
Nestedではオブジェクト、コンポーネントの順番変更とオブジェクトの削除は追跡できず対応できない。
そのため大きく書き換えるときは、右クリックからUnpackPrefabでハンドルを解除しましょう。
ビルド時の動き
Nestedはビルドすると全部ベイクされます(IDを追っかけたりしない)
バリアントも同様。
参照してる(重複しているように見える)ことはあるが実際に格納されているわけではない。
NestedPrefabとの付き合い方
プレハブは必要な項目のみ変更、競合を起こさないように変更しましょう。
変更したパラメータにはは青いマーカーがつきます。
Apply時にどれが変更されているのか確認することがdけいます
プレハブエディターはアセットを直接変更するエディター
つまり差分などは生まれないため、どれを変更したのかが読めない。
そのため競合に注意。
YAML Marge
プレハブを構文的に解析して、競合を起こしている箇所だけをマージしてくれる機能
マイナーですがとてもいい機能です
プレハブエディターではApplyするな
階層構造を持つプレハブを編集した場合、
階層が浅いほど(親に近いほど)影響を受けにくく、深いほど影響が大きい。
なので影響をうけるものをできるだけ減らすようにしましょう。
(例えば、孫オブジェクトを変更した場合、それを参照している全ての親プレハブ、子プレハブに影響がでます)
そのためApplyしない方が無難
バリアントはぜひ使ってほしい
エディター拡張を使わなくても一括変更できます
キャラクターなどのモデル変換もバリアントを使いましょう。
ボーンの構造の変更やコライダーの変更も全て追跡してくれます。
バリアントを使う場合、バリアントであることがわかる名前にしておきましょう。
(V〇〇とか〇〇Variantのように)
なぜこんなにバリアントを推すのか
2018.3及び、2018.4では複数選択でプレハブの編集ができないため
(2019.1では復活します)
Unity2018.3~2018.4で複数のプレハブを編集したい場合どうするか
スクリプトを自作することでできます。
こちらも参考になります。
参考になりそうな資料
2. VectorGraphicsで作るエモい表現
スライドはこちら
エモい表現とは
動画で確認してみてください。
VectorGraphicsでできること
・SVGのインポート
・ランタイムのメッシュ生成
※2018.1以降での利用を推薦
パッケージマネージャーからインポートできます。
ベクターグラフィック
画像には2つあります。
ラスター形式:点が大量に並んで構成される。jpegやpngはこっち。
ベクター形式:位置や色を数値で記録したもの、引き延ばし時はラスタライズされるためきれい。
SVGのインポート
パッケージをインストールするとそのままD&Dするだけでプロジェクトに入ります。
昔は専用のアセットを使わないとインポートできなかったらしい。
普通のスプライトとの違い
SVGは元がテキストなのでとても軽い。
じゃあSVGはどこでも使えるかというとそうでもない。
複雑な形状を含まない画像と相性がよい、
ランタイムのメッシュ生成
詳しい手順は動画で確認してみてください。
単純で規則的な図形であればシェーダが速くて良いが、
式に落としにくいものや、有機的な表現であればVectorGraphicsでやるのがよい
エモいUI
こちらも動画がわかりやすいので確認してみてください。
動画編集ソフトとの比較
動画作品をつくるのであれば専用のソフトを使った方がいい。
ただ圧倒的に機能が足りていないため動画作品を作るときは専用ソフトを使った方がいい。
特定のエフェクトやローディング画面でのアクセントで使う分にはいいと思います。
懇親会
キタサァン・ランチ #unity道場 pic.twitter.com/IoZGkWqq3y
— キタ (@atasfrznnks) June 27, 2019
タイムライン
今月の #Unity道場 は、新しいPrefabワークフロー入門とVectorGraphicsです。参加お申込みはこちらから。 https://t.co/D9wnCirzuv pic.twitter.com/uSqsC5WqAk
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) June 12, 2019
本日のUnity道場はオンラインで視聴している方もアンケートに参加できます。ご回答いただいた方のうち抽選で一名様に、Asset Storeで使える$50のバウチャーコードをプレゼント! https://t.co/D9wnCirzuv #unity道場
— ユニティ・テクノロジーズ・ジャパン (@unity_japan) June 27, 2019
来た#Unity道場 pic.twitter.com/aDRWscFULN
— 神崎 (@kanthan258) June 27, 2019
そうそうNested Prefabって簡単にGameObjectの入れ替えができないんですのね(分解するためのメニューがある事を今知った)#Unity道場 pic.twitter.com/YItJVf0T2Q
— ザバイオーネ (@z_zabaglione) June 27, 2019
Nested PrefabではApplyは忘れろ。やるなら自分にだけ影響する範囲でやるべき(メニューでは一番上)#Unity道場 pic.twitter.com/f1FD79GMa5
— ザバイオーネ (@z_zabaglione) June 27, 2019
prefab複数選択から一括パラメーター更新ができないので、variantを使え
— すなぎも@睡眠大事 (@sunagimo2345) June 27, 2019
ただし、2019.1から更新可能!!!#unity道場
#unity道場
— 赤兎 (@RedRabbit_tw) June 27, 2019
NestedPrefab完全に理解した。
バリアントは継承、
ネストはメンバって感じかな。
それらのクラス的概念がわからない場合は今まで同様に使うのが良いんだろうなという所感。
ラスター形式は、サイズの増加と容量が一致するが、ベクター方式は、そうとは限らない #Unity道場
— ずきゅ~んたん (@ZuQ9Nn) June 27, 2019
あまりにエモすぎて、まさかのエロいといい間違えてしまうw#unity道場
— すなぎも@睡眠大事 (@sunagimo2345) June 27, 2019
#unity道場 に来るとエキスパートが相談に乗ってくれるのか〜 これはいいなあ〜 pic.twitter.com/jwZdmjuZ50
— 齋藤あきこ (@akiko_saito) June 27, 2019
過去のUnity道場まとめ
間違っている箇所がありましたらコメントにお願いします。