週刊SleepNel新聞

SleepNel所属のぽうひろが日々の個人開発で気になったことを綴ります。

今回のお題は「Space」Unity 1週間ゲームジャム(2017/11)に参加しました!

みなさん、おはようございます。ぽうひろです。
f:id:pouhiroshi:20170529083805p:plain

さて、すっかりご無沙汰になってしまいましたが、恒例の#Unity1week
Unity 1週間ゲームジャムに参加しましたのでご報告いたします!
Unity 1週間ゲームジャム | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう


今回のお題は「Space」 です。


デジゲー博がおわり、ちょっと抜け殻になっていた自分。
モチベーションがひどいですが何とか着手。

例によってざっくりと月曜に企画たてて、あとは開発という流れ。


雑な企画。この時点ではロケット台から撃ち合うゲームを考えてましたけど、世間的にアレな気がしたのでロケット台はやめました。
f:id:pouhiroshi:20171120095239j:plain:w300


で、昔買ったSpaceJouneyという宇宙空間を飛び回るアセットを思い出したので、こいつからいろいろ拝借することに。


あかん


基本動作OK


反動を表現したかったのです。
結局DOTweenでなんとかできました。


水曜日にフリーランス関係のインタビューを予定していました。


というわけで水曜日はぜんぜん作業できず。


スプラトゥーンもランク1からリスタートです・・・



間に合わない(というか作業していない)


諦めないツイートが流れてきたので便乗。あきらめない!


あたりまえだ!




というわけで、そこそこ金曜でまとまりました。。。(土日残業・・・・)




というわけで無事に提出できました!

できたゲームはこちら!!

今回、利用させていただいたアセットたちはこちらになります!
DOTween Pro

機体をパスにそって動作させるのに使っています。 あとタイトルのフェードアウトなど。

Univeral Sound FX

Fight、You Win、You Loseなどのボイス 発射、爆発などの効果音などに利用しています。

Big Action Music Bundle

BGMに利用しています

Space Journey

宇宙空間、機体、惑星モデルなど、今回の主役となるアセットです。

FX Mega Pack 2

惑星着弾の爆発、シールド着弾にパーティクルを利用しました。

それではまた!!

DoozyUIでUnityUIを時短de簡単に作っちゃおう!!

この記事は「Unity アセット真夏のアドベントカレンダー 2017」 4日目の記事です。

昨日は、ShowGamesさんの「Unityの素晴らしいパーティクルアセットたち(ゲーム)」でした。
showgames.blog.so-net.ne.jp

