記事一覧

【Unity】にょろにょろしっぽ作ってみた

ファイル 75-1.jpg

UnityでR-typeのインスルーみたいな長いしっぽを持った敵を作るスクリプトを考えた。
しかもかんたん。

WebPlayerとコードはこ↑こ↓

決め手は、yield WaitForSeconds(秒数);
「現状の頭の座標を0.1秒後にしっぽの関節iに適用」という命令を毎フレーム実行してやると、
頭に常に0.1秒遅れて追従するしっぽが出来る。あとは関節の数だけそれを繰り返してやるだけ。

今日出勤前の歯磨き時にひらめいて、実際作ってみたら全てうまく行ったという奇跡めいた出来事だ。

今回注意したいのは、グラディウスのオプションのようにはならないこと。
グラディウスは頭が止まると関節の動きも止まるが、
この方法だと止め方が存在しないので停止している頭の位置に向かって関節が収束してしまう。
つまり常に動き続けているヘビ型キャラにだけ使える技だってことだ。

頭が止まっているあいだ関節も止めたければ、一般的な追従オブジェクトの組み方である
『頭の座標を数十フレームほど配列に常時記憶しておき、関節の座標を配列の途中から取り出す』
(止めるときは取り出すのをやめる)というやり方をとる他ないのではないかと思う。
そんな処理をする価値のあるキャラクターかどうか?って所と相談してどちらの方法を採るか決めるべきであろう。

コメント一覧