いえーい、とげら@Togeratだよ^^ノ
Unityを始めて2日目!
ウィンドウの名前をかろうじて覚えたばかりの、技術ほぼゼロな人間が、どこまでできるか・・無謀にもオリジナルゲームに挑戦することにした。
(先に完成したゲームを見る→「Danger Room」)
今のわたしに出来ることは、Hierarchyウィンドウ右クリック→[Create]→[3D Object]から、「立方体(Cube)」や「球体(Sphere)」を作り、それを引き伸ばしたり傾きを変えたりすること。

これで何ができるというのかー。
とりあえず、部屋作ってみる?
この立方体(Cube)を引き伸ばして床や壁にしたら、ちょっとした映画のセットみたいなものが作れるんじゃないかな?どうよ。


お、ちょっと雰囲気が出てる気がする・・!
部屋に色をつけてみる
まっしろの部屋は味気ないので、今度は色をつけてみようかな。映画のセットっぽいので、レッドカーペットにしてみようかな~。
Projectウィンドウ右クリック→Createメニューから「Material」を選んでマテリアルを作る。マテリアルは質感を作ることができるので、やろうと思えば紙とか岩のようなテクスチャーも使えるものらしいんだけど、今回は手始めに色だけ設定してみるね。
Projectウィンドウでこのマテリアルを選んで、Inspectorウィンドウの [Albedo] 項目のカラーパレットに赤を設定。

赤くなったマテリアルをHierarchyウィンドウにあるカーペットのオブジェクトの名前が書いてあるとこに、直接ドラッグアンドドロップ!すると何ということでしょう。Sceneビューのカーペットに、ちゃんと色がついてたよ^^

いいねいいね~( *´艸`)
ちなみに、カーペットオブジェクトのInspecterウィンドウを確認すると、このマテリアルの項目が追加されている。この項目こそが、素材に質感を適用するための「コンポーネント」だ。
「コンポーネント」ってのはオブジェクトに持たせられる「情報」や「機能」のまとまりのことで、今回みたいな「マテリアル情報」もそのひとつなのだ。他にもオブジェクトがある「座標」の情報とか、「傾き」とか「大きさ」とか、「衝突判定」とか「形状」とか・・今回のカーペットだけでも、こんなに情報もってたぞ。

このようにオブジェクトにコンポーネントを追加することをUnity界隈では「アタッチ」と呼んでるそうだよ。こうしてアタッチを繰り返して、オブジェクトは意味深い存在になっていくのですな~。
Standard Assets を使ってみる
ここで調子に乗ったのか、「床はもうちょい凝りたいなー」とか思ってしまったとげらさん。試しに「Standard Assets」を使ってみることにした。これはUnity公式によって無償で提供されている、基本的なアセットが詰まったおもちゃ箱である。
あ、アセットってのは、Unityで使える素材のことだよ。Standard Assetsには、オーソドックスななテクスチャーから、戦闘機、クルマ、さらに人間キャラに至るまでわりと何でも揃ってるので、初心者なわたしにとってはありがてぇ、ありがてぇ。

でもね、このStandard Assetsさん、古いものなので、現在のUnityバージョンでそのまま使うと、ちょっと問題を起こしてしまうことが判明。
「Unity 2019.3でのStandard Assetsのエラーへの対処方法」を参考に、まずはUtilityフォルダー内にある、「ForcedReset.cs」と「SimpleActivatorMenu.cs」を削除してエラー対策が必要だった^^;
そんなヤマも乗り越えて、いよいよ床で遊ぶ時間がきたぜ!
今回はStandard Assets > Effects > GlassRefrection > Shadersから、ステンドグラスな床をチョイス!

たぶん正しい使い方はしてないんだろうな~って自分でもわかってる。でも・・でも綺麗だったんだもん><!
ちなみにAssetストアにいけば、床用のアセットが無数に配布されているので、そういうのもぼちぼち試していきたいよね。
主役は拾い物
部屋はできた、あとはここに何か有機的なものを置きたいな。そういえばStandard Assetsには3Dの人物モデルがいるんだっけ。そいつを置いてみることにした。
メガネをかけたニワトリ頭な彼の名前はEthan(イーサン)というらしい。敬称をつけるとイーサンさんだ。

さらにレーシングカーっぽいモデルも見つけたので適当に設置して、マテリアルで着色して、じゃじゃーん、よくわからない部屋のできあがり~\(^o^)/
主役は拾い物ばかりなので、クリエーターとしてはちょっと微妙な心境だね・・w

ボールを落とす
さて、セットと役者が配置されたのはいいものの、このままだと動きが何もないことに気づいて焦ったわたし。とはいえスクリプトもまだ書けないしな・・TT
とりあえずEthanの上からボールでも落としてみることにした。

このボールに、物理エンジンを搭載するための「Rigid body(リジッドボディ)」というコンポーネントを搭載すると、あたかも重力があるかのように落ちてきてくれるってことらしいんだけど・・。これは面白そうな気がする(@σ゚∀゚)
さっそくHierarchyウィンドウでボールオブジェクトを選んで、Inspectorウィンドウの[Add Component]→[Physics]→[Rigidbody]と選ぶと、Rigidbodyコンポーネントが作られた。いやまて、オブジェクトにコンポーネントが追加されてるので、ここは業界人っぽく「Rigidbodyコンポーネントがアタッチされた」といっとこう(キリッ
↓こんなのができる

[MASS]というのは物体の質量で、Unityでの単位はいちおう「キログラム(kg)」とされてるみたいだね。
[Drag]は空気抵抗、[Angular Drag]は回転に対する空気抵抗とのことで、上げると水中にいるかのようにゆーっくりと落ちてくる。水中を移動するようなアクションを作りたいときに使えそうだなぁ、ふむふむ。
[UseGravity]が有効になってないと、重力がなくなってしまうのでチェックオン。
[Is Kinematic]が有効だと、物理エンジンの影響が無効になってしまうのでチェックオフ。なんとも本末転倒な感じの項目だけど、Unityでは物理的な動きが必要ないオブジェクトでも、衝突判定をつけたりする場合など使う場面はちょいちょいあるらしい。
なんかいろんな設定があるようだけど、とりあえず今回はいじらないでいいか。さてさて、これで動かしてみたら、どうなるかな!?
クソゲーが爆誕した
えー、ひとこと言わせてもらうと。
「ゲームでもなんでもねぇぇぇぇ!!w」
はっはっは。最初なんてこんなものさ・・(涙
ってな感じで、これからも頑張って勉強していきたいと思います。
またね~^^ノ