無料のパーティクルアセットがいっぱい紹介されていましたね!
パーティクルは自分も探すのに一苦労するので、とてもありがたい記事でした。(*´ω`*)

さて、私ですが、DoozyUIというUIを簡単に作れるアセットを紹介したいと思います。

こちらのアセットを使うにはDOTweenが必要です。
以下のリストからDLしてください(無料版でも動作します) 

UIを作るとき、テキストやボタンを出したり、隠したりするのって結構一から作るのは結構めんどくさかったりしますよね。
DoozyUIはその辺を簡単に作ることができます。

先日unity1weekで作った ユニティちゃんのビーチフラッグのUIで説明します。

uGUIの配置
f:id:pouhiroshi:20170803135030p:plain

結果をTweetボタンにUIElementコンポーネントをつけます。
f:id:pouhiroshi:20170803135121p:plain

最初の hide@start のチェックボックスは、初期表示時にこの部品を隠しておくかどうかの設定になります。
「結果をTweetボタン」はゲームが終わって結果が出た時に表示したいので、これにチェックをいれています。

また、ElementNameに「ResultTitle」が選んでありますが、こちらの名前をキーにして、UI部品をコントロールできます。
プログラムでは、最初にusing DoozyUI;宣言してから、
```
//UIを隠すとき
UIManager.HideUiElement("ResultTitle");
//UIを表示する時
UIManager.ShowUiElement("ResultTitle");
```
のように制御できます。

そして、表示(ShowUiElement)・非表示(HideUiElement)する時のアニメーション(IN ANIMATIONS、OUT ANIMATIONS)も
tween形式(EaseInとか)や、速さ(duration)、ディレイ(start delay)、移動元(先)を簡単に設定することができます。
f:id:pouhiroshi:20170803140820p:plain

上記では、Move(移動)しか設定していませんが、ROTATE(回転)、SCALE(拡大拡小)、FADE(透過)などもアニメーション設定することができます。

また、Unityでの起動時にはUIElementコンポーネントに「Show」「Hide」ボタンが表示され、
手軽に動作を確認することができます。
f:id:pouhiroshi:20170803141224p:plain

動作時のイメージです。
f:id:pouhiroshi:20170803143800g:plain

UI部品の制御は地味に時間がかかる面倒な作業です。
DoozyUIならサクッと作れるので、とてもオススメなアセットです!
お値段は少々張りますが(50$程度)、いろんなプロジェクトで使えますので、ご検討されてはいかがでしょう!

今回はUI部品の簡単な制御しかご紹介しませんが、DoozyUIはこのほかにも、色々な機能があります。
(以下、アセット紹介から抜粋)
・ネイティブuGUIを使用する
・エディタ統合、WYSIWYG
・学びやすい。直感的なデザイン
・UIアニメーターシステム
オリエンテーションマネージャー
・UIナビゲーションシステム
・UIエフェクト。パーティクルシステムはUI内にあります。
・UI通知システム
・UIトリガ。コード不要
・シーンローダー
・すべてのプラットフォームをサポート
・広範囲に最適化
・解像度に依存しない
・モバイルフレンドリー
・全C#ソースコードが付属
・専用サポート
YouTubeチャンネルのチュートリアル

クイックセットアップ!


それでは、今回の記事はここまでにしたいと思います。

「Unity アセット真夏のアドベントカレンダー 2017」次の担当は、
baba_sさんの「Inspector の表示をリッチにする!「Odin - Inspector and Serializer」紹介」
だそうです。
こちらも開発環境がいい感じになりそうな予感がしますね!ぜひチェックして見てください!

それでは、良い開発ライフをー!!

今回のお題は「積む」Unity 1週間ゲームジャム(2017/6)に参加しました!

みなさん、おはようございます。ぽうひろです。
f:id:pouhiroshi:20170529083805p:plain

さて、すっかりご無沙汰になってしまいましたが、月イチ恒例の#Unity1week
Unity 1週間ゲームジャムに参加しましたのでご報告いたします!
Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう


今回のお題は「積む」 です。

例によってざっくりとスケジューリング。
月曜日にざっくり企画を立て、あとは作るのみ!!(スケジューリングと言うのだろうか・・・)


素材を揃えるというのは結構時間がかかる作業なので、持っている素材(アセット)を使いたくなるのは、ショウガナイヨネー



今回のお題は「積む」で結構、方角が縦方向に固定されてしまう印象。
なんとか打破したかったけど、自分の発想力&許された時間では無理でした・・・・


ツイートシェアをやりたかったのですが、主催者のnaichiさんが作ってくれてた^^
じぇふさんも教えていただきありがとうございます!

一応、決めたけど。。。。

うん、、、、

悩んでる

あかん/(^o^)\

2案で揺れていた。

火曜日の時点で、ベースはできました。

この週は、本業以外のお仕事依頼の対応やら、ココナラの対応やらあり、火曜日以降あまり時間が取れなかった気がします^^;

なんとか土曜日の夜にこんつめてやり、無事提出しました!

f:id:pouhiroshi:20170626085312p:plain

ちょっとルールがわかりずらいのですが、画面を上下2分割していまして、上がマンションの部屋、下がビル下で待ち構えているトラックという構図です。
部屋にあるフォークリフトを操り、家具やダンボールを一掃して下のトラックへ「積む」 ということを表現しました。

どうしてもやりたかった演出があったのですが、それは

ゲーム終了後の「タワマンの住人がオーマイガーって言って泣き崩れるあのシーン」の再現です。

そう、これです。

f:id:pouhiroshi:20170626085658p:plain

うーん、伝わったかな?

伝わったなら、僕の今回のチャレンジは成功ですw

f:id:pouhiroshi:20170626085808p:plain

さて、今回のUnity1weekも投稿作品数 150超えと、前回を上回る勢いで盛り上がりました。

また次回も参加したいところです。

毎回、週10時間程度しか時間が取れないので、いっそのこと、どっかの温泉宿でもとって一人ゲームジャムしても面白そうだなあと妄想し始めております。。。。

それではまた!!

Unity 1週間ゲームジャム #unity1week に参加しました!

みなさん、おはようございます。ぽうひろです。
f:id:pouhiroshi:20170529083805p:plain

先週は、こちらの「1週間でUnityを使ってゲームを作って公開しよう!」というゲームジャム企画に参加しましたので、途中進捗なども合わせてご報告したいと思います。
Unity 1週間ゲームジャム | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

この企画は第2回目でして、毎回お題が変わります。第一回は「跳ねる」で、それにそった作品が投稿されていきました。
作品数は74、かなり盛り上がっていて、僕も次は参加しようと心に決めていたのです・・・・

そして今回はなんと!
f:id:pouhiroshi:20170529083436p:plain

146作品んんんんんんんんんんん??!!!
倍増してるじゃないですか! これは盛り上がっておりますね。 ゲームを作れる人はぜひ参加ですよ!

さて、ここからは私の進捗具合です。

月曜00時にお題が発表され、確認したのは朝7時。
今回のお題は「転がる」ですか・・・・・

ここで脳内スケジュールを立てます。
月曜は企画
火曜〜金曜で、作る
土日は提出を含めた最終調整
こんな感じで。
平日も使える時間はmax2時間程度しかありません。なんとか提出死守するように心にきめます。

月曜
企画を考えていました。 #unity1week のハッシュタグを見ると、すでに参加者同士の探り合いが始まっていますw



色々悩んだのですが、塊○的なゲームを作ることにしました。


火曜日
朝に使いそうなアセットをプロジェクトにぶち込んでgit登録しました。
いつもお世話になっているSimpleシリーズのアセットにすでに街並みが表現されてるものがあり、それを使います。
っていうかアーバンナックルもそのまんまなんですけどねw
メインどころのアセットはSimpleTown,SimplePeople,Arbor2,DoozyUI,CameraPathAnimationです。
よければチェックしてみてください。

ゲームの仕組みは、はい、このかたのいう通りですw

この時点では、ColliderはDestroyしてなくて、微妙に残しつつ、転がりがちょっとガタガタいうようにしていたのですが、
動作がどんどん重くなって行ったのと、結構つっかえて回転できなる感じになったので、最終的にすっぱりDestroyしちゃうことにしました。爽快感の方をとった形です。もう少し時間があれば調整したと思いますが。

進捗をあげると、思いの外評判がよくて、テンション上がりました。

みんな好きなんだな、塊○・・・・・ 自分はやったことがないんだけど^q^

YouTubeで動画をここでチェックしておきましたw
www.youtube.com

なるほど、なるほど、松崎しげるの歌が入ってる・・・・w
これは歌詞つきのBGMが必要そうですね・・・・

水曜日〜木曜日
ちょうど平行で作業していたアーバンナックル・Sの申請作業や、日中の仕事などで忙しくあまり時間が取れませんでした・・・・

金曜日
ゲームループとUIの調整をしていました。
チュートリアル(ゴールの位置を紹介)、Ready Goの制御、ゴール後の制御
やっぱ時間かかるよね〜 ここではCameraPathAnimationとArbor2、DoozyUIのアセットが大活躍します。

土日
BGMとSEをつけました。
ここでは安定の魔王魂さん。
全曲無料・フリー音楽素材/魔王魂

歌詞つきのなんか良さそうなBGMと、ボールがひっつくような効果音を探していたのですが、
「( ´∀`)Σ⊂(゚Д゚ ) なんでやねん!」の効果音をたまたま見つけて、5secで即決してくっつけました。

