基礎編


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

動作環境

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

  • Unity 5.3.0f4
  • Arbor 2.2.0

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

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

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

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

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

ArborFSMオブジェクトの作成

ArborFSMオブジェクトを作成してステートマシンを使用できるようにします。

HierarchyウィンドウのCreateボタンから、「Arbor > ArborFSM」を選択してArborFSMコンポーネントが付いた状態のGameObjectを作成します。

GIF

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

Arbor Editorウィンドウの表示

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

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

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

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

OFFステートの作成

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

まず、グラフ上の何もないところを右クリックし、「ステート作成」を選択します。

ステートの名前が「New State」という名前になっているため、わかりやすい名前に変更することをお勧めします。

ここでは、「OFF」としておきます。

GIF

ONステートの作成

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

「OFFステートの作成」と同様に、グラフの何もないところを右クリックし、「ステート作成」を選択します。

ステートの名前は「ON」としておきます。

GIF

開始ステート」について

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

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

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

開始ステート」を変更するには、「通常ステート」の設定アイコンをクリックし、「開始ステートに設定」を選択してください。

GIF

今回は、OFFステートが「開始ステート」で問題ないので元に戻しておきます。

GIF

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

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

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

OFFステートの設定アイコンをクリックし、「挙動追加」を選択してください。

GIF

ここでは、時間経過で遷移させたいので、「Transition > TimeTransition」を追加します。

GIF

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

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

TimeTransitionのSecondsを1に設定してください。

GIF

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

「Next State」ボタンをドラッグ&ドロップでONステートに接続してください。

GIF

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

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

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

ONステートの設定

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

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

まず、OFFステートにあるTimeTransitionの設定アイコンをクリックし、「コピー」を選択してください。

GIF

次に、ONステートの設定アイコンをクリックし、「挙動を貼り付け」を選択します。

GIF

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

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

GIF

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

ここまでの動作確認

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

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

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

GIF

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

Cubeオブジェクトの作成

HierarchyのCreateボタンから、「3D Object > Cube」を選択してください。

GIF

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

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

OFFステートではCubeオブジェクトを非アクティブ状態にしたいため、ActivateGameObjectを使用して設定していきます。

OFFステートの設定アイコンをクリックし「挙動追加」を選択、「GameObject > ActivateGameObject」を選択して追加します。

GIF

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

「Target」をCubeに、「Begin Active」と「End Active」はチェックを外したままにしておきます。

GIF

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

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

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

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

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

OFFステートにあるActivateGameObjectの設定アイコンから「コピー」を選択し、ONステートの設定アイコンから「挙動を貼り付け」を選択してください。

GIF

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

続いて、ONステートではアクティブ状態にしたいため、「Begin Active」と「End Active」にチェックを付けます。

GIF

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

動作確認

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

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

GIF

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

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

GIF

次のステップ

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

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

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

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

コーディング編