【Unity】Scriptがごちゃつかないようにする方法【Arbor3】

Scriptが増えすぎて、わけ分からんチン

楽しく快適にゲームプログラミングができるUnityですが、コンポーネント指向の宿命と言うべきか、Scriptが増えるにつれ、どのオブジェクトにどのScriptがアタッチされているか分かりにくくなるのが難点です。

  • ○○マネージャーを作りすぎて混乱してしまった
  • 操作キャラにScriptを貼り付けすぎて、仕様を忘れてしまった

Unityを使っているなら一度は経験があるはずです。
そんなお悩みを、Arbor3でこうします。

  • 矢印による切り替えで、いまどのScriptが実行されているかが一目瞭然
  • コメントによる補足で、後から見てもすぐに内容が分かる

Scriptの実行を状態ごとに分けて管理し、切り替えることで管理を容易にします。

Scriptをがっつり書きたい。でも管理がしんどい。
どうしてもキレイな保守ができない。

Arbor3は、そんな人にぴったりなアセットです。

疑問

Unityのアセット? それ有料なの? どうやって使えばいいんだよ!

みたいな疑問にお答えします。

Q. 有料なの?

有料です。ただし、無料の試用版があります。

試用版を用意しているアセットはなかなかお目にかかれないので、ありがたいですね。

Q.そもそもどういうアセットなの?

Scriptの流れを可視化するグラフエディタです。

ステートマシン(以下FSM)のように矢印で切り替えるものと、ビヘイビアツリー(以下BT)の2種類を連携させながら管理します。

▲ステートマシン。複雑なScriptを書きたい時に便利。UnityのAnimatorでも使われている。
▲ビヘイビアツリー。複雑な条件分岐をしたい時に便利。Unreal Engineに標準搭載されている。

両者にはそれぞれ長所と短所があり、お互いの弱点を補い合うような存在です。

FSM、BTともに有名なアセットはいくつかありますが、両方を同梱しているものはほとんどありません。
それは単にお買い得ということだけではなく、別々のアセットを使うよりも密な連携を取りやすいということを意味します。

条件分岐はBTでおこない、その先の複雑な挙動はFSMで管理、といったことがArbor3ひとつで実現します。

Q. むずかしい?

ドン引きするぐらい簡単です。

Arbor3は非常にシンプルで、余計なものがありません。
Editor拡張の中でも、トップクラスに学習コストが低いです。

余分なものを削ぎ落とす。例えるなら禅の心。わびさび。大和魂。
それを象徴するかのように、アセット作者も日本人なので、ドキュメントやチュートリアルも日本語で完備されています。

手元に試用版がなくてもいいので、試しにいくつか読んでみてください。
とてもシンプルで驚くはずです。

Q. Scriptなしでゲームが作れるようになるの?

なりません。むしろUnityでScriptをがっつり書きたい人向けです。

あくまでArbor3は、Scriptの流れを可視化するためのものです。
Playmakerのように、ノンコーディングな開発環境を提供するものではありません。

逆にPlaymakerの学習コストの高さを前に挫折した方なら、Arbor3の魅力がわかりやすいかもしれません。

プログラミング不要の開発は、それだけエディタ独自の仕様を覚え直す必要があるからです。
Unityの基本機能さえマスターすれば、Arbor3は簡単に使えます。

Q. へえ、興味が出てきたな

そう思ったのなら、試用版をダウンロードし、公式チュートリアルで今すぐ手触りを確認してみましょう。

Just do it.

使い方

Arbor3の使い方の記事は何度か書こうと試みましたが、基本的なことなら公式チュートリアルが完璧に解説していて隙がないので、今一度貼っておきます。

難しいところ、欠点

難しいところ

Arbor3の難しいところをあえて挙げるなら、「応用が利きすぎて、使い所を理解するのにやや時間がかかる」ことです。

ぼくはArbor3を使い倒していますが、

  • クエストシステム(受注、進行中、達成済みなどのステート管理)
  • 複雑なアクションゲームの操作(先行入力、派生攻撃など)
  • UIの表示やアニメーション
  • ゲーム全体の進行管理
  • ロード時の初期化処理

など、あらゆる場面で使い所が浮かんできます。

なんにでも使えてしまうだけに、使い所の見極めがむずかしい

ただ、何にでも使えるからといって、Arbor3に頼りすぎると火傷します。
自分でScriptを書くところは書く。Unityの標準機能に頼るべきところは頼る。

開発を快適にするためのArbor3であって、Arbor3を使うための開発ではありません。
その辺の勘所を掴むまでは、距離感の調整にすこし苦労するかもしれません。

理解できたものから、少しずつ。まずはステートマシンでUIを切り替えたり、秒数指定のウェイトの実装から試してみることをおすすめします。

欠点

Arbor3に限った欠点ではないのですが、グラフエディタの都合上、変数の連携がごちゃつきやすいです。

あるScriptで計算した結果を出力して、あっちのScriptに入力して、その結果をあのグラフへ……とたらい回しにすると、矢印だらけになって意味不明なことになるし、Scriptも冗長化します。

その辺の悩みを解決するべく、パラメータコンテナという変数を格納してくれる機能も提供していますが、流れが見えにくいこともあって他の機能に比べると若干取っつきづらい点は否めません。

どのScriptにどの情報をもたせるか。
プログラミング全般に言える命題ですが、Arbor3を使う際はより一層気をつける必要が出てきます。

その点も含め、Arbor3にどこまでを任せるかは、実際に使い続ける上で見極めが重要になるでしょう。

自分は

  • ビヘイビアツリーで条件分岐し、その先の複雑な挙動はステートマシンを駆使
  • パラメータコンテナは極力使わない。

と、我流のスタイルでArbor3と付き合っています。

まとめ

まずは試してみよう! 一度使うと手放せないくらい便利だよ!

完全に余談ですが、なんか知らない間にUnity公式のアドカレがあったようで、参加すればよかったなあと後悔しています。

 この記事をシェアする

ABOUTこの記事をかいた人

インディーゲーム開発者。30歳目前。 学生時代、ツクールVXにハマりすぎて不登校に。 専門学校に通い、ゲーム会社に就職するも花開かず退職。 以後、個人でゲームを作りながら生きていく道を探している。 SEKIROとオーバーウォッチが大好きで、「プレイした者の心に爪痕を残すゲームを作る」のが夢。