いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

Unityでビルボードを作る!(2) Unityの書籍紹介

 前回、Unityでビルボードを実現、という話を書きました。
www.omoshiro-suugaku.com
調べると、オブジェクトには、それを構成する点が4点しかない、本当の平面みたいなものがあるようです。3DオブジェクトのQuadというやつです。実験してみました。これに絵を貼り付けて表示してもビルボードになりました。
 赤がx軸、緑がy軸、青がz軸です。Quadは(Planeとは違って)生成時に立ち上がった状態になります。写真はQuadのこちら側、つまり画面側に貼り付くようです。下の図は写真を貼り付けたところです。
f:id:Inuosann:20210210222512p:plain:w200
そしてLookAt()は、オブジェクト生成時のz軸の向き(つまり今回の話では写真の裏側、犬の見えない側)が目標を向く仕様だそうです。要するに、単純にLookAt()を使うと写真の裏側が目標を向いてしまい、何も見えなくなってしまうのです。なのでLookAt()の後、ローカルのy軸を中心に180°、回転させなければなりません。コードは以下の通りです。

GameObject inuo2 = GameObject.FindWithTag("Inuo2");
GameObject target = GameObject.FindWithTag("target");
inuo2.transform.LookAt(target.transform);
// ローカルのz軸中心に180度回転するQuaternionを作成
var rot2 = Quaternion.AngleAxis(180f, inuo2.transform.up);
inuo2.transform.rotation = rot2 * inuo2.transform.rotation;// Quaternionを使って回転させる

結果の画像は次の通り。
f:id:Inuosann:20210210205101p:plain:w300
 これでやればいいかな……。犬の写真の面が目標の球の方を向いています。敵の発射するたくさんの弾なんかはこれで十分な気がします。

 Unityの本をまた買いました。3冊目です。

まだザッと眺めたくらいですが、3冊の中ではこれが一番難しいと思います。実際に遊べそうなゲームを4個作っており、参考になりそうな情報がたくさん載っています。ある程度読んだらレビューします。
 最初に買った2冊は順に、次の通りです。内容も、買った順も正解でした。1冊目だけでも一応、ゲームを書けるようになるでしょう。2冊目で知識を整理し、より高度なことを勉強できます。この辺までで、あとはうまく組み合わせればいいゲームができると思います。ネットの情報を役立てる知識も身につきます。3冊目は、2冊目までで書いていないこともたくさん載っていそうで、さらに質を高くできると思います。
 ぼくは3冊目は実際にはコードを入力して実験して……とはやらないと思います。もう一刻も早く自分のゲームを書きたくて仕方ないので。