こんにちは、Unityエンジニアのオオバです。

お悩みさん
お悩みさん
  • Visual Scriptingの変数の種類の意味を知りたい
  • 変数の使い分けを理解したい
  • オオバ
    オオバ
    本記事ではこれらの悩みを解決します。

    Unity公式が提供するノードベースプログラミングツール「Visual Scripting」には5種類の変数が存在します。ソースコードを書けなくてもプログラミングができてしまうVisual Scripting。非エンジニアの方も注目している人は多いはず。

    「変数」とはプログラミングにとって超重要な要素です。 この記事を通して変数の種類を理解し、Visual Scriptingに役立ててください。

    Visual Scriptingの5種類の変数を適切に使い分けよう

    はじめに結論を簡単にまとめます。

    Visual Scriptingの5種類の変数を適切に使い分ける

    ①「Graph変数」はグラフ内で使用できるプライベートな変数

    ②「Object変数」はパブリックなインスタンス変数

    ③「Scene変数」はシーンごとのパブリックなstatic変数

    ④「App変数」はアプリ全体からアクセス可能なstatic変数

    ⑤「Saved変数」はアプリ全体からアクセス可能かつローカル保存されるstatic変数

    こんな感じです。5種類の違いは一言で言えば スコープの違い です。それぞれアクセスできる範囲が異なります。基本的に通常のプログラミングの感覚と同じで、 アクセスしやすい便利な変数を使い過ぎると見通しが悪くなります。 つまり③以降の変数の使い過ぎに注意ということです。

    それぞれの変数の特性を理解して適宜使いこなしていきましょう。各変数の詳しい解説は以降の章で解説します。ぜひ、最後まで読んでみてください。

    →11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら

    Visual Scriptingの変数とは?

    そもそもVisual Scriptingの変数について解説します。プログラミングで使用する変数とまったく同じ「変数」という機能がVisual Scriptingには5つ存在します。5つそれぞれの変数解説は後述します。

    【Unity】Visual Scriptingの5種類の変数の違いを解説_0

    Script GraphまたはState Graphウィンドウの①「Blackboard」内の②タブから変数を選択できます。

    Visual Scripting変数の追加方法

    変数を追加する場所は変数の種類によっていくつか方法があります。もっとも確実なのはグラフウィンドウからの追加です。まずは変数の種類位をタブから選択します。

    【Unity】Visual Scriptingの5種類の変数の違いを解説_1

    上の動画のとおり、変数名を入力後、「+ボタン」をクリックします。その後、Type(型)を指定すれば変数追加は完了です。

    Visual Scripting変数の削除方法

    【Unity】Visual Scriptingの5種類の変数の違いを解説_2

    逆にVisual Scriptingの変数を削除するときは追加した変数の「-ボタン」をクリックしましょう。

    Visual Scriptingの変数のグラフ内での使い方

    Visual Scriptingの変数をグラフ内で使う方法を解説します。結論、変数をドラッグ・アンド・ドロップするのが簡単です。

    【Unity】Visual Scriptingの5種類の変数の違いを解説_3

    グラフ内で使用したい変数は、Blackboardから変数をドラッグ・アンド・ドロップしてみましょう。すると変数ユニットが生成されます。

    使用可能な変数とグラフの関係性

    グラフの種類によって使用できる変数が異なります。 以下表にまとめたので参考にしてみてください。

    グラフの種類Graph変数Object変数Scene変数App変数Saved変数
    StateGraph×
    ScriptGraph

    StateGraphにGraph変数は使えないということだけ覚えておきましょう。では、以降の章で各グラフの説明していきます。

    Visual Scripting5つの変数

    Visual Scriptingの5つの種類の変数を解説します。

    Visual Scripting5つの変数

    ①Graph変数

    ②Object変数

    ③Scene変数

    ④App変数

    ⑤Saved変数

    変数の種類が5つもあって迷うかもしれません。そんなあなたに、結局どれを使うべきかを最後にまとめていますので、ぜひ参考にしてみてください。

    ①Graph変数

    【Unity】Visual Scriptingの5種類の変数の違いを解説_4

    Graph(グラフ)変数の解説をします。Graph変数はスコープがGraph内に限定した変数です。Graph内からしかアクセスできません。例えばグラフ内にサブグラフを格納している場合、お互いのグラフからそれぞれのGraph変数にアクセスすることはできません。

    Graph変数は参照スコープが最も狭いため使える場面では積極的にGraph変数を使うことをおすすめ します。

    ②Object変数

    【Unity】Visual Scriptingの5種類の変数の違いを解説_5

    次にObject変数について解説します。Object変数はGameObjectに保持される変数です。自動生成される 「Variablesコンポーネント」 の中に値は保持されます。

    【Unity】Visual Scriptingの5種類の変数の違いを解説_6

    つまり、上図のようにそのGameObjectにAddComponentされているグラフはアクセス可能だということです。

    ③Scene変数

    【Unity】Visual Scriptingの5種類の変数の違いを解説_7

    次にScene変数です。Scene変数とはシーンごとに保持される変数です。

    【Unity】Visual Scriptingの5種類の変数の違いを解説_8

    上図のとおりHierarchyウィンドウ内に自動生成される 「VisualScripting SceneVariables」 に格納されます。

    シーン内どこからでもアクセスできるため、Graph変数、Object変数と比べるとスコープは広いです。

    ④App変数 / ⑤Saved変数

    【Unity】Visual Scriptingの5種類の変数の違いを解説_9

    【Unity】Visual Scriptingの5種類の変数の違いを解説_10

    App変数、Saved変数はセットで解説します。両方ともシーンをまたいでどこからでもアクセスできる変数です。publicでstaticな変数というイメージです。

    両者の違いは、アプリ実行後に保持するかしないかです。Saved変数はPlayerPrefs領域に保存され、アプリを再起動した際も保持されます。一方App変数はアプリを閉じるとクリアされます。

    しかしApp変数、Saved変数どちらもVisual Scripting変数の中で最もスコープが広く危険な変数と言えます。最小限の使用に留めた方が安全です。

    Visual Scriptingの変数まとめ

    この記事ではUnityのVisual Scriptingの変数の種類について解説してきました。簡単に内容をまとめます。

    Visual Scriptingの変数まとめ

    ①Visual Scriptingの変数はグラフウィンドウから定義可能

    ②5つの変数はそれぞれスコープが異なる

    ③スコープが広くなるごとに管理しづらくなるので注意

    ④特Scene変数、App変数、Saved変数は最小限の使用を推奨

    こんな感じです。

    Visual Scriptingはプログラミングの1種です。ゆえに変数の理解は必須です。

    結局どの変数を使うべき?

    Visual Scriptingを始めたばかりでは5種類の内どの変数を使うべきかがわからないと思います。 基本方針はスコープの小さい変数から使っていきましょう。

    つまり、以下の順番です。

    1. Graph変数
    2. Object変数
    3. Scene変数
    4. App変数またはSaved変数

    おそらくオオバはScene変数以降は使用しません。なぜなら管理が難しく、煩雑なプログラミングになるからです。基本的にはVisual ScriptingとC#は併用していくことになります(というかその方が楽です)。Scene変数、App変数、Saved変数はC#側定義し、Visual Scripting側から受け取れるような設計にするでしょう。

    この辺りはプロジェクトの設計方針に関わるため、あくまで1意見として参考にしてください。

    Visual Scriptingはプログラミングと同じで実際に使ってみてわかることがとても多いです。ぜひ実際にUnityエディタで触ってみて変数をいろいろ試してみてください。トライアンドエラーの中で初めて答えが出てくるものです。

    この記事があなたのゲーム開発に少しでもお役に立てたら嬉しいです。

    TikTokを始めました!!毎朝7時から自作ゲーム開発を配信しています。
    ぜひフォローをお願いします!

    最後まで読んでいただきありがとうございました!
    すばらしいVisual Scriptingライフをお過ごしください。

    オススメ記事
    検証環境