UnityのFree拡張機能のBehavior Bricksのクイックスタートの序盤をやってみての感想

##はじめに
今回の記事は[高知工科大 Advent Calendar 2017](https://adventar.org/calendars/2305)の６日目の記事になります
ネタがなかったので、前々から試してみたかったUnityの無料での拡張機能を使ってみました
###環境
windows 7
Unity 5.4.1f1

##Unityの拡張機能
Unityはそれだけでもすごく使いやすいのですが、更にすごいのは**[アセットストア](https://www.assetstore.unity3d.com/jp/)**の存在です．いろいろな方が3Dモデルや様々なテクスチャなどいろいろなものを公開しています．
自分で絵やモデルを作ることが出来なくてもオリジナリティあふれるゲームが作れるわけです．無料のものか$3000するものまであります（値段を確認しただけで入れてません30マン？やばそう）
まあとにかくアセットストアだけで記事がかけそうなぐらいすごいです
ほとんど利用したこと無いけど

その中でもかなり面白そうなのが**拡張機能**です
Unityの機能を拡張するのですが、どんな感じになるのかなっていうのが謎のベールに包まれすぎていて初心者には手を出しづらいです．かくいう私も完全なるUnity初心者なので手を出してきていませんでした

無料のものもあるので、その中でもなんとなくで[Behavior Bricks](https://www.assetstore.unity3d.com/jp/#!/content/74816)というものを試しに使ってみようというのが今回の趣旨です

##クイックスタートやってみる
アセットストアから入れるとクイックスタートと書いたpdfが２つあったので片方に手を付けようとおもいます．以下ではクイックスタートの流れに沿って書いていきます．クイックスタートの序盤についてです

- Behavior Bricksとは？
どうやらグラフィカルに（GUI?)でAIを作り出す事ができるものらしいです
AIづくりってシンプルな動きに対しても結構たいへんだったりするので期待できますね(・∀・)
あと、なにげにクイックスタートの完成形のシーンもパッケージにはいっているそうです

- クイックスタートではどんなことするの？
とりあえず、プレイヤーと敵に当たるオブジェクトについて以下の操作ができるようにするのがクイックスタートらしいです
今回は敵がある場所まで移動するものしか作れませんでした(・・;)
    -  プレイヤー マウスのクリックを使って動き回る
    -  敵 ウロウロ移動し、プレイヤーが視界にはいるとプレイヤーを追跡する

- まずは以下のものを作ります
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/c7de3af7-0854-db52-e911-878e28d8d20a.png)
といってもこれもパッケージに入っています（めちゃくちゃ親切(；´∀｀)）
あとはNavMeshというのも作られています．これは少し調べたらゲーム内を動き回るもの（キャラ）に通るべき場所を教えるために使うものだそうです．
詳しくは[こちら](https://docs.unity3d.com/jp/540/Manual/nav-NavigationSystem.html)です

- ウロウロする(最初の敵の振る舞い)
ついにBehavior Bricksを使う時が来ました！Behavior Bricksを導入するとwindowのメニュー内にBehavior Bricksが追加されています
　
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/13d04c84-5f2f-abc3-6723-3aa5c2ce6098.png)
　
こうしてみると簡単に拡張機能を追加できるのもUnityの強みかもしれませんね
Standalone Editorを選択すると以下のようなEditorが開きます！わくわくしてきたぁ～
　
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/7f70cea2-779f-f44c-f38d-27cdcf42cbf8.png)
　
- まずは敵が定位置に移動するものを作る
先程の画像の上にある+ボタンでタブを作りそこにAIをグラフィカルに作っていきます！+ボタンを押すと新しくBehaviorを作ることになりますがデフォルトネームで大丈夫らしいのでそのままにしておきます．そしたら以下のような画面になります
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/a5817e5f-6d98-9c73-65b5-9d62adbca151.png)
こんかいはウロウロする(Wander)という名前にBB inspector(図の赤枠)で変更します．
ここまで出来たらCollection(図の青枠)でMoveToPositionを探します．(虫眼鏡のところにMoveとか打てば簡単に見つかります)
MoveToPositionをダブルクリックしたらなんかでてきた(^o^)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/a7200d3b-ab5e-c427-42ca-dfacc3b179d9.png)
青枠内のtarget Vector3の後のXYZを変更するとそこに向かうAIになるというわけですね(o・ω・o)
ここまできたらエディターは消しても良いそうです
アセットにBehavior Assetというものが追加されています
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/9570ea1c-07d4-6113-2da0-a6b532530820.png)
AddComponentにもBehavior Bricksが追加されています．EnemyのコンポーネントにBehavior Bricksの中のC#ファイルをAddします．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/e86fc282-67ca-c7cf-e898-03e4cf367b16.png)
そのスクリプトの中にBehaviorという部分があるので先程Assetに追加されていたものをドラッグ＆ドロップします．
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/90991f7d-a6c4-d0a2-c0f3-04614ae9e915.png)
ここまで出来たら再生ボタンを押してみます．すると、Enemyにあたる赤い直方体が動き出しました！
![saisei.gif](https://qiita-image-store.s3.amazonaws.com/0/103256/815ccef7-0a3a-0e3d-d068-b1e39ebe3a83.gif)
カメラ遠っ！！
かなり簡単に移動するAIが出来ましたね！すごいのは今のところ全くスクリプト書いていません！やべぇ！
しかも、Behavior Bricks エディターのBB Inspectorを以下のように変更するとこれをひとつだけ作るとUnityエディター上で目標位置を変更できるようになっています！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/1d581f13-c875-c6d6-94d7-2c3f30c501ac.png)
　
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103256/083af974-278b-967d-0e8d-d3210fe5d868.png)
このように変更すれば，敵を何体も実装し、それぞれ別の目的地に向かわせる場合などに，敵ごとに変更できるので便利です．

まだまだ真髄に触れているわけではない気がしますが，記事が長くなってしまったのでこの辺にしようと思います(；´∀｀)

##感想

ぱっと見つけた拡張機能にしてはかなり使い勝手が良さそうです
多分まだ序の口も序の口しか触れていないのでもう少し触ったら続きも記事にしようかなとも思います．
あとこれを使って思ったのは、無料の拡張機能は探せばかなり便利なものが多そうだなというところです
今回のBehavior Bricksのようにクイックスタートなどもサポートされているのであれば使いやすいですし，今後もいろいろ使ってみたいかなと思いました！

ここまでお読みくださってありがとうございました！