見出し画像

HADOにおける照準と射出点のズレ補正

導入

「学校でHADOが使われる」というのは、一般的には「体育の授業で使う」というふうに解釈されているようですね。確かにテクノスポーツとして展開しているし、そうした解釈は至極真っ当です。

でも最初に「学校でHADOを使う」と聞いたときは、プログラムの教材にでもなるのかと思ってました。もちろん、コードをオープンにしているわけでも、素材を配布しているわけでもないですが、ARという割と新しい(マサカリはやめてほしい)技術や、今や誰にでもフレンドリーなモバイルデバイスを使用していること、Unityの普及などから、HADOのようなコンテンツを授業で模倣して作ってみたりするんだろうかとか。技術的側面での学習教材になるなんて、HADOも出世したなあと思ったものです。

でまあ実際、コードや素材を配布する訳にはいかないんですが、SphereとCubeだけあれば弾と壁は作れるし、UIなんかは適当に数字を置いておけばいいので、素材はなんとでもなるんじゃないかと。ベース技術であるAR Foundation、二眼化、Marker Detection、腕を再現するならばもう1台のデバイスとBTLEを少し嗜めばまあ大体再現できるし、実際大陸の方では模倣コンテンツが山のように出ているっぽいので、「HADOっぽいものを作ってみよう」という授業は成立しそうな気がしますね。アドバイザーみたいな役柄で生徒の開発に参加してみたい。

とはいえ、HADOも伊達に数年稼働しているわけではありません。数ヶ月あれば基本的なシステムは作れるかもしれませんが、かなり細かい工夫をいろいろとやっています。今日はそのへんの工夫の話をひとつ。

本編

例えば、カメラの中心から弾を出す、それだけのロジックを作ったとします。すると一瞬ではありますがカメラの目の前が弾で埋め尽くされることになりますね。これでは視界を奪われてしまうことになり、安全面に不安のある実装となってしまいます。
これを防ぐための施策のひとつとして、HADOは弾を画面の少し右下から出しています[図1]。右利きのプレイヤーから見れば自然に見えるけど、左利きだと少し違和感があるかもしれないですね。あれ?左下版作ったんだっけ?導入したんだっけ?そんな話もあったような気もしますが。一旦今回は、照準と弾が出るところが違うというところが議題です。

で、照準と弾の射出点が違うと、到達点に少しズレが生まれてしまうのが分かるでしょうか。[図2]は照準の中央から伸びる直線と、照準よりも右下にある射出点から伸びる直線の図です。照準の中央がライフを正確に狙っているのであれば、照準よりも右下にある弾の射出点が弾をまっすぐ飛ばしてしまえば、照準が狙っている場所よりも当然右下寄りに着弾するはずです。これでは、狙ったところに飛んでいきません。

実際は当然そうなっていません。[図3]にあるように、照準の中央が狙っている場所を撃ち抜くよう、弾はやや左上に向かって飛んでいます。だからもし相手が避けてしまえば、弾は正面の壁ではなく、やや左上の壁に着弾することになりますね。

この「やや左上」は、後衛と後衛ではあまり気になることはないですが、前衛と前衛では相当なズレが生まれることになります。

[図4]のように、相手プレイヤーが眼の前にいたとします。このとき照準が相手プレイヤーの上側のライフを狙っていれば、弾は右下から出て照準の狙う上のライフに向かって飛んでいくことになります。そこで[図5]のように相手が緊急回避したとします。すると上側のライフを狙って飛んでいたはずの弾は、その角度を維持したまま、明後日の方向に飛んでいくように見えます。撃ったプレイヤーは上を向いているわけではないのに、弾だけが上に飛んでいってしまうわけです。

この現象は当然シールドにも適用されます。

[図6]は、シールドのすぐ前で、シールドの縁に向かって弾を打つときのイメージ図です。この状態で弾を出すと、弾は右下から出ているはずなのに、シールドに当たっているはずです。たぶんめちゃくちゃ鋭角で出てますよね。この状態を前提とするなら、それが自然だからです。

と、このように「やや左上」のレベル感は時と場合によってかなり具合が異なるんですが、いずれにしても、プレイヤーの直感に即す作りになっているはずです。最近のHADOは上や下を向けるので、たまに変な方向に弾が出てもそっちを向いてたんだろうと推察できますが、マーカー版の頃はそもそも向けなかったので、やたら上に飛んでく弾があったとすれば、このギミックが種明かしということになります。カンのいい人は気付いていたのかもしれません。

結び

とまあこんな具合で、細かいところに工夫が色々とあるという話でした。気が向いたらまたなんか書くかもしれません。それではまた。


この記事が気に入ったらサポートをしてみませんか?