Unityについて

はじめに

このエントリーは、CyberAgent 20新卒 エンジニア Advent Calendar 2019の1日目の記事です。

adventar.org

自己紹介

こんにちは。私の名前は紺色(HNで申し訳ない)といいます。Twitter : 紺色@サウナー (@Koniro_Iris) | Twitter

私は現在、大学で材料学を学んでいるのですが、来年度からは専門の違う分野で新卒Unityエンジニアとして働かせて頂く運びとなりました。

私の目標はVPoEとなり、エンジニア目線で組織の雰囲気をより良くする責任を持って最高の会社にすることです。 エンジニア以外にもマネジメントや組織についても興味があるので、こういった分野に興味のある方がいたら是非お話したいです。よろしくお願いいたします。

それでは、本題「Unityについて」に移っていきます。

概要

Unityと書いていますが、ターゲットとしているのはUnityを全く知らない人向けの記事です。 これから先、様々なエンジニアやデザイナー、ビジネスの人と関わると思います。 そこで「Unityエンジニア」のUnityとは何なのか、というのを知ってもらおうと思いこの記事を書いています。

Unity

それではまず、Unityとは何なのでしょうか。 まず最初に、Unityはプログラミング言語ではありません。しかし使用するにあたって主にC#でコードを書くため、UnityエンジニアはUnity用のではありますが基本的なC#を使用する事が出来ます。

それではUnity自体は何なのかというと、統合開発環境を内蔵した複数の機材(platform)に対応するゲームエンジンです。ゲームエンジンというのはゲームを作るにあたって、共通して用いられる主要な処理を代行し効率化するソフトウェアの事を指します。

また、Unityは複数のプラットフォームに対応しておりiOSAndroidWindowsWindowsストアアプリ、macOSLinux、ウェブブラウザ、PlayStationXboxWii UNintendo SwitchVR、AR等々幅広い開発に対応しています。

ゲームエンジンとしてのUnity

Unityはゲームエンジンを自負している通り、ゲーム制作において非常に強力なゲームエンジンです。

コードを書く事無くある程度のゲーム制作が出来る程で、これはデザイナー等の非エンジニアがエンジニアを通さずそのままUnity内でゲームデザイン行う事さえ可能です。 特にスマートフォン向けゲームでは多くの場合Unityが使われています。もし今遊んでいるゲームがあるのなら、Unityで作られているかどうか調べてみて下さい。

Unityで作られたものを体感したい方はこちらのUnityRoomというサイトに様々なUnity作品があります。 Web上で遊べるのでぜひ触ってUnityで作られたものを体感してみて下さい!

unityroom.com

ゲーム以外のUnity

Unityはゲーム以外でも様々な場面で使われています。

今回は下に紹介しているのは映像ですが、Vtuber等の技術や建築、医療、自動車分野でもUnityは使われています。 最早ゲームに限らず様々な分野で使う事が出来る強力なエンジン、それがUnityです。

www.youtube.com

Unityの機能

Unityには様々な機能があり、ここでは基本的な部分を紹介します。

f:id:KoniroIris:20191201231608p:plain

1.シーンビュー

 赤いラインで囲まれた部分をシーンビューといいます。個人的にUnityに移行した時に最も感動した部分、それがシーンビューです。

 シーンビューではゲーム内にプレイヤー、カメラ、敵、その他あらゆるすべてのオブジェクトを配置する事が出来るウィンドウです。また、シーンビューの中でオブジェクトを動かしたり、操作したりすることも可能です。

 例えば画像の中にあるBOXをちょっと動かしたいと思ったら、マウスで掴んで横にずらすだけで、コードを変更せずに視覚的ににゲーム内の変更をする事が出来ます。

2.ゲームビュー

 緑のラインで囲まれた部分をゲームビューといいます。シーンビューと似ていますが、全く違うウィンドウです。

 ゲームビューはシーンビューに配置されたカメラから得られた絵を出力します。つまり、ゲーム実行時の実際の映像がこのウィンドウで確認する事が出来ます。また、Unity上でゲーム実行時に一時停止やコマ送りといった事が出来る為、プレイヤーが何を見ているのかをこのウィンドウで確認する事が出来ます。

3.ヒエラルキー

 水色のラインで囲まれた部分をヒエラルキーといいます、ここはシーンビューに配置されているすべてのオブジェクトが表示されます。

ヒエラルキー上では階層構造を用いでオブジェクト同士を親子関係とする事が出来、また、シ-ンビュー上のオブジェクトを細かく選択する事が出来ます。 選択したオブジェクトは主にインスペクター上でより詳細に編集します。

