ゾンビとUnityとUE4

ゾンビネタとUnity/UE4でのゲーム制作についてつづるブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unity ゲーム製作 11 自然物のデザイン


案の定…

仕事と下調べでずいぶんと間が空いてしまいました。

ゾンビゲーだからできるだけゾンビ映画を観て、ゾンビについて書かれた本を読んで考察しておこうと思ったんですが、ゾンビ映画がなかなか消化できません。数が多すぎます…。
1つの映画を3回は観るので、糞映画だと観るのが苦痛でとても時間がかかります。

当ブログの「ゾンビ祭」の記事もまったく追いついていません。
たぶん、60本くらいは観ていると思います。
調べるのと記事を書くので一週間くらいかかっている状態です。

そんなことをしていたら…

あれ?
企画からもう1年以上経ってる…。

Unityもメジャーバージョンがアップしました。
5.0 が出たと思ったら、すぐに 5.1 が出ましたね。

Unity 最新バージョンをダウンロード
http://unity3d.com/jp/get-unity/update

最初はアセットストアで売ってる地形作成ツールか地形データを使って楽しようなんて考えましたが、これから作ろうとしている地形システムには使えそうにありません。
地形作成ツールも、地形データも、自分で作る必要が出てきました。

ツールや地形データまわりの処理を作るのはめんどうな上に時間がかかるので、先に見た目をどうするか、方向性だけでも決めておきたいと思います。



地形に自然物を置いてみる

キャラクター、装備、建物、人工物(木箱、壺、椅子、テーブルなどのオブジェクト)、自然物(木や岩などのオブジェクト)、遠景、GUI、地形…と見た目に関わる部分のほとんどがまだ決まっていません。

唯一、地形のデザインは決まったので、次は木や草なんかのオブジェクトを置いてみて、どう作ったらしっくりくるのか?を色々試してみようと思います。

試行錯誤の結果…。

natural objects 01
木と草を置いてみた。

natural objects 02
岩を追加してみた。

地形がボクセルテレインでガタガタになるので、オブジェクトも8ビット風の粗いドット絵っぽくし、ガタガタな感じで統一。
これはプロトタイプなので、ドット絵は後で手直ししてから使うことになると思います。
絵の粗さはこれくらいがいい。



SpriteかPlaneか

オブジェクトは板にドット絵を貼り付けたものを配置するだけなので、SpritePlane かのどちらかを使うことになりますが、全てPlaneで配置することにしました。
3Dの地形にSpriteのオブジェクトを配置したときの問題点は以下の2つです。

・影を別途作らないといけない。
・ライティングの影響を受けないので、地形とマッチしない(浮いて見える)。




PlaneのMaterialに設定するShader

Planeでテクスチャを表示させるには、Planeに指定するMaterialを作って、そのMaterialにテクスチャを指定します。
テクスチャをどのように描画するかはShaderで指定します。
Materialに指定するShaderですが、Transparent Diffuse だと、透過色が含まれるテクスチャを使ったときに影が描画されなくなります。
この条件で影を描画させるには、Unity 5 の場合 Legacy Shaders → Transparent → Cutout → Diffuse を指定します。



オブジェクトの作り方

1. 透過png を Assets に読み込み Import Settings で Alpha Is Transparent をチェック。
2. 新規で Material を作成し Transparent Cutout Diffuse のシェーダと1.のテクスチャを設定。
3. Planeを 作成しX軸を90度回転(Transform Rotation X 90)。
4. 3.の Plane の Mesh Renderer - Materials Element 0 に2.の Material を設定。
5. 必要なら Collider を追加。



アニメーション

木の枝がしなったり、風で枝が揺れたり、草に接触すると草が折れ曲がったり…というアニメーションをさせたいのですが、以下の2つの理由で今回はやめます。

1. 絵を描く作業量を減らしたい。
2. Planeに貼り付けているテクスチャをアニメーションさせる仕組みを作る必要がある。


オブジェクトは、SpriteではなくPlaneを使っているので、Animatorが使えません。
なので、スプライト画像を使って、Planeでアニメーションさせる仕組みを作る必要があります。
この仕組みを作ってしまえばキャラクターでも使えそうなんですが、キャラクターはスプライトで済まそうと思います。

理由は単に作業時間を減らすためです。
バージョンアップで対応できたらいいなぁ。



流体

2Dサンドボックスゲー「テラリア」をプレイして関心したのは、自然物の表現がとても巧みなところ。

土ブロックを置くと、時間と共に様々な植物が生えます。
土の天井からはツタがぶら下がり、時間と共にツタが伸びます。

中でも関心したのは、流体の表現です。

水・溶岩・大量のハチミツがきちんと重力に従って流れ落ち、水溜りに飛び込めば水面が波打ちます。

terraria_water 01
緩やかな水の流れ。

terraria_water 02
急な流れ。
高い位置にある水溜りに水を落とすと水が溢れ、下の水溜りへ流れ落ちます。
この場合は異なる流れ方をします。

出来れば流体の表現もきちんとやりたいところですが、これも後回しにします。


※追記

気体

炎から出る煙やガスなどの見える気体の表現にはパーティクルを使います。
Unityのパーティクルシステムは Shriken と呼びます。
スプライトを大量に表示させることに最適化したシステムなので、素直に Shriken を使うのが良さそうです。
煙や霧など、スタンダードなものは Asset Store にあるでしょうから、流用したいところ。



まとめ

・自然物オブジェクトはプレーンで配置。
・アニメーションは後回し。
・キャラはスプライトでやる。
・流体も後回し。
・気体はパーティクルでやる。

 
スポンサーサイト

- 0 Comments

Add your comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。