マンガでわかるUnity

もんりぃ先生と湊川あいによる、マンガ + 実践で楽しくゲーム制作するブログ。

【祝】もんりぃ先生がMicrosoft MVPを受賞しました!

Web連載『マンガでわかるUnity』に登場する、もんりぃ先生がMicrosoft MVPを受賞しました!

f:id:llminatoll:20181107170719p:plain

もんりぃ先生のMicrosoft MVPページはこちら! Tetsuya Mori | Microsoft MVP

もんりぃ先生MVPのキャプチャ画像

もんりぃ先生は、UnityのコミュニティGotanda.unityの運営や、SchooでのUnity講師、Unityハンズオンの開催など、数々の活動をなさっています。

もんりぃ先生 喜びのツイート

f:id:llminatoll:20181107164431p:plain

今後の『マンガでわかるUnity』もお楽しみに!

unity-manga.hatenablog.com

unity-manga.hatenablog.com

unity-manga.hatenablog.com

unity-manga.hatenablog.com

#マンガでわかるUnity 第4話 Camera について知ろう!

前回のあらすじ
世界を創って、いざビルド!………しかし、相変わらず殆ど何も映っていません。どうしてでしょうか?

Unity Editor のレイアウトを変えてみよう

f:id:llminatoll:20180712174958p:plain
Camera について学ぶ前に、Unity Editor のレイアウトをちょっと変えておこうか。

f:id:llminatoll:20180712180004j:plain
レイアウトを変えることなんてできるんですか!?

f:id:llminatoll:20180712174958p:plain
Unity Editor はタブの位置や大きさを変えるコトができるんだ!

f:id:llminatoll:20180712180004j:plain
………でも、なんでそんなことを?

f:id:llminatoll:20180712174958p:plain
これから、「ゲーム画面での見た目」を確認しながら「編集画面で操作」をしていきたいから、Game View と Scene View を一度に見られる状態にしておきたいんだ。

f:id:llminatoll:20180712174618j:plain
なるほど!やってみます!

▼動画で見ながら、一緒にやってみよう!

www.youtube.com


Camera について学ぼう!

f:id:llminatoll:20181106160136p:plain

f:id:llminatoll:20180712174958p:plain
前回のゲームは「Camera が近すぎる」「Camera の角度が良くない」などの理由によって、本来見たかった「創った世界」を見るコトができていない状態だったんだ。

▼動画で見ながら、一緒にやってみよう!

www.youtube.com


Camera とは、Unity で創った世界を現実世界に投影するための カメラ です。

もう少し正確な言い方をすると、Camera は設定に応じて投影可能な範囲に存在する GameObject を描画する機能です。

この Camera が1つ以上存在することではじめてゲームの世界がスクリーンに投影され、Camera に何を描画させるのか?を考えることがゲームデベロッパーの仕事の一つと言えます。

ここでは詳しく触れませんが、複数の Camera を配置し、それぞれの Camera が描画する映像を重ねたり、ワイプのような表現にしたりすることも可能です。

なお、有効な Camera が一つも存在しない場合、真っ暗な画面が描画される仕様になっています。

Camera の投影方法には大きく分けて「透視投影」と「平行投影」の2種類があります。

透視投影: Perspective

f:id:llminatoll:20181106155357p:plain

遠近感を持った投影方法です。

遠くにある GameObject ほど小さく、近くにある GameObject ほど大きく描画されます。

Camera の視野角は Field of View というパラメータに Camera の視野となる角度を入力することで調整します。

四角錐型の Gizmo により、視野範囲が提示されます。

平行投影: Orthographic

f:id:llminatoll:20181106155412p:plain

遠近感を持たない投影方法です。

距離に応じた拡縮が掛からないので、2D ゲームや UI を開発する際に用いられることが多いです。

Camera の大きさは Size というパラメータに設定したい Camera の高さの半分の値を入力することで調整します。

直方体型の Gizmo により、視野範囲が提示されます。


f:id:llminatoll:20180712174618j:plain
じゃあ、だいたいこのくらいの距離から、この角度で映そうかな…!

f:id:llminatoll:20180712174958p:plain
うんうん。良い感じだね。
じゃあビルドしてみよう!

youtu.be

f:id:llminatoll:20180712174618j:plain
おーーー!創った世界がちゃんと映し出されてます!!

f:id:llminatoll:20180712174958p:plain
ゲームが2Dであっても3Dであっても、「Camera に何をどうやって描画させるのか?」を意識して開発することがとっても大切なんだ。

