DOTS VISUAL SCRIPTINGのお
試しバージョンを触ってみた
+闇の開発話(可能なら)
荻野雄季 @YUUKIOGINO
自己紹介
• 荻野雄季(おぎのゆうき)
• フリーランスのフロントエンジニア
• 諸事情でUnity案件から離れました
→9月のLTではっちゃけた件とは無関係です
• Twitter:YuukiOgino
UNITYのDOTS VISUAL
SCRIPTINGとは?
やさしさ
やさしさ
バブみ
※個人的な意見です
• 某エンジンの某青写真が、自分に文字を書
くのが嫌いと自覚させるほど開発者にやさし
く、慣れれば高速にイテレーションを回せる
• UnityのDOTS VSはプロトタイプ版であり、
まだまだ不便な点は多いものの、開発者の
母性溢れる設計から、最初は苦痛でも、一
度処理を理解し慣れると、VSにバブみを感
じることができる
• Unity開発ロードマップ最新情報 Unite Tokyo 2019 よりスライド引用
プロトタイプが公開済み
• 内部デモンストレーションおよびフィードバック収集を目的とした、Visual
Scriptingのプロトタイプが2017年10月12日より、フォーラムで公開されてい
る
• 現在は5thバージョンが最新
https://forum.unity.com/threads/dots-visual-scripting-5th-experimental-
drop.772520/
やべーコードも量産されてる
サンプルが公開済み
• Visual Scripting で作られた「 Roll a Ball Demo 」が公開されています。
• 3thバージョンのフォーラムでダウンロードURLが公開されています。
https://forum.unity.com/threads/dots-visual-scripting-3rd-experimental-
drop.727190/
今後の予定(フォーラムより)
• 3月末にプレビューバージョンをリリース予定。GDC前後になるとのこと
• 2020年末の2020LTSリリースにproduction ready packageを含める
予定。
https://forum.unity.com/threads/dots-visual-scripting-5th-experimental-
drop.772520/
有志?によるVSチュートリアル動画
有志?によるVSチュートリアル動画(全5回)
• https://www.youtube.com/watch?v=bptCy1ZDQ2g
• https://www.youtube.com/watch?v=9EuGd2WmDvU
• https://www.youtube.com/watch?v=ZbS2mHGdogM
• https://www.youtube.com/watch?v=vNOX8ZMEauM
• https://www.youtube.com/watch?v=7C7luPCViW8
DOTS VISUAL SCRIPTINGを
触る
※念のためモザイク処理をかけています。
僕の興味は某青写真とくらべて
DOTS VSどうなのか、ただそれだ
け
注意点
• VSはプロトタイプのため、プレビュー版以降と仕様が異なる場合があります。
• フォーラムで公開されているVSは、バージョンが上がるごとに破壊的変更
が加わっています。
• 今回LTで話すバージョンはプロトタイプ5thバージョンです。
※そのため、参考程度に聞いてください。
注意点
• フォーラムではUnity2019.3.0b6の仕様を推奨
• 軽く試した感じだと、2019.3.0f1でも問題なく動いている感じがする
• 2020.1αはビジュアルスクリプトエディターで表示バグがあるため、プロト
タイプバージョンは使えない
※本LTでの検証はUnity2019.3.0f1で行っています
軽くライブコーディング
• オブジェクトをDOTSで適当に回転
させるだけのスクリプト作成
• 失敗しても怒らないでね
サンプルプロジェクトを起動
右クリック→コンポーネント作成
これを押さないと保存されない。
フィールド作成
これを押す。
Code Viewerでスクリプトが見れる
作成されたコンポーネントをInspectorに追加する
右クリック→ECSグラフ作成
Black board表示→System Graphにマウスを合
わせて+ボタンをクリック
初期値名、Component Queryが作成されたら、
Required Componentsをクリック
これを押す。
先ほど追加したコンポーネント名を押す。
右クリック→Create Nodeから使いたいイベントを
呼び出す
今回はOn Update Entitiesを使用
Blackboardから先ほど作成したQueryをドラッグ
&ドロップ
Queryはもちろんリネームもできるので、わかりやすい名前に
ピンをつなげる
イベントノード(On Update Entities)の上でスペース
キーをクリック→処理系のノード(Stack Node)が出る
文言に書いてあるとはいえ、ちょっとわかりにくい
Rotateを検索して追加→Required
Componentsから先ほど追加したコンポーネント
をドラッグ&ドロップ
Queryを繋げないとRequired Componentsの中身がド
ラッグできないっぽい
ピンを空白部分までドラッグする→追加したFiled
名を検索に入れて呼び出す
Queryを繋げないとRequired Componentsの中身がド
ラッグできないっぽい
こんな感じで組んでみる(一例です)
Rotate byを使うには、RotationのRequired Componentsが必要
なため、予め追加すること
Code Viewerで変換後のソースも見れちゃう
こんなゴリラじゃないとわからないスクリプトを知らず知らずのうちに書けちゃう
このUnityのやさしさにバブみを感じる……
手っ取り早く確認したい場合は、Convert To
Entityを追加するのが楽
Convert To Entityを追加することで、リアルタイムで値を確認することができる。
が、変換処理がとても重いので、デバッグかプロトタイプ作成時に限定すること
本実装する場合はSubSceneに
ECS変換対象のゲームオブジェクトを読み込ませること
SubSceneを使うと相当軽くなりますが、エディターの機能が使えなくなるため、
デバッグがLogを仕込む以外の方法がなくなります。
SubSceneの使い方についてはこちらを参照
http://tsubakit1.hateblo.jp/entry/2019/03/07/013558
個人的にモチベが下がる要因
GameObjectとComponentをEntity&ComponentDataに変換する機能が
まだプレビュー版ということもあり、基本的にシンプルなメッシュコンポーネントのみ正常に変換できる
具体例をあげれば、ユニティちゃんのようなカワイイ一部複雑なモデルは
ECSではまだ使えない
Inputも拾えるので移動処理実装が非常に楽
他にも色々とノードが追加されている
コルーチン等……
VS まとめ
• DOTS(ECSベース)がVSを触ることで理解しやすくなる
• VS、操作性にまだまだ若干の難あり
• プロトタイプ故にまだまだ足りない機能があるが、随所にみられる機能や設
計思想にバブみを感じる
• 一度処理の流れさえ理解できれば、VSの恩恵の一つである高速でプロトタ
イプ検証をすることが可能
→ DOTSは新しいため、理解するには時間がかかりそう

DOTS Visual Scriptingのお試しバージョンを触ってみた