晴れ時々Unity、そののち映画Unityを使ったモバイルアプリ制作をはじめてみた、私の制作奮闘記。part1さーて、隕石のバリエーションは増えたんで、また、ゲームやってて気になる部分を潰して、ゲーム全体のクオリティを上げて行きましょうかね!!隕石が地球に近づいた時の追加表現さて、今ゲームの問題として、隕石がいつ地球に触れるのか分かりにくくて、ゲームオーバーになっても納得がいかないんですが、そこ、ちょっと分かりやすい表現が出来ないか頑張ってみたいと思います。え〜っと、隕石が一定の高度より低くなったら、通常何が起こるか?ん〜、まぁ多分、大気の層に触れて燃え始めるとおもうんですよね。なんで、隕石が地球に近ずいたら、オレンジのポイントライトを隕石の先に置いて、地球にも当たる様にして、距離感が分かりやすくなんないかなぁ〜、っておもってる次第です。なんで、そんな処理を実装してみますね。いい感じに見えるといいにゃ〜。ライト自体の設定は、こんな感じ。スクリプトから動的にいじるんで関係ないっすさ〜て、スクリプトの方ですが、もうひとしきり苦労した後のほぼ完成版です!ここで、ポイントライトの位置、レンジ、さらに隕石マテリアルの色を、隕石の地球からの距離に応じて調整してます。すっごいざっくり説明すると....まず、今の高度を調べて、一定より低ければ、ポイントライト起動。(179〜182行目)高度によって、マテリアルの色を、白っぽい色から赤っぽい色に調整。(185〜187行目)元々、これはやる予定無かったんだけど、ポイントライトだけだといい感じの表現出来なかったんで、急遽追加したんですよね。これのおかげで、まぁ受け入れられる範囲の表現になったかな?アーティストがいれば、ちゃんと作ってもらえるんですけどねぇ〜。隕石が移動している方向ベクトルを取得。その向きに隕石のスケールを書けて、隕石の進行方向の先にポイントライトが位置する様なオフセット座標を求める。(190〜193行目)別途、隕石の高度に応じて、ポイントレイトの範囲を決定して、セット。(195〜198行目)さらに、さっきのオフセット座標が、もし地球にめり込んでしまう様だったら、地球表面に位置を固定。めり込んだ分、ポイントライトのレンジを広くして、明るさを調整。(200〜210行目)最後に、さらに見た目を良くする為に、ポイントライトの位置を、XZ平面でカメラ方向にちょっと補正。これでポイントライトの効果をカメラから見やすくする。(212〜218行目)以上!!で、実行してみると...結構大変だったんだけど、苦労の甲斐はありました!!ちょっとマジックナンバーが多いけど、見た目の調整部分だから、この辺はしょうがないよね。納得いく見た目になるまで、しっかり時間をかけて調整だね!隕石が地球に当たった時のエフェクトも追加さて、隕石が地球に当たった後ですが、さっきの動画でも見える様に、すぐ消えちゃうんですよね。いい感じの専用エフェクトがある訳でもないし、基本隕石落ちたらゲームオーバーなんで、これまでのポイントライトを利用して、簡単にエフェクトを追加してみますね。ま、ほぼタイトル画面専用な感じだけど。仕様としては、隕石が当たった時に、親戚メッシュのレンダリングを止めて非表示に。ポイントライトだけ残して、レンジパラメータだけいじって、地表で爆発してる感じに見せたい。ホントはアニメーションとか使ったらいいのかなぁ〜?でも、今回は直書きでやっちゃいましたwこんな感じで、3つステップを作って、爆発の拡大、停止(微妙に縮小)、縮小ステップを作ってレンジをそれぞれ違うパラメータで調整。これで、地球の表面で爆発が起こってる感じにするんだけど、ちゃんとそんな感じにみえるかにゃ〜.....ま、大丈夫だよね、これで...?初めてみました。2.0Seesaaブログ。