テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】戦車!飛行機!直立2足歩行!!三段変形するロボ「Transforming Robot」のロマン

人型巨大ロボ、それは夢。
たとえ戦車より被弾面積多くて、機動力無くて、燃費が悪くて、火力も低くて、操作性が悪くて、構造が複雑で、だから故障率高くメンテナンス性悪そうで、稼働率低くても、ロマンがあるので何の問題もありません
そこに変形機構なる追加ロマンを加える事で浪漫はさらに加速する!

f:id:tsubaki_t1:20151220104928j:plain

http://u3d.as/iSC

いつか誰か(日本か韓国か中国か台湾)が作ってくれると信じてましたよ!
ちなみに自分は腕が太くてずんぐりむっくり歩くロボが好きです。ダイガードとかビッグオーとかジャイアントロボとかガオガイガーとかそこらへん。

脅威の3段変形機構

このロボには3つの変形を搭載!陸海空?ゲッター123?ウェブライダー?乗っただけ融合?いいや違うね!

大地を駆ける戦車モード!
高い防御力(防御面積的な意味で)とわかりやすい火力を備え、キャタピラで移動するモードだ!
悪路も無限軌道でなんのその!どこぞのロボと違い斜面だって登れる
このロボで倒せる敵なら、このモードで倒せない敵は居ないぞ!

f:id:tsubaki_t1:20151220105138j:plain

大空を護るプレーンモード!
高速移動が可能なフライトタイプだ!
どんなピンチが起こってもすぐに駆けつけるぞ!
危なくなったらこのモードで逃走だ!

f:id:tsubaki_t1:20151220105152j:plain

人型決戦モード!

すごいぞ!

f:id:tsubaki_t1:20151220105806j:plain

ちなみにパイロットも乗ってるぞ!パイロットのBOY氏は「人型モード時は揺れるしコックピット丸見えだし生きた心地がしない」とか語ってるかもしれないけど、大した問題じゃないぞ浪漫があるし!

f:id:tsubaki_t1:20151220115306j:plain

f:id:tsubaki_t1:20151220115314j:plain

 脅威のコントロールシステム

このロボを制御するシステムは若干複雑だぞ!なにせ「飛行機→戦車」と「ロボ→戦車」への変形シークェンスが異なるんだ!
しかも殆どの制御をTriggerで行っているので、制御タイミングが少し複雑だ!

f:id:tsubaki_t1:20151220110821j:plain

f:id:tsubaki_t1:20151220111031j:plain

宜しいならば改造だ!
まずは散らかったステートを整理だ!サブステートマシンを作ってそこに放り込めば、トランジションを維持したままステートの整理が出来るぞ!

f:id:tsubaki_t1:20151220111451g:plain

最終的にはこんな感じだ!全体は3つのモードにまとめて、内部的には各ステートへの参照を持つ!これで大分何やってるのかわかりやすくなった…かな!

f:id:tsubaki_t1:20151220112422j:plain

f:id:tsubaki_t1:20151220112430j:plain

モードの切り替えは整数で指定したぞ!これでガチャガチャ切り替えた時に整合性取りやすくなる!本当はenum使えれば分かりやすいけど、未対応なので仕方が無いぞ!
ちなみに1が戦車、2が飛行機、3がロボだ!
制御が楽になる変わり、標準で付いてるスクリプトから制御できなくなるけど、そこらへんは勇気で補えばオッケー。

f:id:tsubaki_t1:20151220112829j:plain

あとこのロボは初期値だと変形がメッチャ時間かかるから、PlaneToRoboみたいな変形するステートは速度を4倍ぐらいにしても良いぞ!変形中の隙が無くなる!ガオガイガーみたいな超電磁竜巻無いし!
まぁ、変形合体中に殴ってくるようなのはゲッターチームとかゾンダーロボしか居ない…よね?

脅威のメカニズム

このロボだけど、見る角度によってはロボ=サンのステルス=ジツが使われて、キャタピラしか見えないような状況になってしまうんだ!
どうしてこうなった…(キャタピラが見えてる的な意味で)

f:id:tsubaki_t1:20151220113748j:plain

理由は凄く簡単で、Camraの描画範囲にSkindMeshRendererのBoundsが入っていないからなんだ!
SkindMeshはとても負荷が高いので可能な限り描画しないための仕組みだけど、今回の場合は戦車を基準に作られてるせいもあって、範囲から外れてしまったみたいだ!SkindMeshRendererのBoundsを設定を立った時のサイズで調整してやればOK!
ちなみにキャタピラは別メッシュで、Boundsが一致してたので正常に動作してたって訳さhahaha

f:id:tsubaki_t1:20151220114206j:plain

f:id:tsubaki_t1:20151220114830j:plain

f:id:tsubaki_t1:20151220114848j:plain

関連

tsubakit1.hateblo.jp

作者:Blenderで遊ぶ