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

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

【Unity】アセット紹介:流行の兆しが見える群衆ゲームに使えそうな集団シミュレーター Flock box dots

格差社会

駅前で某エナジードリンクの無料配布が行われていて折角なら貰おうと近づいて行ったのに一切無視された皆さんこんにちは。ああいうのも年齢や容姿で区別されるのでしょうかね。職業や収入以外の面でも格差社会が広がっているのを実感します。

 

杉浦非水展

あまり美術に関して素養はないのですが、地元の美術館で日本初のグラフィックデザイナー杉浦非水の回顧展が開かれていたので、ゲーム作りの勉強になるかもと鑑賞に行ってきました。

fukuoka-kenbi.jp

杉浦非水は明治から昭和初期に活躍したデザイナー(当時は図案家といったらしい)で、三越の広告デザインを筆頭に数々の商品広告や本の装丁、官公庁のポスター等を手掛けてた方です。アール・ヌーヴォーをベースにした和洋折衷のデザインは今見てもインパクトがあり、逆に新しささえ感じます。

 

また、直線や曲線を大胆に使用し、デフォルメされたモデルにコントラストをハッキリとつけた彩色の広告などは、一目見るだけで大きな印象を残すもので、そういった面は斬新さが求められるインディゲームの絵作りの参考になるものだと思います。

 

回顧展では解説付きの作品集も売られていて、ちょっと高め(2,500円)ですが購入させて頂きました。

 

Flock box dots

Vampire Survivorsのヒットもあり近頃はワラワラと画面一杯に湧き出てくる敵を倒したり、大量のキャラクターを誘導したり集めたりするような、群衆を扱ったゲームが人気になりそうな気配です。
PCやスマホの性能アップもあり画面内に大量のキャラクターを配置しても以前ほど遅延やちらつきの問題が発生しづらくなったので、効率化等の技術検証に工数を割かず割と手軽に手が出せそうですが、そんな時に群衆の制御AIとしてこのアセットは有用だと思います。

Flock Box dotsは、その名の通りFlock(群れ)の動作を作り出すことのできるアセットで、例えば海中の小魚の群れの動きなどを想像してもらえばよいのですが、群れ全体の動きには一体性があり統率が取れていますが、個々を見ていくとそれぞれに個性があり、距離を開けるもの、詰めるもの、群れから離れていき暫くすると元の位置へ戻るもの様々です、そういった集団全体の動きと各々の個性的な動きをFlock Box dotsを使用することで実装することができます。

 

概要説明

このアセットは主に3つ要素から成り立っています。

  1. 集団を構成する個体の動作を制御するSteeringAgentコンポーネント
  2. 個体の動作(凝集、分離、追跡等)を定義したBehaviorSettings
  3. 各集団の生成、活動範囲の制限等を制御するFlockBoxコンポーネント

 

同封されているサンプルシーンを開くと、シーンを開いた段階では集団を形成するオブジェトはシーン内に配置されておらず、FlockBoxコンポーネントが付けられた空のオブジェトが配置されているのみとなっています。

 

このFlockBoxコンポーネントを参照すると集団を形成する個体のプレハブとその数、集団の活動範囲が設定されていることが分かります。

上の図の「Starting Populations」に設定されている「Boid」が個体プレハブ名でその横の数字が生成数です。そして「Dimensions」と「Cell Size」が活動範囲の定義となっています。

これを実行してみるとこんな感じ

 

SteeringAgent

各個体を実際に動かすのは個体プレハブに設定されたSteeringAgentコンポーネントです。

このSteeringAgentのActive Settingsに個体の動作を定義した設定ファイル(BehaviorSettings)を指定することで、個体の動作が決まり=集団としての動作が決定されます。

 

このBehaviorSettingsには個体の動作の指針、群れから離れたり、群れの中心に集まったり、ランダムに動いたり、といった動作をどのくらいの頻度(強さ)で行うのかを設定します。

BehaviorSettingsはプロジェクトビュー内で右クリック→Createメニューから作成することができます。

 

生成されたBehaviorSettingsに対してAdd Behaviorボタンを押して、設定したい動作(凝集、分離、追跡等)を追加していきます。

 

具体例で説明

話しがちょっとややこしくなってきたので具体例で説明します。
例えば小魚の群れのように各個体が同じ方向に動くような動作をさせたい場合、
まず群れを先導するリーダ役のプレハブと、それを追従するプレハブをそれぞれ用意し、それぞれに役割にあった動作をBehaviorSettingsに設定します。

 

リーダ役のプレハブ

 

追従役のプレハブ

 

リーダ役のBehaviorSettingsにはランダムで動く[Wander]設定

 

追従役のBehaviorSettingsには追従[LeaderFollow](+分離[Speparation])の設定

 

次にシーン内にFlockBoxコンポーネントを張り付けたオブジェクトを作成し、リーダ役、追従役を生成する設定を行います。

 

この設定でゲームを実行すると

ランダムで動くリーダに追従して動く50体の群れを作ることができます。

記事が長くなったのでFlock box dotsで設定できる動作(凝集、分離、追跡等)の説明については次回の更新で。

◇プライバシーポリシー

●個人情報の利用目的

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

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

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

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

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

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

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

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

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

●免責事項

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

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

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

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

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

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