基礎編


今回は、1秒間隔でON/OFFが切り替わる簡単な仕組みを作っていきます。

動作環境

このチュートリアルは、以下の環境で作成しております。

Unity 2019.4.8f1
Arbor 3.7.0

バージョンによっては説明と異なる箇所があるかと思いますのがご了承ください。

チュートリアル用プロジェクト作成

まずは、チュートリアル用にプロジェクトを作成してください。

プロジェクト名 ArborTutorial01
モード 3D
インポートするアセット Arbor

プロジェクトの作成やArborのインポートについては「Arborを使用するための準備」を参照してください。

ArborFSMオブジェクトの作成

ArborFSMコンポーネントがついたGameObjectを作成してステートマシンを使用できるようにします。

  • Hierarchyウィンドウの+ボタンをクリック。
  • メニューの「Arbor > ArborFSM」を選択。
GIF

このArborFSMがステートマシンを動かすためのコンポーネントとなります。

Arbor Editorウィンドウの表示

ArborFSMを編集するにはInspectorウィンドウではなくArbor Editorウィンドウで行います。

ArborFSMのInspectorにあるOpen Editorボタンをクリックして表示してください。

クリックするとArborFSMが選択された状態のArbor Editorウィンドウが表示されます。

Arbor Editorウィンドウはよく使用することになるため、使いやすい位置にドッキングしておくといいでしょう。

OFFステートの作成

今回はON/OFFの2つの状態のみを扱うため、最初に2つのステートを作成してしまいます。

  • グラフ上の何もないところを右クリック。
  • メニューから「ステート作成」を選択。
  • ステート名を「OFF」にする。
    ※もしステート名を変更せずに確定してしまった場合は、名前部分をダブルクリックすると入力モードに切り替わります。
GIF

ONステートの作成

つづけて、ONステートも作成します。

  • グラフ上の何もないところを右クリック。
  • メニューから「ステート作成」を選択。
  • ステート名を「ON」にする。
GIF

開始ステート」について

何もない状態からステートを作成すると、一番最初に作成したステートが「開始ステート」になります。

開始ステート」とは、実行開始時に初めに有効になるステートです。

今回の場合では、OFFステートが「開始ステート」になっています。

開始ステート」を変更するには

  • 通常ステート」の設定アイコンをクリック。
  • メニューから「開始ステートに設定」を選択。
GIF

今回は、OFFステートが「開始ステート」で問題ないので変更した場合は元に戻しておいてください。

時間経過でステートを切り替え

続いて、ステートの挙動を設定していきます。

挙動の追加は、設定アイコンの「挙動追加」から行います。

  • OFFステートの設定アイコンをクリック。
  • メニューから「挙動追加」を選択。
GIF

ここでは、時間経過で遷移させたいのでTimeTransitionを使用します。

  • 表示された挙動選択ウィンドウから「Transition > TimeTransition」を選択。
GIF

TimeTransitionは「Seconds」で指定した秒数経過後に「Next State」で接続したステートに遷移する挙動です。

ここでは遷移する時間を1秒とします。

  • TimeTransitionのSecondsを1に設定。

そして、「Next State」をONステートに遷移するよう指定します。

遷移はStateLinkフィールドをドラッグ&ドロップして、遷移先に接続すると行われます。

  • 「Next State」をドラッグ&ドロップでONステートに接続。
GIF

これで1秒経過後にONステートに遷移するようになりました。

OFFステートのTimeTransition

Time Type Normal(変更なし)
Seconds 1
Next State ONステートに接続

TimeTransitionについて詳しくは、TimeTransitionのリファレンスを参照してください。

他にも、Arborにはあらかじめ100以上の挙動が組み込まれていますので、どのような挙動があるかはArborリファレンスを参照してみてください。

ONステートの設定

ONステートにも同様に時間経過で遷移するように設定していきます。

ここでは、すでにOFFステートに設定済みのTimeTransitionがあるため、コピー&ペーストを行います。

  • OFFステートにあるTimeTransitionの設定アイコンをクリック。
  • メニューから「コピー」を選択。
