ゾンビとUnity

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

スポンサーサイト

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

Unity ゲーム製作 12 人工物のデザイン(15/07/17更新)


人工物といってもねぇ…

自然物のデザインはざっくりと決まったので、今回は人工物のデザインを決めたいと思います。
人工物といっても、色々なものがありすぎます。
細かく見ていくと終わらなくなりそうなので、ざっくりとした方向性と、使用頻度の高そうなものについてのみ決めておきます。

1. 自然物と同じく、8ビットゲーム風の粗いドット絵。
2. 自然物と同じく Plane を使う。




建物(外観)

自然物と同じ。
奥行きが表現できないので、できるだけ奥に配置する必要がある。
8ビット時代の2Dゲームは、家などの建物は背景と一体化していたが、それを参考にしてみる。

ダウンタウン熱血物語 がんばれゴエモン

あれこれ試行錯誤。

Artificiality 01
Plane で家をいくつか配置。

Plane に貼り付けたテクスチャは、元は32x32のドット絵。

Artificiality 02
奥行きのある建物を表現しようとすると、どうしてもこういうみっともなさが出てしまう…。

Artificiality 03
こんな誤魔化し方もあるとは思うけど、素直に一枚の Plane にしちゃった方が良さそう。
これはこれでいいや。



建物(内部)

建物内部については次回の記事で書きます。



家具・設備

※修正(15/07/14)

棚、本棚、タンスなんかは奥の壁にくっつけちゃえばいいので、奥行きが表現できなくても問題なさそう。
問題がありそうなのは、手前に配置する必要があるテーブルやカウンター。
見下ろし視点なので、立体的に描く必要があります。
垂直に立てた Plane に立体的に描いたテーブルのテクスチャを貼り付けても上手くいかないと思う。

Artificiality 07
テーブルやカウンターは3Dで作るしかないかなぁ…。

※追記(15/07/16)

Artificiality 08
Cube だけでテーブルを作りました。
テーブルの台+脚×4個、計5個の Cube を並べて作っています。
それらの Cube は全て、空の GameObject を作り、その子オブジェクトとして配置しています。
こうすることで、親オブジェクトの位置や角度に合わせて、全てのパーツの位置と角度が調整されます。
例えば、親オブジェクトが90度回転すると、全ての子オブジェクトも90度回転する。

テーブルをつっついて動かしたり、ひっくりかえしたりしたいので、全ての Cube に Rigidbody を設定しています。
テーブルの脚は Fixed Joint を使って台の部分と連結しています。

Artificiality 09
テーブルの上に重たい球を落とすと、その衝撃で台と脚のジョイントが外れます。
「どれくらいの力が加わったときにジョイントを外すか?」を、Fixed Joint の Break Force と Break Torque に指定。

怪力ゾンビがテーブルを持ち上げて放り投げたり、テーブルを魔法や罠などを利用して壊し、その木片を敵に投げつけて攻撃したり、そういうシーンを想定しています。
やってみたいことがもうひとつあるのですが、それは後日試します。

※追記(15/07/17)

やってみたかった事を試しました。
既存の3Dモデルを流用しないで、Cube だけでテーブルを作ったのは、以下のアセットを使うことも想定していたため。

Fracture - PRO
https://www.assetstore.unity3d.com/jp/#!/content/7192

このアセットは Cube に衝撃を加えたとき、その Cube をバラバラに壊す処理を追加します。
無料版の Fracture LITE もありますが、無料版は Unity 5 に対応していません。
有料版の Fracture PRO は Unity 5 に対応しています。

たった3ステップで処理を追加できます。
使い方は付属のドキュメントに書いてあるので割愛。

Artificiality 10 Artificiality 11
椅子とテーブルに球を勢い良くぶつけて破壊してみました。
テーブルと椅子の脚もバラバラになっています。



梯子・ロープ・階段

※追記(15/07/20)

いずれも上下(Y軸)を移動するときに使うもの。
梯子とロープは Plane で作り、階段は地形として作ればOK

Artificiality 12
デザインはこれで終わりだけど、機能面がそれぞれ違う。

「どこまでやるか?」は現時点では分からないが、やれそうなことを以下にメモしておく。

梯子はせいぜい1つしか持って歩けない。
立てかけて高いところに上る以外にも、振り回せば武器として使える。
「Last of Us」でやってたように、長い梯子を隣の建物との間に橋渡しして、その梯子の上を歩くことで隣の建物に移動する…という使い方もできる。

ロープで高いところに上るには、あらかじめそこへ行って、突起物にロープを縛り付ける。
あるいは、最近流行りの「くっつきフック」のように、ロープがついた鉄のクサビをボーガンのようなもので射出して壁や天井に打ち込んで固定するという使い方もできる。
梯子と同じように、上下移動だけでなく、橋として使うこともできる。
「God Of War」のように、ロープを大きく振ることで勢いをつけて遠くまで飛ぶというギミックにも使える。
西部劇のカウボーイのように、ロープ投げにも使える。
cowboy.jpg ロープ短っw



光源

松明、ランプ、キャンプファイア、鈍く発光する魔法で作った置物など…。
Plane に Light を追加すればできそうです。

Artificiality 04
家の入り口にランプを設置。

スクリプトで Light の Intensity を変化させて、揺らめくロウソクの火っぽくしてみました。
それっぽくするのはむずかしいですね…プロトタイプなのでテキトーなところでやめておきます。

Artificiality 05
焚き火を設置。

Sprite で作ってアニメーションさせてみましたが、やっぱりアニメーションの絵を描くのがめんどくさい。
誰かが作ったパーティクルを流用したいところ。

まあでも、光源オブジェクトだったら Sprite で作っても良さそうです。
発光してるから周囲のライティングの影響を受けてるんだかどうだか分かりません。

Artificiality 06
Plane とパーティクルを組み合わせて焚き火を作ってみました。

燃えている薪の部分を Plane で配置し、その子オブジェクトにパーティクルを追加。
パーティクルのデータは Asset Store にある Elementals を使用。
無料で使える素晴らしいアセットです。

Elementals - Asset Store
https://www.assetstore.unity3d.com/jp/#!/content/11158

うーむ…。
いろいろチグハグなので、これを許容できちゃう自分に「これでいいのか?」と問い詰めても「これでいいのだ」という答えしか返って来ない…。



光源オブジェクトの作り方

オブジェクトの配置位置と、光源の位置を別々に設定できるようにすると便利です。
なので、光源オブジェクトに子オブジェクトを作って、子オブジェクトに Light を追加します。


スポンサーサイト

- 0 Comments

Add your comment

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