次回予告「第5話: ゲームの世界に彩りを添えよう!」

f:id:llminatoll:20180712180004j:plain
んー…、でもちょっと味気ないですね…。
それに、やっぱりゲームとは呼べない気がするんですが…。

f:id:llminatoll:20180712174958p:plain
うん、そうだね。Unity 標準の機能で、ある程度影が付いたり天球が表示されていたりはするけど、まだまだゲームとは呼べない代物だよね。
じゃあ、次は「世界に彩り」を加えつつ、「GameObject と Component と Asset の関係」についても学んでいこう!

f:id:llminatoll:20180712180004j:plain
おおっ!何やら難しい話になってきそうだぞ…?ついていけるかなぁ…?

#マンガでわかるUnity 第3話 世界を創ろう!

前回のあらすじ
もんりぃ先生の指示に従って Unity Editor を操作したところ、何もないゲーム(?)ができあがっただけでしたが……?

第3話 世界を創ろう!

f:id:llminatoll:20181017224841p:plain f:id:llminatoll:20181017224928p:plain

▼動画で見ながら、一緒にやってみよう!

www.youtube.com


Unity でゲームの世界を創る行程のことをレベルデザイン*1と呼んだりしますが、このレベルを作る際には Scene View (シーンビュー)を用いて作業を行います。

Unity ではレベルのことを Scene と呼び、この Scene 上に「何か」を配置していくことで、ゲームの世界を構成していくことになります。

Scene に「何か」を配置するには大まかに以下の2つの方法*2があります。

  1. Editor メニューの GameObject > ... から追加
  2. Hierarchy View 上でコンテキストメニュー(右クリック)し、 Create Empty 以降のメニューから追加

このいずれかの操作によって追加される「様々な振る舞いを持った何か」のことを GameObject (ゲームオブジェクト)と呼び、GameObject は Unity を構成する概念の中でとても重要な要素の一つとなります。

Unity のメニューから追加出来る GameObject は「何も表示されない空っぽ(Empty)の GameObject」や「立方体(Cube)や球体(Sphere)を初めとする基本的な立体を表示する GameObject」など、とてもシンプルな GameObject ばかりですが、これらを用いてゲームを開発することも可能になっています。


f:id:llminatoll:20180712174958p:plain
こんな風にマウスやトラックパッドを利用しながら GameObject の位置や回転や拡縮を操作して、世界を創っていくんだ。

f:id:llminatoll:20180712174618j:plain
なかなか目が回る作業ですね…。

f:id:llminatoll:20180712174958p:plain
確かに初めは慣れないかもしれないれど、色々と触っているうちに直ぐに馴染むと思うよ!

f:id:llminatoll:20180712174618j:plain
わわっ!ちょっと大きめに操作したら画面がワケわからないことになってしまいました…!!!

Unityの視点の角度が変になったら?

f:id:llminatoll:20180712174958p:plain
大丈夫!慌てないで。視点を元に戻す方法を教えてあげるね!
これは、今後も使う操作になると思うから、よく覚えておいてね。

f:id:llminatoll:20180712174618j:plain
は、はいっ!

Unityの視点を戻す方法1 Unityの視点を戻す方法2

▼操作を動画で見る

www.youtube.com


Scene View には、GameObject の Position (位置)・Rotation (回転)・Scale (拡縮)を操作するためのツールがあります。*3

更にキーボードの Ctrl / command キーや Alt / option キーや右クリックなどと組み合わせて操作することで視点の変更もできます。

GameObject の中心に表示される Handle Gizmo (ハンドルギズモ)や、Scene View 右上に表示されている Scene Gizmo (シーンギズモ)には、赤・青・緑の矢印や線が表示されており、「これらは三次元空間上における軸や平面」を表しています。
詳細に理解しようと思うと、ある程度の数学知識が必要になりますが、最低限「X軸が横、Y軸が縦、Z軸が前後」と覚えておくと良いでしょう。
なお、各軸ごとに「X軸は右、Y軸は上、Z軸は奥」が正の値となります。*4

f:id:monry84:20180828015455p:plain f:id:monry84:20180828015508p:plain


www.youtube.com

f:id:llminatoll:20180712174958p:plain
よーし!じゃあ、ここまでの成果を確認するために、ビルドしてみよう! やり方は覚えているかな?

f:id:llminatoll:20180712174618j:plain
はい!もちろんです! File > Build & Run っと…!

ビルドしてみた様子

f:id:llminatoll:20180712174618j:plain
あ、あれ!?何も映ってない?? 私、積み木と壁をたしかに作ったはずなのに……