そして、ついに公開!!
タイトルはゴロゴロダマとしました。
ゴロゴロダマ | ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:pouhiroshi:20170529091244p:plain

WebGLの公開は初めてだったのですが、事前にフォントが表示されない問題やMeshColliderが効かない問題などをみなさんが教えていてくれてたので、最後の調整はほとんどありませんでした。よかったよかった。

公開後・・・・・
事前の評判がよかったのか、はたまたTwitterの知り合いたちの組織票か、一時的にTOP3の2位まで入ることができました。
感謝しかない(´Д`)
f:id:pouhiroshi:20170529090522p:plain

感想のページをのぞいてみますと・・・・

なんも考えずに入れた「( ´∀`)Σ⊂(゚Д゚ ) なんでやねん!」の音声のイメージががっつり入っちゃってるようです・・・w

うーん、よかったのか、悪かったのか。

けど印象に残ったってことで・・・・いいのかな・・・・・

まとめ
unity1weekゲームジャム、参加者同士でもいろんなアイデアのやりとり、WebGLでの困ったことの助け合いなど、とても素晴らしいイベントになりました。
自分としては、

こんなことも考えております。
本当は、ゴロゴロダマは、ちょっと違う展開を考えていたので、手直ししてアプリとしてそのうちリリースしたいなと考えています。

