2014年10月29日

ゲームのアップグレード (6) | ゲームのクオリティアップ part1

さーて、隕石のバリエーションは増えたんで、また、ゲームやってて気になる部分を潰して、ゲーム全体のクオリティを上げて行きましょうかね!!


隕石が地球に近づいた時の追加表現
さて、今ゲームの問題として、隕石がいつ地球に触れるのか分かりにくくて、ゲームオーバーになっても納得がいかないんですが、そこ、ちょっと分かりやすい表現が出来ないか頑張ってみたいと思います。

え〜っと、隕石が一定の高度より低くなったら、通常何が起こるか?
ん〜、まぁ多分、大気の層に触れて燃え始めるとおもうんですよね。
なんで、隕石が地球に近ずいたら、オレンジのポイントライトを隕石の先に置いて、地球にも当たる様にして、距離感が分かりやすくなんないかなぁ〜、っておもってる次第です。
なんで、そんな処理を実装してみますね。
いい感じに見えるといいにゃ〜。


隕石プレファブにライトを追加
さて、隕石のプレファブにポイントライトを追加です!
Hierarchy ビューで見ると、こんな感じで "PointLight" って名前で新規の GameObject を追加。
Screen Shot 2014-10-27 at 9.54.05 PM.png
ライト自体の設定は、こんな感じ。当然 Type は "Point" で。
Screen Shot 2014-10-27 at 9.54.15 PM.png
Position は、スクリプトから動的にいじるんで関係ないっす

さ〜て、スクリプトの方ですが、もうひとしきり苦労した後のほぼ完成版です!
ここで、ポイントライトの位置、レンジ、さらに隕石マテリアルの色を、隕石の地球からの距離に応じて調整してます。
Screen Shot 2014-10-27 at 10.04.54 PM.png
すっごいざっくり説明すると....
まず、今の高度を調べて、一定より低ければ、ポイントライト起動。enableします。(179〜182行目)
高度によって、マテリアルの色を、白っぽい色から赤っぽい色に調整。(185〜187行目)
元々、これはやる予定無かったんだけど、ポイントライトだけだといい感じの表現出来なかったんで、急遽追加したんですよね。
これのおかげで、まぁ受け入れられる範囲の表現になったかな?アーティストがいれば、ちゃんと作ってもらえるんですけどねぇ〜。
隕石が移動している方向ベクトルを取得。その向きに隕石のスケールを書けて、隕石の進行方向の先にポイントライトが位置する様なオフセット座標を求める。まだ代入しないけど。(190〜193行目)
別途、隕石の高度に応じて、ポイントレイトの範囲を決定して、セット。(195〜198行目)
さらに、さっきのオフセット座標が、もし地球にめり込んでしまう様だったら、地球表面に位置を固定。
さらに、めり込んだ分、ポイントライトのレンジを広くして、明るさを調整。(200〜210行目)
最後に、さらに見た目を良くする為に、ポイントライトの位置を、XZ平面でカメラ方向にちょっと補正。これでポイントライトの効果をカメラから見やすくする。(212〜218行目)

以上!!
で、実行してみると...
結構大変だったんだけど、苦労の甲斐はありました!!

ちょっとマジックナンバーが多いけど、見た目の調整部分だから、この辺はしょうがないよね。
納得いく見た目になるまで、しっかり時間をかけて調整だね!


隕石が地球に当たった時のエフェクトも追加
さて、隕石が地球に当たった後ですが、さっきの動画でも見える様に、すぐ消えちゃうんですよね。
特にいい感じの専用エフェクトがある訳でもないし、基本隕石落ちたらゲームオーバーなんで、これまでのポイントライトを利用して、簡単にエフェクトを追加してみますね。
ま、ほぼタイトル画面専用な感じだけど。

仕様としては、隕石が当たった時に、親戚メッシュのレンダリングを止めて非表示に。
でも、ポイントライトだけ残して、レンジパラメータだけいじって、地表で爆発してる感じに見せたい。って感じです。
ホントはアニメーションとか使ったらいいのかなぁ〜?
でも、今回は直書きでやっちゃいましたw
Screen Shot 2014-10-27 at 11.16.40 PM.png
こんな感じで、3つステップを作って、爆発の拡大、停止(微妙に縮小)、縮小ステップを作ってレンジをそれぞれ違うパラメータで調整。これで、地球の表面で爆発が起こってる感じにするんだけど、ちゃんとそんな感じにみえるかにゃ〜.....
ま、大丈夫だよね、これで...?

        にほんブログ村 ゲームブログ×PlayNCBlogへ
 初めてみました。よかったらクリックお願いね ♪


まだまだ謎も不思議もいっぱい!

posted by やまけん at 09:34| Comment(0) | Unity | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: