Unity LearnのVisual Scriptingのチュートリアルに合わせてやってみた続き。
メモとコメントが混在しています。
Unity学習−1 Visual Scripting1
Unity学習−1 Visual Scripting2
Tutorial:Configure your visual script with variables
1。Overview:概要
前回のように、Transform.Rotate unit 内に直接数値を入れる(ハードコーディングする)代わりに、変数を使って値を操作することができます。Visual Scriptingでは、変数を管理するための新しいさまざまな方法が用意されています。
Transform:Rotate unit内の各Angleの横の数字は、inline valueという表現をしている。
2。Create a variable in the Blackboard:変数を管理するBlackboardというパネルで変数を作る。
2-1 初期値に戻す
前回からの続きなので、進める前にまず、Transform:Rotate unitの3つの値は0に戻しておきます。
各Angleの前の青色はFloatの色。
変数の種類(Kind)は、Graphや, GameObject、Sceneだけでなく、プロジェクト全体にも適用できるよう。
2-2 XRotateというFloatタイプの(プライベート)変数を作って1を代入する設定の準備
Blackboardパネルで、Graphタブを選択する。(Blackboardは、いくつかの種類のVariables変数を整理するパネル。)
ここではまず、定義されているGraphについて、Graph variables(C#スクリプトのプライベート変数にあたるもの)を作成していく。
2-3 XRotateという変数を作る
プロンプト(New Variable Name)に、今回は”XRotate”という名前を入れて、+ボタンをクリック。
Graph variables:このチュートリアルだと、private float XRotate = 1; を書く感じなのかな🤔。 Blackboard:全部黒くてどれか分かりにくい。だからGetting Started with Visual Scriptingの6で、パネルを左右に分けた方が良いと言ってたのですね、なるほど。 Unity学習−1Visual Scripting 1 >> 6。Set up your Script Graph window:Script Graphウィンドウの配置 チュートリアルのコメントに、同じようにBlackboard探している人がいた。(サインインすると見られます) それから、unitを繋ぐコネクションの削除の仕方もやり方を探すコメントあり。私も右クリックに気づくまで、削除しようとしたら、コネクションがそこかしこに遊びに行って収集がつかなくなって困った。 この後、Programming fundamentals in visual scriptsのセクション8のstep1に出てくる削除方法の説明が、前回のProgram a visual scriptの7 Configure a unit辺りか、この辺りに欲しい。 >>You can break the connection by right-clicking at the starting point of the connector.
プロンプトってなんでしたっけ。 プロンプト(英:prompt)とは >>「ここから入力しなさい」を示すマークだよ なるほど、ここではつまりはこの入力する小窓のことかな。
2-4 XRotateをFloatタイプに設定
TypeとValueという新しいフィールドが現れるそうですが、まず現れたのはTypeのみ。
2-5 XRotateの値を1に設定
TypeでFloat(浮動小数点数)を選んだら、Valueのフィールドが出てきたので、ここでは1を入れる。
2-6 設定したものをunitとしてGraph上に作成
XRotateの定義の左端にあるdouble-bar symbolをGraph画面にドラッグし、Get Variable unit(変数の種類はGraph)を作成。
double-bar symbolとは何だろう。。。 あった。このTypeの横の二本線(=)。
2-7 作成したGraph変数unitを、Transform.Rotate unitのX Angleの入力値に設定
Get Variable unitの出力を、Transform:Rotate unitの X Angle 入力に接続。値が Get Variable unitから来るようになり、Transform:Rotate unit のinline value(ハードコーディングされていた値)の表示が消える。
こんな風にちゃんとinline valueが入れられないようになるの面白いね。
Get Variable unitは、X Angleの入力から、Graph上の何もないところにドラッグしてマウスボタンを離すと現れるFuzzy Finder(unitのコンテキストメニュー)のサブセットからも作成できるらしい。
3。Object types:オブジェクトの種類
下記のドロップダウンのリストは、オブジェクトのタイプを表しています。変数を作成する際、Transform:Rotateのように入力を必要とするunitでは、想定されるオブジェクトタイプを指定する必要があります。
よく使うのはこちら
Float:0.5や13.25など、小数点を含む、または含まない数値。
Integer:小数点以下を含まない数値、例えば3や200など。
Boolean:真か偽のどちらかのみとなる値。
String:文字列。”hello, world!”のような一連の英数字
Vector3:X、Y、Zの3つの浮動小数点座標のセットで、3D空間での作業に便利。
Vector2:2つの浮動小数点座標(X、Y)のセットで、2D空間での作業に便利。
GameObject:シーン内のオブジェクト
Visual Scriptingは、他のスクリプト言語ほどオブジェクトの型について厳密ではなく、青い点で示されるFloatsとIntegerは互換性があることを意味し、緑色の点がある場合は、Visual Scriptingは複数のデータ型を受け入れ、可能であれば変換を行うーーようですが。 FloatsとIntegerが両方とも青い点?という所と、緑の点が複数のデータ型を受け入れるとは、Integerに設定したのにFloatが入ってきてしまったら、それを受け入れて、可能であればFloatに変換するってこと?の辺りの解釈が不明なままですが、先へ進む。。 浮動小数点って何?
Unityマニュアル>Visual Scripting 1.5.2>Object Typesのページ
今気がついたけど、このチュートリアルのリンク先のバージョンは1.5.2だけど、既に新しいバージョンが2つ見える。所々違う表現が出てくるのは、その辺のアップデートかな🤔
4。Manipulate a Graph variable:グラフ変数の操作
新しい変数がどのように機能し、その値を変更するとどうなるかを見ていきます。
この場合、Playボタンを押すと、X軸周りにcubeが回転します。
Graphウィンドウの上のメニューにあるValuesボタンを押すと、Blackboardで設定した変数の値が、接続した線の上に出てくる。
すごい、動かしながら値が変えられて反応する!リアルタイム感👀。面白い。 オブジェクトタイプインジケータというのが、線上に現れる青色の丸ですかね? 3 Object typeで言っていたFloatsとIntegerの色というのは、このインジケータの話なんだろうか。
ここで、XRotateの値を3に変更すると、表示される数字は3に変わり、cubeはより早く回転するようになります。
ただ、Playモードを止めると、Playボタンを押す前に保存されていた値(この場合1)に戻ります。Playモード中に変更した変数は保存されません。
これは忘れやすいので注意。Transform:Rotate unit内の値(inline values)の場合は、Playモード中の変更でも保存されるよう。
Graph variable(グラフ変数)は、1つのGraphの中で値を操作したいときに便利です。他の種類の変数のように、他のGraphからアクセスすることはできません。
なるほど、プライベート変数に当たるからなのね。
次回もConfigure your visual script with variablesの続き。5。Create an Object variableから再開です。