また次のお題も楽しみにしています!

最後に主催してくださったnaichiさん、ありがとうございました!次もまたよろしくお願いします。

みなさん、お祭りに参加しましょう!

アーバンナックル(とS)をTokyoIndieFes2017に出展してきました!

みなさん、こんにちは。ぽうひろです。

昨日2017/5/14 秋葉原UDXで行われた TokyoIndieFes に出展してまいりましたので、
ご報告いたします。
www.tokyosandbox.com


出展したのはアーバンナックル(リリース済み)と開発中のアーバンナックル・Sです。
ubk.strikingly.com


土曜日はビジネスデーということで、こちらも出展したかったのですが、
なかなか土日連続では家を抜け出せないこともあり、一般デーのみの参加となりました。

「展示者が少ないみたいなので、参加されてみてはー?」
と気軽な感じでお誘いを受けたので、「あ、でますでます( ^ω^)」と気軽に申し込んでしまったのですが、
出展者の皆様のブースはめっちゃこなれてて綺麗!!

ぐぬぬ・・・・これははめられたか( ^ω^)」

ダンボールで作ったSleepNel看板が逆に目立つ感じです。

「まぁこれはこれで味があっていいか・・・」

ものすごく入場者が多くて、ゲームが好きな人が国籍関係なくたくさん来場されていました!

個人開発者の知り合いもたくさん来てくださり、外国の方はもちろん、こんな小さいお子様達も自分の作ったゲームを熱心に遊んでくださりました!