4.プロジェクト

 紫色のラインで囲まれた部分をプロジェクトといいます、プロジェクトに含まれている素材やコードにアクセスし管理する事が出来ます。

 素材やコードは階層的なリストで表示されています。これは実際のプロジェクトのフォルダと同じファイル構造となってあす。フォルダをクリックして一覧から選択すると,その内容が右側のパネルに表示され、詳細を確認する事が出来ます。

5.インスペクター

 黒いラインで囲まれた部分をインスペクターといいます。ここではオブジェクトに様々な要素を追加、編集する事が出来ます。

 例えば画像では、「Cube」というオブジェクトに対して、[Cube(Mesh Filter)]でキューブ型の立方体を示して、[MeshRenderer]でその立方体を描画方法(光の反射や材質など)を決めます。[BoxCollider]は立方体形状の当たり判定や物理演算を追加しています。

AssetSore

Unityを使うにおいて外せないのが、このAssetStoreです。

assetstore.unity.com

AssetStoreにはUnityで使える様々なAssetが販売、配布されてます。

ここで売られているのはUnityの拡張のみならず、3D、2D、サウンドエフェクト、ツール、AI、オンラインサービス、さらには完成されたプロジェクト等々、非常に多種多様なAssetが販売されています。

このストアはUnityを使って製作をする時にとても有用です。なぜなら自分達のスキルセットに無い物を買う事が出来るためです。

AssetStoreをゲームに生かそう!

例えばこれから3Dオープンワールドゲームを作るとしましょう。 このジャンルを作るのは非常に難しい事で、様々なスキルが必要となります。

しかしAssetStoreを使えば、多数のアニメーションが元から用意されているモンスターや人型のUnityに適した3Dモデル、空の雲や天候の光や影といった演出エフェクト、更にはオープンワールドの地形を自動で生成してくれるテレインといったAssetが多数販売されています。これらのAssetを使う事で、制作時間を短縮しより効率的に製作を行えることでしょう!

今回触れたアニメーション付き3Dモデル、空の演出、地形生成のAssetが実際どのような物なのか、AssetStoreへのリンクを貼りますので、興味があれば見てみて下さい。

ワイバーンのアニメーション付き3DモデルAsset

Irval the Wyvern

Irval the Wyvern - Asset Store

こちら、ワイバーンのアニメーション付き3Dモデルです。こちら$49.99となっているんですが、普通に考えて6000円で作れる気がしません。

下の埋め込みをマウスで動かすと視点が動き隅々まで見れます。

skfb.ly

空の演出Asset

AllSky

AllSky - 200+ Sky / Skybox Set - Asset Store

こちらはSkyBoxという、空のエフェクトが200以上入っているAssetです。$10となっています。

動画を見てもらうと分かりますが、演出面において空は非常に重要な要素となっており、このアセットを買えばゲームの演出面を大きく強化できます。

www.youtube.com

川の地形生成Asset

R.A.M 2019 - River Auto Material 2019

R.A.M 2019 - River Auto Material 2019 - Asset Store

最後は地形生成です。R.A.M 2019(River Auto Material 2019)という川の地形を生成するAssetです。$50のはずなんですが、今セールをやっているからかFREEとなってます。

ハイクォリティな河川を生成できるAssetです。他の地形生成系Assetと組み合わせてオープンワールドを作る事が出来ます。

www.youtube.com

Unityのイベント

Unityにも様々なイベントがあります。

Unityのイベントは公式、非公式含めて数多くあるのですが、今回はその中で最も規模の大きいUniteについてお話します。

Unite

Unity最大のイベント、それが「Unite」です。

Unite Tokyo 2019 は9月25,26日に行われました。このイベントはUnityユーザーのためのテクニカルな講演やブース展示が数多く行われる、国内最大のUnityカンファレンスイベントです。 講演はこちらで公開されているので、是非見て下さい。 learning.unity3d.jp

とは言いましたが、多数の公演がしかもUnityの知識がないと選ぶに選べないと思いますので、Unite2019の講演の中で評価が高く、見て分かる物を1つ抜粋いたしました。

Unity内でのエフェクト製作の講演です。「Unityってこんな事が出来るんだな」程度に見てもらえたらなと思います。 learning.unity3d.jp

おわりに

今回Unityに対して技術以外の話をさせて頂きました。 この記事を見てUnityの可能性を知ってもらえればなと思っております。

もしUnityに興味を持ってもらえたり、「Unity使ってこれ出来る?」「Unityと私のスキルを合わせたら凄いの出来るんじゃない?」等々あればお気軽にご連絡下さい。

次の人

次回はyochanさんの「LXDをビルドしてコンテナをデプロイする」のお話です!

それでは引き続き、CyberAgent 20新卒 エンジニア Advent Calendar 2019をよろしくお願いします!