原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】アセットFlock box dotsの紹介続き

自撮り

野球やサッカーなどのスタジアムで前の席の人が自撮りを始めたら写りこまないようにそっと身を屈める皆さんこんにちは。女性の方に多い気がしますが手にした食べ物と一緒に写りたがるのはどういう習性なのでしょうか?取り合えず試合そっちのけで自撮りに夢中になるのは辞めた方が良いと思います。

 

前回の続き

前回の記事でFlock Box dotsというアセットの概要を紹介しました。

assetstore.unity.com

ざっくりと説明すると鳥や魚等の群れの動きを作ることのできるアセットですが、前回はその概要と簡単なセットアップ例について記事にしました。

www.karvan1230.com

今回はFlock Box dotsで実装できる「群衆の動作」の詳細ついて説明したいと思います。

 

Behavior Settings

「群衆の動作」は群衆を構成する単体の動作を「Behavior Settings」という設定ファイルに設定することで構築します。
Behavior Settingsには凝集、分離、追跡等の群衆の動きを決定する個々の動作を定義することができます。

 

上の図はBehavior Settingsの例です。分離、追跡の各動作に対してそれぞれ重みづけ(weight)が設定され、個体の動作を定義しています。(上の場合は追従と分離が1対1の割合で動作する定義となっています)

 

Behavior Settingで設定できる動作は

上の図のメニューに表示されている全15種類。

このうち「ContainmentBehavior」は各BehaviorSettingsに自動的に追加される動作で、FlockBoxが定義するゾーン内にオブジェクトを封じ込める動作を定義しています。

それ以外の動作は必要に応じて追加、設定していく手順となります。

 

各種動作の説明

■Alignment:従順
周囲のエージェント(Steering Agentコンポーネントが設定されたオブジェクト)の平均的な順方向に向かって動作します。

 

■Arrival:到着
静止しているターゲットに向かって動作しますが、停止するために近づくときはブレーキ力を加えます。

Arraivalの使用例:ランダムに配置されたドットを目的地として設定

 

■Avoidance:回避
障害物を回避するように動作します。ただし、障害物はFlockBox配下のエージェント(Agentコンポーネントが設定されたオブジェクト)でなければなりません。

オレンジの半球が障害物、それを避けるように動作しています。

 

■ColliderAvoidance:コライダー回避
Colliderを避けるために操縦します。
回避よりも精度は劣りますが、複雑な環境ではより役立ちます。

Avoidanceと違い障害物はFlockBox配下のエージェントである必要はなく、Colliderを設定するだけで良いです。

 

■Cohesion:凝集
周囲のエージェントの中心点に向かって動作します。

 

■Flee:逃避
Cohesionとは逆に他のエージェントの中心点から離れていきます。

 

■Leader Follow:リーダー追従
Arraivalに似ていますが、複数のリーダーが存在する場合は、最も近いリーダーが選択されます。また、フォロワーは、リーダーの邪魔にならないように、リーダーの前のスペースからのステアリングを優先します。

これは前回の記事で実装例を説明しました。

 

■Pursuit:追跡
移動するターゲットで予想される迎撃ポイントに向かって動作します。

 

■Queue:整列
別のエージェントによってブロックされたときにブレーキ力を適用します。
混雑したエリアを通過しようとすると、群集が遅くなる効果を生み出します。

 

■Seek:探索
静止したターゲットに向かって動作します。

 

■Separation:分離
近くのエージェントからの距離を保つように動作します。
他のエージェントが近づくほど距離で重み付けされ、分離力が大きくなります。

 

■Wander:浮浪
ランダムな方向に操舵力を加えます。パーリンノイズで計算されます。

 

これらの各動作に対する設定例はプリセットとして用意されているので、魚群や鳥の群れをなどを背景として作りたい場合は、このプリセットをそのまま利用して作ることができます。

 

ゲームとして利用する

前述の説明のようにArraivalをいう動作を設定すると、それが設定されたオブジェトは特定のオブジェトに向かう動作を取ります。

現状ではターゲットに向かって一直線に移動していますが、これにColliderAvoidanceの動作をBehaviorSettingsに追加すると

障害物を避けてターゲットに移動するようになります。なのでこれを応用してターゲットを自分で操作できるようにし、追いかけるエージェントを複数個出現するように設定すると、

鬼ごっこのようなゲームが作れます。

ほかにも工夫すればゲームとして色々と利用できそうですね。

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。