開発者冥利につきますなぁ・・・。゚(゚´Д`゚)゚。

こういったインディーゲームの展示会は、いろいろなメリットがあるので、まだ参加されたことのない開発者の皆様にはぜひお勧めしたいです!

<メリット1> 見えなかったユーザの存在を実際に目視できる!
いろんな人が見に来てくれます。自分で自分の作品を見てもあまり自信が持てないかもしれませんが、必ず気に入ってくれる人は存在します。
こんな作品でもちゃんと気に入ってくれる人がいるんだなぁ。。。これからもがんばろう・・・って気持ちになりますね!

<メリット2> 仲間が見つかります
自分の他にも同じような境遇で、隙間の時間を見つけては頑張って開発している個人開発者の仲間を見つけることができます。お互い励ましあい、面白いものを作っていこうとしている仲間です。きっと、一生の宝物になると思います。

<メリット3> リリース前でも大丈夫!ユーザにデバッグしてもらいましょう
とりあえず遊べるものを展示して遊んでもらって、ユーザの様子をしっかり見ましょう!
きっと自分のゲームの改善点が見えてきます。 自分のゲームのブラッシュアップできるまたとない機会になりますよ!

今回、こんなに楽しくて大規模な展示会に参加させていただき、誘っていただいたMissileManでおなじみOHASHIさん(@papicoon)には感謝の念に堪えません。
また、主催された運営の方々にも感謝したいと思います。ありがとうございます。
わざわざブースに遊びに来ていただいた皆様もありがとうございます。

また、楽しいゲームを作って参加できるように、日々少しづつ頑張っていこうと思います( ^ω^)


それではまた!

リモートワーク探したけど大コケした話

みなさん、こんにちは。ぽうひろです。

1ヶ月前くらいに、渋谷の常駐案件をやめ、リモートワークに移行したお話をしました。
sleepnel.hatenablog.com

あれから1ヶ月も立っておりませんが、5月から別のところの常駐案件を受けることにしました(つд⊂)

f:id:pouhiroshi:20170425114843j:plain:w400
希望に燃えていた1ヶ月前でしたが、みるも無残な大敗です。一体何があったのか、後世の参考になるかもと思い、反省を書いていきたいと思います。
※なお、これは私がエセフリーランスだったというだけの話で、世の中には本当に自分の力で営業して、何にでも対応していって稼ぎを叩き出していく真のフリーランスの皆様が実在し、頑張っておられることは明記しておきたいと思います。真のフリーランスの壁は想像以上に分厚かったです。(自分にとっては

時系列で起きたこと

  • 3月時点

知り合いのご紹介でリモート可なPHP保守案件をいただくことができていました。単価は以前の半分。ですが、あと半分は別のリモート案件を探せばいーだろーって安易に考えておりました。リモート案件の紹介が多そうなエージェントやサイトに登録してエージェントとの面談もこなして行きました

  • 4月1週目

案件をこなしつつ、リモート案件を探す日々。なかなかエージェントから案件が出てこず焦ってまいりました。収入は現時点で半分なのでこのままやっていても赤字になります。来週くらいには決まればいいかなとまだ思ってました。

  • 4月2週目

エージェントやサイトからのめぼしい案件は出てきません。いよいよやばいと思い、クラウドソーシングの案件を探し、とにかく提案を出しまくってみました。時給は2000円以下。けどやるしかない。

  • 4月3週目前半

せっかく受けれたリモート案件も、独自FWでどう動いているのか全然わからない。焦る毎日。たりない収益。時給1500円のバイトも思った以上のボリューム。これは受けない方がよかったと思いつつも後の祭り。眠れない日々になってしまいました。ここでリモート案件を探すのは断念。各エージェントさんには「常駐でも可」と要望を伝えたところ、来るわ来るわ案件の波が・・・w
リモートの風はまだ自分には吹いていなかったのだなぁと実感することになりました。(エージェントさんに教えていただいたのですが、3月、4月初旬は、会社としても新人さんを受け入れたり新年度で案件出してる余裕がないとのこと・・・そりゃそうだよなぁと自分の間の悪さも痛感しました。。。)

  • 4月3週目後半

エージェントさんに横浜近郊の案件を紹介していただき、2社ほど面談。両方とも以前の額と同じ額を出していただけるくらいの結果でした。雰囲気も良いですし、ぜひ来て欲しいと熱烈歓迎。通勤は30分になりますし、願ったりかなったり。 自分を売り込む場所(マーケット)を見誤るとこんなに違うのか・・・・と痛感しました。

とまぁ、こんな感じで、4月の2,3週目は精神的に全く余裕がなく厳しい状態でした。
娘の幼稚園入園式や結婚記念日などもあったのですが、それどころではありませんでした。
自分は何のためにリモートワークを切望したのか。僕はリモートワークチャレンジを(今回は)諦めることにしました。

各所にご迷惑をおかけして本当に反省している反面、得難い経験もできたので、以下にまとめていきたいと思います。

悪かったこと

  • リモートでゲーム作る余裕できると思ったら逆だった

売上を立てるので精一杯になり何も考えられなくなったでござる。

  • 家族との時間を楽しむ余裕が全く無くなった

上記ともかぶりますが、常に仕事のことやお金のことを考えてました・・・

  • 夜寝るときも不安で寝たら死ぬみたいな強迫観念で眠れなくなった

寝たら心臓が止まるみたいな夢をリアルで見ました・・・ これはやばい。

以上は実際に起きた悪い現象です。
精神的・時間的な余裕が無くなったのが原因ですね。

次からは良かったこと(わかったこと)を挙げていきたいと思います。

良かったこと

  • 準備のなさ、見積もりの甘さ、何とかなるの精神論の甘さがわかった

今までは何とかなってきたので甘く見てました。とにかく動いた方が正しい、というのは改めないといけないですね。ただの特攻です。勉強になりました。

  • 自分の市場価値は思ってた以上に低いということがわかった

市場価値と言うより、自分がターゲットとしている市場がリモートできる市場とマッチしていなかったと言うべきかもしれません。

  • 安定収入、顧客の大事さがわかった

自分の能力を評価してくれて、長期間仕事を依頼してくれる顧客は本当に貴重なんだなということがわかりました。いい仕事は安定した収入があってこそだな・・・(家族持ちは特に・・・)とわかりました。

  • 家計について嫁さんと話し合ういいきっかけになった

f:id:pouhiroshi:20170425114336j:plain:w350
 そもそも毎月の何に使ってるんだよってくらい支出が多いので、夫婦で見直しました。いいきっかけになってよかったです。これくらい追い詰められないとやらないんですよね・・・

  • 知り合いのコネはとても貴重だった

今回ツイッター関連の知り合いの皆様に、案件紹介などとてもたくさんしていただけました。また短い時間でなど、違った形で協力できれば良いなと思っています。

  • 選択肢を複数持っておくことの大事さに気づいた

常に選択肢は多く持っておくべきです。面談も複数受けることで、他の条件と競わせて交渉することができます。

  • とはいえ、リモートワークの良いところもわかった

今回タネマキというコーワキングスペースに入りましたが、いろんなコミュニティがあり、落ち着いて生活費が稼げているのならとても素敵な環境だなと思いました。家から10kmなので自転車通勤するのもいい運動になりました。おかげで高かった血圧も下がりましたよ!

まとめ

今回、多方面に迷惑をかけつつ、僕のリモートチャレンジは幕を閉じました。ただ、世間の流れは東京一極集中から、地方へ分散、働く時間と場所を選ばない、そんな流れになりつつある状況です。今回の経験を糧にして、いつの日か再チャレンジすることがあるかも・・・?? その時のために、自分のスキルを磨きつつ、また準備をしていきたいと思いました。今回のエントリが皆様のご参考になれば幸いです。またこれからも開発仕事頑張っていきますので、よろしくお願いしまっす! (๑•̀ᄇ•́)و✧

RAIN(AI)でWayPointパトロールAIを実装してみた

みなさん、こんにちは。ぽうひろです。

突然ですが、ゲームを作成するとき、敵の動きをプログラムするのめんどくさいですよね。

あ、そうでもないですかねw

僕はめんどくさいので、アセットの力を借りたいと思います。

RAIN AI for Unity
https://www.assetstore.unity3d.com/jp/#!/content/23569
f:id:pouhiroshi:20170405192716p:plain

こちらのアセットを使えば、(あまり)プログラミングしないでAIによるキャラクターの動作を制御することができます!!

今日は、決めたポイント(Waypoint Route)をうろうろパトロールする処理をやってみましょう。
まずはじめに、大事な設定を行います。
RAIN->Help->SettingsからShow Advancedをチェックしておきます。
これを行うとRAINの細かい設定ができるようになるのですが、この中に、視界センサが壁を突き抜けないようにする設定が混ざっており、デフォルトがOFFなんですよね。。。。
なんでONにしとかないの!悪意を感じます・・・

では、はじめにAIを作成します。
f:id:pouhiroshi:20170405193711p:plain
AIをつけたいキャラクタを選んで、メニューバーにあるRAIN->CreateNew->AIを選びます。
するとAIコンポーネントが作成され、Inspector上でいろいろ設定を行うことができます。

まずは視覚センサーをつけましょう。
f:id:pouhiroshi:20170405194431p:plain
作成されたAIオブジェクトを選ぶと、Inspector上にRAIN Rig ScriptがGUIで表示されます。
この中の「目」のアイコンを選ぶとセンサーの設定ができます。
Add Sensorセレクトボックスから「Visual Sensor」を選びます。すると、
視界の範囲が作成されます。紫色の帯の範囲です。
f:id:pouhiroshi:20170405194708p:plain
視界は360度にしていますが、Horizon Angleで90度とかに狭められるので、狭めてみましょう。
f:id:pouhiroshi:20170405194820p:plain

次にパトロールするポイント(WayPoint)を作成します。
ここではプログラムから4地点作ってみます。
WaypointRigというコンポーネントにWayPointをAddしていくイメージです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RAIN.Navigation.Waypoints;

public class EnemySample : MonoBehaviour {

	// Use this for initialization
	void Start () {
		CreateWaypointNetwork();
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	void CreateWaypointNetwork()
	{
		GameObject tObject = new GameObject("WPN");
		tObject.transform.position = Vector3.zero;
		WaypointRig tWaypointRig = tObject.AddComponent<WaypointRig>();
		//Choose either Network or Route for the type
		tWaypointRig.WaypointSet.SetType = WaypointSet.WaypointSetType.Network;
		tWaypointRig.Serialize();

		Waypoint point1 = new Waypoint();
		point1.Position = transform.position + new Vector3(5f,0.2f,0f);
		Waypoint point2 = new Waypoint();
		point2.Position = transform.position + new Vector3(10f,0.2f,0f);
		Waypoint point3 = new Waypoint();
		point3.Position = transform.position + new Vector3(10f,0.2f,5f);
		Waypoint point4 = new Waypoint();
		point4.Position = transform.position + new Vector3(5f,0.2f,5f);
		
		tWaypointRig.WaypointSet.AddWaypoint(point1);
		tWaypointRig.WaypointSet.AddWaypoint(point2);
		tWaypointRig.WaypointSet.AddWaypoint(point3);
		tWaypointRig.WaypointSet.AddWaypoint(point4);
	}
}

とりあえずこれで実行してみましょう。
f:id:pouhiroshi:20170406095722p:plain
はい、緑色の丸みたいなポイントがWayPointです。

f:id:pouhiroshi:20170406095708p:plain
WPNというオブジェクトをInspectorでみると、Waypoint NETWORKにちゃんと4つWaypointが設定されてますね。

これだけではパトロールしませんので、最後にAIを作成します。
ツリーエディタがあるので、これで部品を組み合わせて作ります。
キャラクターに作ったAIの頭のアイコンタブを開くと下の方にOpen Behavior Editorというボタンがあるのでクリックします。
f:id:pouhiroshi:20170406100042p:plain

すると、Behavior Editorというウインドウが開きますので、右のBehavior Treeの中から、Create New Behavior Treeを選びます。
f:id:pouhiroshi:20170406100207p:plain
すると名前を聞かれますので、なんでもいいのですがPatrolAIとでもしておきましょうか。
f:id:pouhiroshi:20170406100331p:plain
すると選べるようになりますので、選ぶと編集ができるようになります。
f:id:pouhiroshi:20170406100430p:plain
右クリックで追加部品を選べます。Create->Dicisions->Waypoint Patrolを選びましょう
f:id:pouhiroshi:20170406100727p:plain
WAYというのが追加されましたね。必要な項目を記述します。
Waypoint Route の所に作成したWaypointRigの名前を文字列で入力します。
GameObject tObject = new GameObject("WPN"); としたので、"WPN" と書きます。eと書いてある部分はプログラム記法で書いてねという意味らしいので、ここでは文字列なのでダブルクォーテーションで囲まないとエラーになります。
あと、Move Target Variableに 移動対象変数名を宣言します。ここにはeと書いてないので、ダブルクォーテーションで囲まなくて良いです。
好きにつけて良いのでwpとしておきます。

さて、ここからwaypointpatrol部品上で右クリックして、子ノードを追加します。
Create->Actions->Moveを選びます。
f:id:pouhiroshi:20170406101144p:plain

moveが追加されたら、必要な項目を設定します。
Move TargetにWaypoint Patrolで設定したMove Target Variableの変数名 wpを入れます。eと書いてあるのでダブルクォーテーションで囲むと思いきや、プログラム記述になるのでwpのままでOKです。
Move Speedも設定します。ここは数値なのでダブルクォーテーションで囲まなくて良いです。1としておきましょう。
f:id:pouhiroshi:20170406101735p:plain

はい、これで必要な設定は終わりました。AIの保存は自動でやってくれるようです。
最後にAIのBehavior Treeで今作成したAIを選びます。
PatrolAIでしたね。
f:id:pouhiroshi:20170406101538p:plain

はい、これでひとまず完了です! 実行してみましょう!

警官がWaypointをパトロールしていますね!

Behavior Treeで、mecanimでアニメーション制御とかもできるので、歩かせたりとかもできます。

あまりSampleがなく、最初はかなりとっつきにくいですが、慣れたらサクッと敵AIを作れるようになるのではないでしょうか!!(勉強中)

次回は、パトロール中にプレイヤーを発見したら、追っかけてくるようなAIを発展させて作ってみようと思います。

それではまた!