まえに作ったフロッキングのプログラムを流用して、
魚のシミュレーションプログラムのようなものを作りました。
といっても、絵が付いたフロッキングといわれればそれまでです。
プログラムのワールド内には、80体の青色の魚と20体の赤色の魚がおり、
青色の魚は赤色の魚から逃げ、逆に赤色の魚は青色の魚を追跡します。
どっちの魚も群れを作りますので、違うのは追うか逃げるかという点と、
青色の魚のほうが若干動きが速いという点が異なります。
一応スクリーンショットを付けておきますが、
実際に動いているほうが見栄は数倍よいので、
ぜひダウンロード、実行してみてください。
http://ux.getuploader.com/mnsprograms/d ... ishsim.zip
気になる点や、不具合などありましたら、コメントでお知らせください[e]140[/e]
魚(?)のシミュレーション
魚(?)のシミュレーション
- 添付ファイル
-
- FS3.png (65.42 KiB) 閲覧数: 120 回
-
- FS2.png (66.1 KiB) 閲覧数: 118 回
-
- FS1.png (56.47 KiB) 閲覧数: 113 回
Re: 魚(?)のシミュレーション
なかなか面白いですね。
もう少しフィールドが広いと良いと思います。
次は遺伝的アルゴリズムあたりで個体差を付けて、生態系を作ってみる事でしょうか。
応用すれば、完全解ではなく、近似解を出すソート・あるいはクラスター分析にも使えそうですね。
もう少しフィールドが広いと良いと思います。
次は遺伝的アルゴリズムあたりで個体差を付けて、生態系を作ってみる事でしょうか。
応用すれば、完全解ではなく、近似解を出すソート・あるいはクラスター分析にも使えそうですね。
- あーる@Reputeless
- 記事: 84
- 登録日時: 15年前
Re: 魚(?)のシミュレーション
逃げ惑う青い魚がかわいくて、ずっと見てても飽きません。
エサをやると集まってくる
・・・なんて機能があればすごく癒されそうです (*╹◡╹)
エサをやると集まってくる
・・・なんて機能があればすごく癒されそうです (*╹◡╹)
Re: 魚(?)のシミュレーション
おー、綺麗に動いてますねー^^
自分のフロッキングよりよっぽどそれっぽくていい感じです。
また色々考えて作りたくなってしまうぐらいにw
先頭の魚が不意に速度落としたりするのを見る限り、行動規則は
・視野は全方位
視野内の魚の中心点を出して
・離れていたら速度を調整
・さらに離れたら角度も修正
とかそんな感じですかねぇ。
まだまだ改良なさるんでしたら
これからも楽しみに眺めていますw
自分のフロッキングよりよっぽどそれっぽくていい感じです。
また色々考えて作りたくなってしまうぐらいにw
先頭の魚が不意に速度落としたりするのを見る限り、行動規則は
・視野は全方位
視野内の魚の中心点を出して
・離れていたら速度を調整
・さらに離れたら角度も修正
とかそんな感じですかねぇ。
まだまだ改良なさるんでしたら
これからも楽しみに眺めていますw
Re: 魚(?)のシミュレーション
>へろりさん
どうも[e]140[/e]
一応、フィールドを大きくし、スクロールする機能は作ったは作ったんですが、
なにぶん見難いので外してしまいました。
やはりスケールを変えるべきですかね。[e]143[/e]
生態系のシミュレーションは私も大いに関心があります。
GAの勉強もそうですが、個体差をどういった形で持たせるのかが
悩みどころです。[e]142[/e]
>あーるさん
そういっていただけるととても嬉しいです。[e]207[/e]
ここから発展させて魚の育成ゲームを作るのも悪くはないですね。
食物連鎖を勝ち抜いてゆくアクションゲームも考えています。
>ideyanさん
どうもありがとうございます[e]198[/e]
四苦八苦しながらがんばって調整しました。
まあ、群れの動きなんて千差万別ですから、
あくまで魚の群れ動きらしいものですね。
おっしゃるとおり、視野は全方位です。
行動規則はまんま本の流用ですが、
①近傍ユニットから離れるベクトルを得る(距離と反比例)
②近傍ユニットの向き(単位ベクトル)の平均をとってその向きに補正
③近傍ユニットの平均の位置をとり、そこへのベクトルを得る
こうして得た力を加速度として速度に加えるという手法です。
もう少し発展させようと思いますが、
生態系のシミュレーションプログラムにするか、
それともゲームにするか…[e]202[/e]
どうも[e]140[/e]
一応、フィールドを大きくし、スクロールする機能は作ったは作ったんですが、
なにぶん見難いので外してしまいました。
やはりスケールを変えるべきですかね。[e]143[/e]
生態系のシミュレーションは私も大いに関心があります。
GAの勉強もそうですが、個体差をどういった形で持たせるのかが
悩みどころです。[e]142[/e]
>あーるさん
そういっていただけるととても嬉しいです。[e]207[/e]
ここから発展させて魚の育成ゲームを作るのも悪くはないですね。
食物連鎖を勝ち抜いてゆくアクションゲームも考えています。
>ideyanさん
どうもありがとうございます[e]198[/e]
四苦八苦しながらがんばって調整しました。
まあ、群れの動きなんて千差万別ですから、
あくまで魚の群れ動きらしいものですね。
おっしゃるとおり、視野は全方位です。
行動規則はまんま本の流用ですが、
①近傍ユニットから離れるベクトルを得る(距離と反比例)
②近傍ユニットの向き(単位ベクトル)の平均をとってその向きに補正
③近傍ユニットの平均の位置をとり、そこへのベクトルを得る
こうして得た力を加速度として速度に加えるという手法です。
もう少し発展させようと思いますが、
生態系のシミュレーションプログラムにするか、
それともゲームにするか…[e]202[/e]
Re: 魚(?)のシミュレーション
おぉ~
おもしろそうですね。
前に読んだ本にゾンビが人を追いかけるようなものを、読んだ気がします。(ゾンビ?)
自分で作ったことないので、作れたら楽しいそうだな~と夢が広がります。
まだダウンロードして起動してないですがこれから見せてもらいますね。
このようなものは分野的にはAIに入るんですかね。
明日図書室で本探して作ってみます。
おもしろそうですね。
前に読んだ本にゾンビが人を追いかけるようなものを、読んだ気がします。(ゾンビ?)
自分で作ったことないので、作れたら楽しいそうだな~と夢が広がります。
まだダウンロードして起動してないですがこれから見せてもらいますね。
このようなものは分野的にはAIに入るんですかね。
明日図書室で本探して作ってみます。
Re: 魚(?)のシミュレーション
れんスレ失礼
さっき実行してきました。
(実行してから書けばよかったですね…)
魚の数が増減しても面白そうかな?と思いました。
(生態系のシュミレーションってやつかな?)
赤が追いついたら青食べられて、青が一定時間逃げ切ったら増える、一定時間食べれなかったら赤が減っていく…
みたいなのがあっても面白いかな~と。
個体さって前読んだ本には遺伝プログラムってのが紹介されていました。
時間制限きたときに生き残っていた個体の個体値を記録しておいて次は全員(?)そいつの個体値をある程度受け継いでいたり、して最後にどんな個体値が生き残るのか…とか。
でも個体値ってどんなものがあるんでしょうね。
・最大速度(追われてる時の速さ)
・持久力(最大速度を出しつつけれる時間?)
・群れを探す視野の広さ?
・敵を見つける視野の広さ?
・通常の速度
・群れを優先するか、自分を優先するか?のパラ?
↑よくわかんないけど…
とか?考えると楽しいそうですね。
実際どんな個体値が存在するものなんでしょうか?
(今は個体地なくても作るとしたら)
それと魚の動きもすごくなめらかできれいですね。
さっき実行してきました。
(実行してから書けばよかったですね…)
魚の数が増減しても面白そうかな?と思いました。
(生態系のシュミレーションってやつかな?)
赤が追いついたら青食べられて、青が一定時間逃げ切ったら増える、一定時間食べれなかったら赤が減っていく…
みたいなのがあっても面白いかな~と。
個体さって前読んだ本には遺伝プログラムってのが紹介されていました。
時間制限きたときに生き残っていた個体の個体値を記録しておいて次は全員(?)そいつの個体値をある程度受け継いでいたり、して最後にどんな個体値が生き残るのか…とか。
でも個体値ってどんなものがあるんでしょうね。
・最大速度(追われてる時の速さ)
・持久力(最大速度を出しつつけれる時間?)
・群れを探す視野の広さ?
・敵を見つける視野の広さ?
・通常の速度
・群れを優先するか、自分を優先するか?のパラ?
↑よくわかんないけど…
とか?考えると楽しいそうですね。
実際どんな個体値が存在するものなんでしょうか?
(今は個体地なくても作るとしたら)
それと魚の動きもすごくなめらかできれいですね。
Re: 魚(?)のシミュレーション
>パコネコさん
どうもありがとうございます。
捕食被食関係と、繁殖の概念を実装すると、
数が異常に多くなって処理落ちすることがあるので、
やめておきました。
遺伝はぜひとも挑戦したいですね。
生態系をシミュレートできるよう頑張ります。
個体値を作るにしても、それらの関係を調整するのが難しそうです。
>Dixqさん
遊んでくださりありがとうございます。
観察しかできないプログラムですから、
スクリーンセーバーには確かに向いていそうです。
どうもありがとうございます。
捕食被食関係と、繁殖の概念を実装すると、
数が異常に多くなって処理落ちすることがあるので、
やめておきました。
遺伝はぜひとも挑戦したいですね。
生態系をシミュレートできるよう頑張ります。
個体値を作るにしても、それらの関係を調整するのが難しそうです。
>Dixqさん
遊んでくださりありがとうございます。
観察しかできないプログラムですから、
スクリーンセーバーには確かに向いていそうです。