GIF

次にONステートにコピーしたTimeTransitionを貼り付けます。

  • ONステートの設定アイコンをクリック。
  • メニューから「挙動を貼り付け」を選択。
GIF

TimeTransitionの各パラメータ含めてコピー&ペーストされました。

ONステートのTimeTransitionからはOFFステートに遷移させたいので、「Next State」をOFFステートに接続し直します。

  • 「Next State」をドラッグ&ドロップでOFFステートに接続。
GIF

これで、1秒間隔でON/OFFが切り替わる動作が作れました。

ONステートのTimeTransition

Time Type Normal(変更なし)
Seconds 1
Next State OFFステートに接続

ここまでの動作確認

一度実行して動作を確認してみましょう。

  • プレイボタン」を押して実行。

実行中にArbor Editorウィンドウを見ると、「現在ステート」が1秒間隔で切り替わるのが確認できます。

GIF

動作が確認できたら実行を停止します。

このままでは、Game Viewでは何も変化が見えないため、Cubeを置いて視覚的に見えるようにしてみましょう。

Cubeオブジェクトの作成

  • Hierarchyの+ボタンをクリック。
  • メニューの「3D Object > Cube」を選択。
GIF

シーンにCubeオブジェクトが作成されました。

OFFステートで非アクティブ化

OFFステートでCubeオブジェクトを非アクティブ状態にするにはActivateGameObjectを使用します。

  • OFFステートの設定アイコンをクリック。
  • メニューから「挙動追加」を選択。
  • 挙動選択ウィンドウから「GameObject > ActivateGameObject」を選択。
GIF

ActivateGameObjectが追加されたら設定を行います。

  • 「Target」のボタンを押し「Constant」を選択。
    • 「Target」は参照する方法を複数のタイプから選べるFlexibleGameObjectという特殊な型を使用しています。
    • 今回は直接オブジェクトを参照するので、Constantを選択してオブジェクト参照フィールドを表示しています。
  • 「Target」をCubeオブジェクトに設定。
  • 「Begin Active」と「End Active」は変更せず、チェックをしない。
GIF

これで、OFFステートの時はCubeオブジェクトが非アクティブになります。

OFFステートのActivateGameObject

Target Cubeオブジェクト
Begin Active チェックなし(変更なし)
End Active チェックなし(変更なし)

ActivateGameObjectについて詳しくは、ActivateGameObjectのリファレンスを参照してください。

ONステートでアクティブ化

ONステートに入るとCubeオブジェクトをアクティブ状態にしたいため、OFFステートと同様にActivateGameObjectを使用して設定します。

ここでもOFFステートのActivateGameObjectからコピー&ペーストしてしまいましょう。

  • OFFステートにあるActivateGameObjectの設定アイコンをクリック。
  • メニューから「コピー」を選択。
  • ONステートの設定アイコンをクリック。
  • メニューから「挙動を貼り付け」を選択。
GIF

「Target」にCubeオブジェクトが設定された状態でコピー&ペーストが出来ました。

続いて、ONステートでアクティブ状態にするように設定します。

  • 「Begin Active」と「End Active」にチェック。
GIF

これで、ONステートに入るとCubeオブジェクトがアクティブになります。

ONステートのActivateGameObject

Target Cubeオブジェクト
Begin Active チェック
End Active チェック

動作確認

最後にCubeオブジェクトが切り替わるか実行して確認しましょう。

  • プレイボタン」を押して実行。
GIF

Cubeオブジェクトのアクティブが1秒間隔で切り替わるのがわかるようになりました。

Arbor Editorウィンドウも確認してみると、ステートの切り替わりに連動して正常にCubeオブジェクトが切り替わっているのがわかります。

GIF

次のステップ

以上で「基礎編」は完了です。

「基礎編」完了をツイート

次回は「コーディング編」となります。

Arbor用スクリプトの作成方法について解説します。

コーディング編

Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads