質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

976閲覧

フロッキングアルゴリズムの衝突判定

apa

総合スコア68

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/06/09 03:50

フロッキングアルゴリズムの勉強をしております。
ここで1つどうしても理解できないことがあります それが衝突判定です。
ゲーム開発者のためのAI入門という本とネットで検索しているのですがどちらも図がわかりにくく、理解に苦しんでおります。
障害物を探知し、それを避けて行動させたい場合どういったプログラムになるのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

群れをごにょごにょ動かすやつに

フロッキングアルゴリズム

という名前があることを初めて知りました.

で,アルゴリズムに「他のやつらから離れる」というルールがあるハズですので,簡単な方法としては,それを応用する手が考えられます.
すなわち,障害物の位置に【位置固定で,「離れるルール」でのみ参照される】特別な個体を配置しておく.
(もちろん,これだけでは「衝突してしまうこと」を防止するものにはなりませんが,避けようという動きは見られるようになるハズです.)

投稿2020/06/09 04:41

fana

総合スコア11996

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

apa

2020/06/09 10:17

なるほどたしかにそういったほうほうもありですね! ためになります ありがとうございます
guest

0

一番手っ取り早いのはレーザーを発射させてそのレーザーがあたった場所で状況を把握するというものです。
そうすればAIは自分で障害物を検知してくれるはずです
それか、AIに(最も近い)障害物の情報を与え、その障害物との距離で報酬を決定するのも手です(強化学習の場合)。ただ、その場合、障害物が多すぎると重くなってしまうので注意が必要です。

投稿2020/06/09 03:59

編集2020/06/09 04:00
Luke02561

総合スコア404

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

apa

2020/06/09 10:21

すいません報酬というのはどういったことでしょう? レイを飛ばして当たり判定を起こすこと自体はわかっているのですが、自分としてはそれを感知して 別の方向に曲がるようにしたいとおもっています。 いぜん for(;;)( if(当たっている) ( 自分の角度を開店 ) else break ) のようにも作ったのですが、 うまくいきませんでした。
Luke02561

2020/06/09 12:40

AIとあったので強化学習かと思ってしまっていました。 報酬というのは強化学習を行う際に必要となってくるものです。 (あまり気にしなくて大丈夫です)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問