f:id:llminatoll:20180712174958p:plain
うんうん。厳密には、横に引き延ばした Cube の一部だけは表示されているけど、配置した GameObject の殆どが見えていない状態のようだね。

f:id:llminatoll:20180712174618j:plain
えーっ、なんでですか!?

f:id:llminatoll:20180712174958p:plain
これには、Camera が深く関わっているんだ。次は Camera について学んでみよう!

f:id:llminatoll:20180712174618j:plain
Camera…?

f:id:llminatoll:20180712174618j:plain
(写真でも撮りたいのかなぁ…?)

*1:主に英語圏での表現で、日本語圏では解釈が異なる場合もあり、会社・組織毎に呼称が異なっているようです。

*2:他にも Asset を Scene View 上に Drag & Drop するなどの方法もありますが、説明が長くなるのでここでは割愛します。

*3:Unity 2017.3 から、Position/Rotation/Scale を一度に操作するための Transform ツールというものも追加されています。

*4:左手座標系と呼ばれています。

#マンガでわかるUnity 第2話「ゲームをつくってみよう!」


前回のあらすじ 間違って、隣のゼミに迷い込んでしまったわかばちゃん。もんりぃ先生に押されてゲームを作ってみることになったようですが……?

Unity インストール方法f:id:llminatoll:20180811200623p:plain

インストールについては第0話で解説しています。 unity-manga.hatenablog.com

Unity プロジェクトを作ろう!

youtu.be

f:id:llminatoll:20180712180004j:plain
おー!なんか難しそうな画面が起動しましたね!

f:id:llminatoll:20180712174958p:plain
色々なタブがあって混乱しそうになるけど、まずはボクの指示に従って操作してみてね。

f:id:llminatoll:20180712174618j:plain
はーい!


上の動画のとおり、Unity のプロジェクトは、Unity Editor を起動して、幾つかの設定項目を入力するだけで作成が完了します。

プロジェクトが作成されると、作成時に Location 欄に設定したディレクトリに、Project name 欄に設定したディレクトリが作成されます。 開いてみると、次のようなディレクトリ・ファイルが生成されたのが確認できます。

Image from Gyazo

f:id:llminatoll:20180712174618j:plain
おおっ、本当だ。 なんかたくさんファイルができてる!

