みなさん、こんにちは。とげら@Togeratです!
Unityはじめて29日目。
ズブの素人な状態からだいたい1ヶ月が経ちましたね。Unityというツールの基本操作は少しずつ慣れてきたんですけど、まだまだ知識が少ないので、参考書とグーグル先生に頼りながら頑張る日々です。
今回は、3DアクションRPGのステージらしきものを作ってみます。Unityには「Terrain」という地形用のオブジェクトがありまして、これの形状をいじくり回して山や谷や池を作っていき、自分だけのオリジナルステージがつくれるとのこと。
これは興味深い! ということで、自分でもやってみることにしました。モンハンみたいな自然あふれるステージが作れたらいいですねぇ♪
ゲーム「Walk Through The Terrain」
まずは完成した作品をおひろめしちゃいます~。タイトルは「Walk Through The Terrain(大地を歩く)」はい、なんのひねりもないですねw ストーリーも特になくて、あなたの一人称視点で世界を歩いてもらうというだけのゲーム・・ゲーム? まぁ、ゲームです。
↓の画像をクリックすると遊べますので、みなさんも都会の喧騒を忘れて、大自然を踏みしめていってくださいな^^ノ
※注意! 視点移動をマウスで行うため、ゲームを開始するとマウスカーソルが消えます。ゲームを終わるときは、キーボードの [Esc] キーを押すとカーソルが戻ってきます。
もうすこし大きめの画面でプレイしたい方はこちら。フルスクリーンもできます(わりと重いです、注意><)
「Walk Through The Terrain(960×540)」
この作品の見どころポイント
おかえりなさい、都会の喧騒を忘れるひと時を過ごせましたか?
では、作者兼ガイドのとげらから、このゲームの見どころを3つご紹介しますね。それは「お絵かき感覚で作った地形」「空が水がリアルなだけで世界が変わる」「借り物最強説」です。
見どころ①「お絵かき感覚で作った地形」
地形のほぼすべてを、Terrainオブジェクトのインスペクターウィンドウにある「Terrain」というコンポーネントの機能で作っています。
まずは地形!「Paint Terrain」タブにて、隆起ブラシでオブジェクトをなぞり、レリーフ感覚で山や湖をつくります。そこにアセットストアでお借りした砂地や草地のようなテクスチャーを貼り付けることでベースとなる地形ができあがりました。

なかなかコツがつかめなくて、あまり綺麗じゃなくてごめんなさい>< ここから挽回して、見られるものにしていきますぞ。
つぎに「Paint Trees」タブにて、もっさりと木を増殖します。

さらに「Paint Details」タブで草はやしますw

ベースとなる地形から樹海や草原まで、お絵かき感覚で作れるんですね。作ってて楽しかったです。
見どころ②「空と水がリアルなだけで世界が変わる」
3Dゲームをはじめたらまずどこを見ますか? わたしは空です。水がある地形なら水面ですね。空や水面は、画面の中でも占める割合が高いので、世界観を構築する重要な要素になります。空や水が綺麗だと、それだけで画面に惹き込まれてしまいますね~。
Unityのデフォルトのスカイボックスはただ青いだけの空で、それはそれでいいんですが、もう少し雲とかがあったらもっと良くなるんじゃないかと考えました。
そこで、アセットストアからリアルな空の素材をお借りして適用! すると・・

うむ、空がリアルなだけで世界が変わりますねぇ(*´ー`)
そして水面には、Unity公式のアセット「Unity Standard Assets」のなかから「Water」を使いました。水面の反射がいい感じですね。応用したらウユニ湖みたいなのも作れそう。

見どころ③「借り物最強説」
ぶっちゃけ最初につくった地形以外は、ほぼ借り物で作られたゲームです。
一人称視点で動かせるカメラも借り物だし、ゲーム内に配置したトラさんも借り物です。配置しただけなのに勝手に動いてます・・カシコイそしてカワイイ。

ほいほいほいと置いてくだけで形になるってすごいですよね。借り物最強説!
とげらはまだ3Dグラフィックの技術がないので、これからも重宝すると思いますね。でも絵描きとしては、ゆくゆくは3D制作にもチャレンジしていきたいと思ってます^^
この作品の課題点
いいところを解説するのは気分がいいですね^^ でも、もちろん課題点もたくさんあります。考えるだけでしんどいです・・が逃げちゃダメだ。課題点の中で3つあげるとするなら「重すぎてカクつく」「森の中が魔界」「借りモノゆえの不自由」ですかね。
課題点①「重すぎてカクつく」
UnityのTerrain機能ではとてもカンタンに見栄えのよい景色がつくれますよね。ペンでなぞるように山や谷を作れますし、粘土をこねるように角を丸くすることもできます。しかし、細かく作り込めば作り込むほどポリゴン数も増えていきます。草や木の密集を表現できる機能もとっても便利ですが、植物が増えればそれだけポリゴン数もどんどん増えていくのです。ひいい・・。
ポリゴン数が増えるとデータ量が増え、ゲームが重くなります。今回はなにも考えず思うがままに地形を作っていきました。その結果、起動して数分はカクつきまくるようになってしまいました。カクつきはプレイヤーのモチベを下げることにつながりますからね・・。ゲームを満足に遊んでもらえないまま離脱されてしまうことだってありえるので、重大な問題です><;
対策としては、Terrainで軽量化で作るための技術を知る。もしくは面倒くさくても、自分でローポリの素材を用意するなどして適切に配置していくことがいいでしょうね。いずれにしても、データ量をしっかり管理しながら作っていくようにしたいですね^^
課題点②「森の中が魔界」
Coming soon..
課題点③「借りモノゆえの不自由」
Coming soon..
相方に遊んでもらった感想
さぁ、相方! 待望のRPG的なゲームであるよ~。遊んでみてみて~~!
相方「ふむ、操作はわかりやすいであるな」
相方「景色も良いし、トラもかわいいね」
相方「お、画面が固まった・・ちょっと動きが重くなるかも」
相方「森の中に入ったら、なにも見えなくて出られないんだが」
相方「ギャー、永遠におちていくううううう(地形の端っこから落ちた)」
大騒ぎだったけど、地形を隅々まで歩き回ったりして、わりと楽しんでくれた模様です( *´艸`)
ファイル構成とスクリプト
みなさん、ここまで見ていただいて、どうもありがとう^^
最後にこのゲームのヒエラルキーウィンドウの構成と、スクリプトをご紹介して終わりますね。一人称カメラによる挙動や、配置されているトラの動きなどはお借りしたアセットをそのまま使っているため、割愛します。
自分で書いたものは、ゲーム画面の再読み込みをするスクリプトのみです。開閉ボタンから見られるようにしてあります!
MyFirstWorld:ゲーム画面

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; // シーン移動に使うため宣言 public class GameDirector : MonoBehaviour { // Update is called once per frame void Update() { // 「R」キーが押されたら処理を実行 if(Input.GetKeyDown(KeyCode.R)) { // 「MyFirstWorld」シーンをロードする(初期位置にもどる) SceneManager.LoadScene("MyFirstWorld"); } } }
以上! とげらでした。
グッドユニティ~^^ノ