プチメタ3.0

刺激を受けた物事に対する感想や考察、資産運用や英語学習、自己成長に関することなど。


土地を綺麗に使っているコインパーキングが好きだ


都市部だといろいろな場所にコインパーキングがあるが、
その土地の使い方はかなりさまざまだ。




これはそれぞれの駐車スペースに
道路からダイレクトに入庫できる最高の状態。
こういう綺麗な使い方をしているところは感心する。




仮にこの土地の広さが2倍になったとしても、
車が出入りする通行スペースを考えると
駐車台数はあまり増えない(下手をすると減る)。


土地が広くても駐車部分だけにスペースを割けないところが難しく、
面積をうまく有効利用している駐車場を見つけると嬉しい。



mclover.hateblo.jp

mclover.hateblo.jp

新たな皿を買う必要性がなさすぎて食器屋が心配になる


実家を出て新居を構えるときに
いろいろな皿を買い揃えたが、
日々の生活でそれらが割れることがほとんどなく、
もう20年近くが経とうとしている。


フライパンや箸は使用に伴って傷んでくるのだが、
皿に関してはどれもずっと長持ちしていて
新しく買い足す必要がまったく生まれないのだ。


食器が売っている店はよく見かけるが、
果たしてどれだけの頻度で売れているのか心配になる。

ランダムで過去記事を表示するリンクを設置した


このブログを開設してからかなりの年月が経ち、
少しずつ書き連ねた記事も2000を超えている。


そうなると昔に書いた記事に触れる機会が減るので
適当な過去記事をランダムで表示する方法があればいいのにと思い、
いろいろ探してみると同じようなことを考えている人がいたので
その知恵を借りて各記事の末尾にそういうボタンを用意してみた。



これによってランダムで過去記事に飛び、
それを読み終えたらまた別の記事に飛ぶ、という
次々と読み漁ることができて楽しい。


だいぶ前に書いた記事を読む人が増えると嬉しい。

衝突判定に必要な3Dモデルの大きさを自動計算する仕組み


ゲームというものは2Dであれ3Dであれ
「何かと何かが衝突する」という状況が多く発生するが、
その判定には当然ながらそれぞれの大きさの情報が必要になる。


2Dゲームの場合は画像の幅や高さを使えばいいが、
3Dゲームの場合はどのようにしているのか、
そのあたりの仕組みを解説してみる。

3Dモデルは頂点の集合体


立体的なキャラクターや背景モデルは
「ポリゴン」と呼ばれる三角形の板で構成されており、
そのポリゴンは3つの頂点が1セットになっている。


平面を使って立体物を表現する手法は
ペーパークラフトに非常によく似ている。




つまりこういった複雑なモデルであっても



結局は多数の頂点が集まっているのだ。


形が複雑になればなるほどポリゴンが増えるのだが、
それらを使って真面目に衝突判定をしていると
計算負荷が大きくなってゲーム中に処理できない。


そこでいかにシンプルに考えるかが重要になる。

モデルを球体に見立てる


たとえばモデルの中心から各頂点までの距離を求め、
その中で一番遠い値を半径とする球体をイメージする。




一番遠い場所にある頂点を基準にしているので
すべての頂点がこの球体の中に収まるはずだ。
つまりこれが3Dモデルのおおよその大きさを表す球となる。


衝突する物体同士を球に見立てれば
2Dゲームと同様に三平方の定理で高速に判定することができる。
これは各作品で非常によく使われている方法だ。


ただし、モデルの形が球状から大きくかけ離れていると
当たっていないのに衝突したと見なされる違和感が出る。




そういう場合は複数の球体を埋め込む形で
ある程度、モデル全体の形に近づけて判定する。
球の個数が多くなるとやや計算回数も増えるが、
それでも三平方の定理だけで処理できるメリットは大きい。

モデルを直方体に見立てる


もうひとつの方法として、
各頂点の中でもっとも大きなX座標の値を調べる。
つまり一番右にせり出している頂点のX座標だ。


同様に、全頂点から最大のY座標と最大のZ座標を探す。
これは一番高い位置の頂点、一番奥にある頂点となる。
それらの値を組み合わせると
もっとも右・上・奥の角を表す座標となる。


さらに全頂点からXYZ座標の最小値も調べて
もっとも左・下・手前の角の座標を割り出す。




その2つの座標が対角に位置する直方体をイメージすると
3Dモデルがぴったり収まるボックスができあがる。


球体として扱いにくいもの、たとえば戦車などは
こういった直方体として考える方がよかったりする。

まとめ

ゲーム機のスペックはどんどん進化するが
その恩恵の大半はグラフィック部分に回されるため、
内部的な処理はできる限りシンプルで高速にする必要がある。


見た目は豪華でも計算上は実は簡略化して判定していることは多く、
最新のゲーム作品であっても
さまざまな工夫と原始的な理屈がベースになっている。



mclover.hateblo.jp

総アクセス数