マップチップとの当たり判定がどうの!

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

表題のような質問が定期的に現れる不思議な現象.
「ポインタがわからない」とかいう都市伝説気味た話なんかでは比較にならない頻度で
目にしているような気がする.(気のせい?)

【マップチップ方式における当たり判定の方法がわかりません><】
という点に関しては,まぁ,わからんことは仕方ないとしても,だ.

自身が
「こういう方式でデータ持ったらー… 当たり判定とかー,できなくない?みたいな?w」
とかいう状態なのに,その方式の採用に躊躇が無いところが,なんというかもう,ほんと謎.

その方向に突っ走ったらすぐにでも行き詰ること確定なのに,突っ走って行き詰るっていう.
いくら何でも,頭空っぽすぎない?

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

例えば,
【せっかくだから俺は文字列のデータを,(1つのノードが1文字のデータを保持する)リンクリストで表すぜ!】
とかいう方法を考えついたとしてもだ,
自身がこれから作るプログラムにおける文字列データの主な用途が
「ファイルから読み込んで,それを表示する」ことだったならば,

 「あ,これ,面倒なだけで,あかんやつやんw」

ってなるよね.採用を思いとどまるよね.

この例だと「できない処理」がぱっと思いつかないけども,
やることに思いを巡らせてみて「あ,これできないんじゃ…?」という処理が存在するなら,なおさら採用しないっしょ.

ここで言う「できない」の意味が
「原理的に無理」ではなくて「自身にはできないだけで,やる方法はあるハズ」という話なら
こういう場所で質問するにしても【実施する前に方法論について質問する】形になるのが自然なんじゃ?と思うわけ.
(まぁ,そういう形で質問すると「試してできた部分までのコードを晒せ」とか言われそうな気もするんだけど)

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

【やってみなくちゃわからない】という話もある.
ある方法で全ていけると思ってやってみたら,想定外の箇所に問題があることがわかった,こいつは困ったぜ!というような.

でもねぇ,「マップチップ~」の話はそんなタイプじゃないよね.
だって,マップチップってのは, まさに当たり判定のために用意したデータ構造 なんじゃないの?
(「いやいや,用途は表示オンリーです」って言うなら,そんなデータを無理矢理判定に使わなきゃいいわけで.)



……というのが,私が不思議に思うところ.

(何か長文書くとタイムアウト率が高い気がするので小分けにした)

アバター
もるも
記事: 54
登録日時: 9年前

Re: マップチップとの当たり判定がどうの!

投稿記事 by もるも » 6年前

マップチップと当たり判定というのは、ゲーム初心者がよく通る道かと思います。
こういう形式は未だ作りやすさ(3Dのものと比べて)の点で人気ありますよね。
だから今後もこういう質問いっぱい上がるんじゃないでしょうか(笑)
解決せずに失踪する場合が多いから、過去ログも参考にならないですし(;^ω^)

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

> 作りやすさ

っていうのは,
 当たり判定等々の処理が作りやすい
ではなくて
 データを用意しやすい(あるいは,データを用意する手段を用意しやすい)
みたいな方向…ということなのか.

マップチップ方式ならば,
・それ系のデータを吐いてくれるツールが手に入る
とか
・そうでなくとも,とりあえずソースに2次元配列を書けばデータを用意したと言える
とか.

要は,私が思っている
【処理の都合がいいデータ構造を決める → そのデータ構造のデータを用意する】
という方向ではなくて,
【とにかくデータを用意しやすいデータ構造を使う → そのデータ構造に対して,どうやって処理すればいいか考える】
という.

であれば,「まずマップチップありき」みたいなことになる動機に関しては,賛同はできないけれども,意味はわからんでもない…か.

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

で,それはそれとして,だ.

これ系でやるべき処理を
・当たってるかどうかを判定する話
・当たったとわかった後の話
の2つに大分した場合,
「めり込むんです><」とかいう話の原因が後者の側:
キャラクタの位置Pを,移動量Vだけ素直に動かして P=P+V として更新することが当たり判定的に許されない場合,P(やV)をどう更新するのか?
という話の方が,処理内容自体の話が論じられやすいので,見てて楽しい.
(というか,前者側だと大抵,「ザ・デバッグ代行」みたいな…)


あんま関係ないけど,
FCの頃のDQは移動が1マス単位だったんで,壁の方に動こうとした場合は「ドゥ」という素敵な効果音が鳴るだけで,キャラクタは動かなかったんだけど,
SFCになったあたりから移動が半マス単位みたくなり,
キャラクタを障害物に対して「半キャラずらし」な形で突入させようとすると,勝手に直角な方向に移動させられるようになった.
それ自体はまぁ良いかもしれないけども,せめてその「勝手な」移動ではエンカウントしないようにしてくれませんかね,っていう.
あれ,すっごいイラッとするんですけど.

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

Pixelの世界で 当たり判定 をやってるんなら,
最も簡単で頭使わなくて良くて,うまくいってるかどうかが視覚的にも確認しやすい方法ってのは
「最初に一発,マスク用意すればいいんじゃねーのw」だと思うんだが,
(少なくとも私がここで見たことある質問では)そういう方法をとる人がいないのも割と不思議.

各画素の位置が通れるか通れないかを表す2値画像を作ればいいよね.
「壁」をキャラクタの当たり判定形状の分だけ膨張させたマスク作れば終わるっしょ.
キャラクタの一回の移動量がマップチップサイズから見て「十分小さい」なら1画素チェックするだけ.
移動量が大きい場合でもブレゼンハムでおk.

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

この日記のタイトルと全然関係ないんだけど,
唐突に いわんさんの迷路作成ソフト で作った絵の壁の法線方向を色分けしてみた.
(白(壁)だった箇所は,便宜上暗い緑で塗ってある)

うーん,何かゲーム的にできないものか…
何かがめっちゃ跳ね返るとか?
Maze.png
元の絵
Normals.png
法線方向を色相にして色塗り

アバター
いわん
記事: 32
登録日時: 9年前

Re: マップチップとの当たり判定がどうの!

投稿記事 by いわん » 6年前

なんか立体感が出てきましたね。
ボールを転がしたらポンポン跳ねる感じ?
レースゲームの凸凹道障害とか。

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: マップチップとの当たり判定がどうの!

投稿記事 by usao » 6年前

スタート地点から任意方向にレーザービームみたいなのを発射
→壁で跳ね返りまくる
→一定時間内にゴール地点をブチ抜いたらクリア

みたいな?
「一定時間」で到達した箇所に都度スタート地点が移動するならゴルフみたいな雰囲気?

うーん……