f:id:llminatoll:20180712174958p:plain
それぞれどんな役割を持っているか、ざっと説明するね。

  • Assets/
    • Unity Editor で取り扱う Asset を格納するためのディレクト
    • Unity はこのディレクトリの有無によって、「Unity プロジェクトかどうか?」を判定している
  • Assets/Scenes/
    • プロジェクト作成時点で生成されるサンプル的なシーン(後述)をが格納されているディレクト
    • 特別なルールはないが、デベロッパーが自分で作るシーンもこのディレクトリの下に配置することが多い
  • Assets/Scenes/SampleScene.unity
    • プロジェクト作成時点で生成されるサンプル的なシーン
    • Unity に於けるシーンファイルの拡張子は .unity
  • Library/
    • Unity が動作する上で必要になる中間データなどのファイルが格納されるディレクト
    • 基本的にデベロッパーが直接触ることはない
  • Packages/
    • Unity Package Manager によってインストールされる追加パッケージの設定ファイルが格納されるディレクト
  • Packages/manifest.json
    • Unity Package Manager によってインストールされる追加パッケージの設定ファイル
  • ProjectSettings/
  • ProjectSettings/ProjectVersion.txt
    • Unity プロジェクトが「どのバージョンの Unity Editor で開発されているのか?」を表すための設定ファイル
    • m_EditorVersion: 2018.2.1f1 といった文字列が記述されている
  • ProjectSettings/*.asset
    • Unity プロジェクトの基本的な設定が記述された設定ファイル群
    • ScriptableObject と呼ばれる Asset 形式で保存されている
  • Temp/
    • Unity Editor が Asset を変換する際などの一時的なデータを格納するためのディレクト
    • 基本的にデベロッパーが直接触ることはない

f:id:llminatoll:20180712174958p:plain
これらのディレクトリ・ファイル群を総称して「Unity プロジェクト」と呼ぶよ。

f:id:llminatoll:20180712174618j:plain
このひとかたまりで、ひとつのゲームが構成されるってことですね。

とりあえずビルドしてみよう

youtu.be

f:id:llminatoll:20180712174958p:plain
さぁ!もうこの時点で、わかばちゃんは「ゲームを作れた」ことになるよ!

f:id:llminatoll:20180712180004j:plain
………え?空と地平しか映っていない画面が起動しましたけど?

f:id:llminatoll:20180712174958p:plain
そう!これは「空と地平のみを描画するゲーム」だね!

f:id:llminatoll:20180712180004j:plain
………。

f:id:llminatoll:20180712174958p:plain
まぁまぁ、そんな顔しないで。
今の作業は「Playerのビルド」といって、ゲームを開発する上でとっても大事な行程なんだよ!

f:id:llminatoll:20180811193712p:plain

f:id:llminatoll:20180712174958p:plain
CD プレイヤーが音楽というコンテンツを再生する機能を持ったハードウェアであるのと同様に、Unity がビルドする Player はゲームというコンテンツを再生する機能を持ったソフトウェアなんだ。

例えば macOSWindowsiOSAndroid に代表されるオペレーションシステムは、それ自体がゲームを再生する機能は持っておらず、「画面に画像などを描画する機能」であったり「スピーカーやイヤフォンから音声を出力する機能」や「キャリア通信網や Wi-Fi を通じてインターネット通信を行う機能」などを提供しているだけに過ぎません。

Nintendo SwitchPlayStation 4 などのコンシューマー機と呼ばれるゲーム機であっても基本的な考え方は同じで、よりゲームとしての体験を提供することに特化したハードウェアやオペレーションシステムが組み込まれているのです。

これらの基本的な機能を利用してゲームとしての体験を提供するためのソフトウェアこそが Unity がビルドする Player であり、デベロッパーが開発すべき成果物と言えるわけです。

まとめ

Unity プロジェクトの作成手順

  • Unity Editor を起動する
  • New ボタンをクリック
  • 必要項目を入力
  • Create project ボタンをクリック

Player のビルド手順

  • メニューの File > Build And Run を選択
  • Player の出力先を選択 *1

ビルドとは?

  • Unity を使ってゲーム開発をするうえで、切っても切り離せない工程がビルド
    • Unity は Unity Editor 上で開発したゲームを様々なプラットフォームが再生可能なフォーマットに変換する機能を持っている
    • この「ゲームを各プラットフォームで再生可能なフォーマットに変換する」ことを「Player をビルドする」と呼ぶ

次回予告「第3話: ゲームの世界を作ってみよう」

f:id:llminatoll:20180712174618j:plain
ふむふむ。「ビルド」について、理解できました!

f:id:llminatoll:20180712180004j:plain
ところで、これ全然「ゲーム」じゃないんですけど……。しかも、私ほとんど何もしてませんよ!?

f:id:llminatoll:20180712174958p:plain
それもそうだね(笑)
じゃあ、次は「ゲームの世界を作る」ことをやってみよう!

f:id:llminatoll:20180712180004j:plain
ゲームの世界を作る……?

f:id:llminatoll:20180712174618j:plain
(私が創造主になるということですね……!ごくり)

次回更新をお楽しみに

f:id:llminatoll:20180712174618j:plain
更新を受け取るには読者登録しておくと便利だよ!

f:id:llminatoll:20180712181334p:plain


わかばちゃんのマンガでわかるシリーズいろいろ

マンガでわかるDocker

ご要望の多かった「マンガでわかるDocker」描きました! ダウンロード販売中です。 note.mu 技術書典5に当選しましたら続編の「マンガでわかるDocker②」の制作も予定しています。

マンガでわかるGit

個人ブログから始めたシリーズが、リクナビNEXTジャーナルさんでWeb連載。
こちらからお読みいただけます:マンガでわかるGitの記事一覧 | リクナビNEXTジャーナル
2017年4月にわかばちゃんと学ぶGit使い方入門として書籍化されました。 webdesign-manga.com togetter.com

マンガでわかるScrapbox

Scrapboxにて、Scrapboxの便利な使い方がわかるマンガをWeb連載中です。現在1〜6話まで無料公開されています。(2018/7/13時点)

goo.gl goo.gl goo.gl

マンガでわかるGoogleアナリティクス

KOBITブログにて、アクセス解析ツール「Googleアナリティクス」「Googleタグマネージャ」のマンガをWeb連載中です。現在1〜5話まで無料公開されています。(2018/7/13時点)

kobit.in kobit.in

他にもある!「わかばちゃんと学ぶ」シリーズ

マンガでわかるWebデザイン・マンガでわかるGit・マンガでわかるGoogleアナリティクスは書籍化しました。全国の書店・Amazonで発売中です。

*1:2回目以降この操作は不要です。

#マンガでわかるUnity 第0話「Unity をインストールしよう」

Unity のインストール

Unity は誰でも無料でインストールできます。

まずはこちらのUnity公式ページからインストーラをダウンロードしましょう。

f:id:llminatoll:20180805220958p:plain

youtu.be *1

インストーラ ダウンロード手順

  1. https://unity3d.com にアクセスします。
  2. 右上にある Unity を入手 をクリックします。
  3. Personal を試す をクリックします。
    • 個人または法人の年間売上/資金調達額*2
      • $100,000- 未満の場合 → Personal
      • $100,000- 以上の場合 → Plus
      • $200,000- 以上の場合 → Pro 
  4. 利用規約をよく読み、問題なければ同意のチェックボックスにチェックを入れて、お使いのマシン OS にあったインストーラをダウンロードします。

インストール手順

続いて、インストールを行います。

インストールはインストーラの指示に従って進むだけですが、インストールするコンポーネントは配信予定のプラットフォームに応じて選択しましょう。

  1. ダウンロードしたインストーラを起動
  2. インストールするコンポーネントを選択
    • インストールの途中で「インストールするコンポーネント」を選択する画面が表示されます。
    • Unity 本体や IDE、配信したいプラットフォームに合わせたビルドサポートなどを選択します。*3
    • Unity 2018.2.1f1
      • Unity Editor 本体です。
    • Visual Studio for Mac (macOS のみ)
    • Microsoft Visual Studio Community (Windows のみ)
    • Documentation
      • インストールするバージョンにあわせたドキュメントです。Unity Editor のヘルプボタンを押下するとブラウザが立ち上がり、ドキュメントを参照出来るようになります。
    • プラットフォームビルドサポート
      • Android Build Support
      • iOS Build Support
      • tvOS Build Support
      • Linux Build Support
      • Mac Build Support (IL2CPP)
      • Vuforia Augmented Reality Support
      • WebGL Build Support
      • Windows Build Support (Mono)
      • Facebook Gameroom Build Support
    • 各種ゲームコンソール(Xbox One, PlayStation 4, PS Vita, Nintendo Switch, Wii U, Nintendo 3DS)へのサポートはコチラのページより追加ダウンロードが可能です。
  3. ダイアログに従って進める
    • しばらく待つとインストールが完了します!
    • Unity Editor 本体やプラットフォームビルドサポートなどはそれなりにファイルサイズが大きい(数GB)ので、それなりの時間とそれなりのディスクスペースを必要とします。*5

初期設定

youtu.be

はじめて Unity を起動する際に、幾つかの設定などを行う必要があります。

以下の手順に沿って手続きを進めます。

  1. Unity ID の作成・ログイン
    • アカウントの作成は起動したダイアログから行えます。
    • 別途メールアドレスの確認が必要になります。
  2. 利用するライセンス形態を選択
    • 個人・法人を問わず、売上/資金調達額が $200,000-/年 を超えている場合は Pro、$100,000-/年 を超えている場合は Plus を選択する必要があります。
    • 上記に満たない場合は Personal として無料で利用することができます。
    • Personal, Plus, Pro のそれぞれの違いは、公式ページに詳しく紹介されています。
  3. サーベイに回答
    • 初回起動時のみ、アンケートに回答する必要があります。
    • 現在の所、標準では日本語化されていないため、動画などを参考に回答してください。

インストール・初期設定完了!

これで、Unity を使ったゲーム開発を開始する準備ができました!

f:id:llminatoll:20180712181334p:plain

f:id:llminatoll:20180712174618j:plain
更新を受け取るには読者登録しておくと便利だよ!

unity-manga.hatenablog.com


わかばちゃんと学ぶ」シリーズいろいろ

*1:動画は macOS で撮影を行いました。Windows の場合はところどころ異なると思いますがご容赦ください。

*2:ゲームに限定せず、組織の総売上が対象

*3:なお、以前は Standard Assets を追加選択できましたが、最新版では Unity Package Manager からのインストールに切り替わったようです。また、Example Projects も追加選択できましたが、こちらはプロジェクト作成ウィザードの Learn > Turotial Projects などに代替されたようです。

*4:スクリプトなどを記述・デバッグするための統合開発環境のこと。

*5:筆者のもんりぃ先生は Unity Editor 本体の他に iOS/Android/tvOS/WebGL をインストールしており、約7.5GBのディスクスペースを消費しています。

#マンガでわかるUnity 第1話「Unity ってなあに?」

Webデザイナーを目指す普通の大学生、わかばちゃん。今日が提出期限のレポートがあるようですが……!? f:id:llminatoll:20180712173935p:plainf:id:llminatoll:20180712173940p:plainf:id:llminatoll:20180712173945p:plainf:id:llminatoll:20180712173955p:plainf:id:llminatoll:20180712181927p:plainf:id:llminatoll:20180712174145p:plainf:id:llminatoll:20180712181921p:plain

Unityってなあに?

Unity *1 とは、米国カリフォルニア州サンフランシスコに本社を置く Unity Technologies 社が開発しているゲームエンジンです。

2005年に WWDC: Worldwide Developer Conference *2 でバージョン 1.0 が発表されて以来、幾度となくバージョンアップが重ねられ、2018年7月時点で 2018.2 が最新バージョンとしてリリースされています。

▼これがUnityの操作画面だ Unityの操作画面

Unityの活用事例

Unity で作られたゲームにはどのようなものがあるのでしょうか。 一例を挙げてみます。

これらのゲームは iOS / Android 向けにリリースされているものですが、PlayStation 4Wii UXbox OneNintendo Switch といったコンソールゲーム機向けにリリースされているタイトルもいくつか存在しており、さらに Steam などの PC ゲーム配信プラットフォーム向けにリリースされているタイトルも多数存在しています。

f:id:llminatoll:20180712174618j:plain
私が知ってるゲームもいっぱいある!Unityを使いこなすとこんな本格的なゲームが作れるんですね。

f:id:llminatoll:20180712174958p:plain
最近はその有用性から、ゲーム以外にも様々な産業分野で使われはじめているんだよ!

  • 災害シミュレーション
  • 医療分野における手術シミュレーション
  • 車などの工業デザイン

f:id:llminatoll:20180712174618j:plain
へぇー! Unityの活用範囲ってゲームだけじゃないんだ。可能性が広がりますね。

Unityって何がスゴイの?

Unityが登場する以前は、個人が「ゲームを作りたい」と思っても、次のような機能をイチから作るところから始めなければなりませんでした。

  • 画像や文字などを描画
  • 音声を再生
  • 3D モデルの空間上での論理的な配置を管理
  • ゲーム内で用いる物理演算のシミュレーション
  • ゲームコントローラなどからの入力を受け付け
  • 外部のデバイスやサーバとの通信
  • etc...

Unityは、これらの機能をはじめからフルセットで用意してくれているのです。

f:id:llminatoll:20180712174958p:plain
ゲームエンジン』を一言で表すと、これらのコンピュータゲームを作るための前提となる仕組みを提供する統合開発環境と言えるね。

もちろん、Unity が世に出るずっと前からコンピュータゲームは存在しており、これらは各ゲーム会社が自社開発したゲームエンジンを使って開発されていました。

Unityの哲学

さて、各ゲーム会社により自社開発されたゲームエンジンは、基本的にはその会社に属していない限り利用できません。

これは、一般のゲームクリエイターがゲーム開発を行うにあたって、とても高いハードルになっていました。

そんな中登場した Unity は「ゲーム開発の民主化: Democratize Game Development」という哲学を掲げており、Unity Technologies の CEO である David Helgason 氏の講演などでも度々このフレーズを耳にすることができます。 彼らは Unity をゲーム開発を志す誰もが使えるゲームエンジンと位置づけています。

Unity は、この哲学に沿って、ゲームクリエイターが高度な技術を学習せずともゲーム開発を行えるような機能を続々とリリースし続けています。

また、ゲーム開発・運営を行う上で欠かせない周辺環境の整備という面からもゲームクリエイターを支えてくれています。 一例を挙げると次のようなものがあります。

  • ゲームの利用動向を分析するための仕組みの提供
  • ゲームのパブリッシング補助サービスの展開
  • 開発者コミュニティの支援
  • etc...

さらに、Unity には AssetStore(アセットストア) という仕組みがあり、この仕組みがゲーム開発の大きな助けとなっています。 AssetStore とは、一般の Unity ユーザが作成した 3D モデル・2D 画像・BGM・効果音・ビジュアルエフェクト・スクリプトライブラリ・開発ツール といった様々な Asset が入手可能なコンテンツマーケットです。 Asset の作成者のことを Asset パブリッシャーと呼び、各 Asset は無償のものもあれば、高いものでは $750- もするものまで、様々な価格が Asset パブリッシャーによって設定されています。 ゲームクリエイターは、AssetStore を使って Asset を入手することで、自身が得意としていない領域の補完をしながらゲーム開発に集中することができるのです。

Unity AssetStore(アセットストア) f:id:llminatoll:20180712184804p:plain

Unity公式による3Dモデル・ゲーム素材の提供

Unity公式キャラクター「Unityちゃん」
Unity公式キャラクター「Unityちゃん」
Unityちゃんライセンスの元、3Dモデル、ちびキャラ、2Dイラスト、ライブステージ、ボイスなどのゲーム制作に使えるデータが配布されています。
Image from Gyazo

Unityでできること

では実際に Unity を使うとどのようなことができるようになるのでしょうか。

Unity には数多くのゲーム開発・運営のための機能が備わっていますが、重要な機能は次の2点に集約されます。

  1. 画像・音声・動画・3D モデル *3スクリプト・シェーダ *4 といった、あらゆるゲーム用の素材を組み合わせてゲームの世界を構築するための Editor
  2. 組み合わせられたゲームの世界をプレイするためのパッケージを様々なゲームプラットフォーム向けに出力するビルドプログラム

それぞれについて深掘りしていきましょう。

まず、1. の Editor についてですが、これはインストール後に起動するアプリケーション *5 そのもののことを指します。

その名の通り、ゲームを Edit するためのアプリケーションで、Editor が提供する様々な機能を駆使してゲームの世界を作り上げるために存在しています。

Editor によって内部的に Unity が扱いやすいデータ形式に変換された素材を、後述の Scene View などでグラフィカルに配置・編集していきます。 なお、この素材のことを Unity の世界では Asset (アセット)と呼びます。

次に 2. のビルドプログラムについてです。

Unity では Unity 2018.1 の時点で以下のゲームプラットフォームへの出力をサポートしています。

非常に多くのプラットフォームをサポートしています。 スクリーンが付いているデバイスすべてをサポートしているのではないかと思えるほどです。

Editor で組み合わせられた Asset 群によって構成されたゲームを、これらプラットフォームが指定するフォーマットに変換してプレイできるようにすることをビルドするといいます。

このビルド先のプラットフォームが非常に多いことや、新しいゲームプラットフォームが発売された際のサポートの早さなどが、Unity の人気が高い理由の一つに挙げられます。

Unity でできないこと

Unity はゲーム開発・運営のための統合開発環境ですが、できないことが幾つかあります。

  • 画像を作る
  • 音声を作る
  • 3Dモデルを作る
  • スクリプトを書く
  • シェーダを書く
  • ビルドされたパッケージを各プラットフォームのマーケットにパブリッシュする

Unity にはベクターグラフィックやピクセルグラフィックを描くための機能は備わっていないため、Adobe IllustratorAdobe PhotoshopGIMP などに代表されるグラフィック作成用アプリケーションを用いて作成された画像ファイルを Texture Asset として取り込む必要があります。

同様に音声ファイルをオーサリングする機能も備わっていないため、Steinberg CubaseAudacity などに代表される DAW: Digital Audio Workstation アプリケーションを用いて作成された音声ファイルを AudioClip Asset として取り込む必要があります。

3D モデルは Autodesk MAYA や Autodesk 3ds Max、Blender などに代表される DCC *6 アプリケーションを用いて作成された FBX *7 などを Model Asset として取り込む必要があります。

そして、意外に思うかもしれませんが、Unity 自身にはスクリプトやシェーダを書く機能も備わっていません。 Unity 2018.2 時点では C# でコードを記述可能 *8 になっており、Visual Studio や JetBrains Rider などの IDE *9Visual Studio CodeAtom秀丸エディタやメモ帳など、テキストを記述可能なあらゆるアプリケーションで書かれたコードがコンパイルされ Script Asset として取り込まれます。 なお、Unity 2018.1 において Windows 版は Visual Studio 2017 Community が、macOS 版は Visual Studio for Mac が、それぞれ無償で追加インストール可能になっています。*10

更に、ビルドにより生成された成果物を AppStore や Google Play などに直接アップロードすることもできません。 また、プラットフォームによっては別のアプリケーションを用いてビルド成果物を再変換 *11 する必要がある場合もあります。

まとめ

Unity がゲーム作りのための基本機能を提供してくれるおかげで、ゲームクリエイターは以下のようなゲーム作りの本質に集中できるようになるのです!

  • ユーザを引きつけるような絵・3D モデル・エフェクトなどの制作
  • ユーザの心を揺さぶるような音楽の制作
  • ユーザを夢中にするゲームロジックのプログラミング

次回予告「第2話:ゲームを作ってみよう!」

f:id:llminatoll:20180712180004j:plain
あの〜、Unityが何かはもうわかったので、早くゲームを作ってみたいんですけどぉ……
f:id:llminatoll:20180712174958p:plain
おおっ、いいねぇ! 僕もそう思っていたところだよ。じゃあ次から早速ゲームを作ってみよう!

f:id:llminatoll:20180712180004j:plain
ええっ!? いきなりですね!?

f:id:llminatoll:20180712174958p:plain
じゃあ、まずはここからUnityをインストールしておいてくれるかな。

Unity ダウンロードページ(公式) Unityダウンロードページ

f:id:llminatoll:20180712174618j:plain
更新を受け取るには読者登録しておくと便利だよ!

f:id:llminatoll:20180712181334p:plain


わかばちゃんのマンガでわかるシリーズいろいろ

マンガでわかるDocker

ご要望の多かった「マンガでわかるDocker」描きました! ダウンロード販売中です。 note.mu 技術書典5に当選しましたら続編の「マンガでわかるDocker②」の制作も予定しています。

マンガでわかるGit

個人ブログから始めたシリーズが、リクナビNEXTジャーナルさんでWeb連載。
こちらからお読みいただけます:マンガでわかるGitの記事一覧 | リクナビNEXTジャーナル
2017年4月にわかばちゃんと学ぶGit使い方入門として書籍化されました。 webdesign-manga.com togetter.com

マンガでわかるScrapbox

Scrapboxにて、Scrapboxの便利な使い方がわかるマンガをWeb連載中です。現在1〜6話まで無料公開されています。(2018/7/13時点)

goo.gl goo.gl goo.gl

マンガでわかるGoogleアナリティクス

KOBITブログにて、アクセス解析ツール「Googleアナリティクス」「Googleタグマネージャ」のマンガをWeb連載中です。現在1〜5話まで無料公開されています。(2018/7/13時点)

kobit.in kobit.in

他にもある!「わかばちゃんと学ぶ」シリーズ

マンガでわかるWebデザイン・マンガでわかるGit・マンガでわかるGoogleアナリティクスは書籍化しました。全国の書店・Amazonで発売中です。

*1:かつては Unity3D と呼ばれていたこともありましたが、現在は Unity が正式名称となります。

*2:Apple, Inc. が毎年開催している開発者向けのカンファレンスイベント

*3:人物や物体の立体構造を表現するためのデータ構造のこと。

*4:描画を司る GPU: Graphic Processing Unit に対して「どのように描画をするのか?」を指示するためのプログラムのこと。

*5:Windows であれば Unity.exe / macOS であれば Unity.app

*6:Digital Content Creation: 3D モデル制御やアニメーション作成を行うためのアプリケーションのこと。

*7:3D モデルを取り扱う DCC アプリケーション間でデータをやり取りする際に用いられる汎用フォーマットのこと。Filmbox の略。

*8:Unity 2018.1 までは UnityScript という JavaScript に似た言語が利用可能でした。また、Unity 5.0 より前は Boo という Python ライクな言語も利用可能でしたがいずれもサポートが打ち切られています。

*9:Integrated Development Environment: プログラムの記述やデバッグなどを行うための統合開発環境のこと。

*10:Unity 2017.1 までは MonoDevelop-Unity という IDE が同梱されていましたが、最新の言語仕様への追従が難しくなったなどの理由により Unity 2018.1 より同梱されなくなり、macOS 版では後継 IDE である Visual Studio for Mac が選択可能になりました。

*11:例えば iOSXcode を用いてビルド・アーカイブをしないと AppStore に公開するためのパッケージが作成できません。

マンガでわかるUnityはじめます。

これは何

このブログでは、マンガ + 実戦で楽しくゲーム制作がわかる「マンガでわかるUnity」をWeb連載してまいります!

マンガでわかるUnityはじめます

解説・監修担当

もんりぃ先生 @monry

マンガ・図解担当

湊川(みなとがわ)あい@llminatoll

ただいま鋭意制作中。

第1話更新をお待ちください!

マンガでわかるDocker

ご要望の多かった「マンガでわかるDocker」描きました! ダウンロード販売中です。 note.mu 技術書典5に当選しましたら続編の「マンガでわかるDocker②」の制作も予定しています。

わかばちゃんと学ぶ」シリーズ

マンガでわかるWebデザイン・マンガでわかるGit・マンガでわかるGoogleアナリティクスは書籍化しました。全国の書店・Amazonで発売中です。