Unityでこんなことができる

KLab×博多Tech塾

KLab株式会社 於保 俊

2

はじめに

3

KLabでソーシャルゲーム開発運用から、社内ツール作成、AR/VRなどの
研究開発などに従事。サーバーからゲーム開発、電子工作など技術を
幅広く、少し深く的なエンジニア。社内にはもっと強いUnityエンジニアが
いるので恐縮です...

於保 俊

エンジニアリングマネージャー

Kラボ、技術統括部

KLab株式会社

自己紹介

4

KLab株式会社



設立:2000年8月1日



主にスマートフォン向けのゲー
ム開発・運営を行っています

KLab株式会社について

5

1時間でUnityでできることをいっぱい話すぞ!

最初はUnityの操作や実際の使い方を簡単なゲームっぽいものを
作りながら説明します。

後半はさまざまなゲーム以外のUnityの応用を見ていきましょう。

細かく手取り足取りハウツーを説明することは、しません。雰囲気
とキーワードを掴んでもらったら、あとは本やWebを活用して自分
で学んでみてください。

今日のおはなし

6

Unityとは?

7

本資料は、ユニティ・テクノロジーズまたはその関連
会社がスポンサーとなっているものではなく、ユニティ
・テクノロジーズまたはその関連会社と提携しているも
のではありません。Unity及びUnityロゴは米国および
その他の地域でのユニティ・テクノロジーズまたはそ
の関連会社の商標または登録商標です。

8

2005年に誕生したゲームエンジン・ゲーム開発環境。

多彩な機能とマルチプラットフォーム対応で現在非常に広く使わ
れています。もちろんKLabでもUnityを使っています。



ゲームエンジンとは?

ゲームで使われる共通処理などをまとめ、開発を効率化できるよ
うにしたもの。ライブラリやAPI群であったり、UnityやUnreal Engine
のように統合環境を含むものまで、多様です。

ゲームエンジン「Unity」

9

料金は?

→条件を満たせば無料 詳しくは、Unityのストアページ

Unity Hubを使うのが楽なので、まずはUnity Hubをダウンロードし
てインストールしましょう。

その後、Unity Hubを起動して「インストール」から目的のバージョ
ンのUnityをダウンロード&インストールします。

Unityアカウントも必要となるので、登録などしておきましょう。

さっそくインストール

10

プロジェクト名を設定し、3Dのテンプレートを選択します。

Unityの起動と初めてのプロジェクト

11

Cube

Sphere

その他その他

まずは、何かを置いてみる

12

移動

回転

拡縮



Unityの座標 XYZ Yが↑ Zは奥行 単位は1mで考えます



ものを動かす

13

親子関係 コンピュータではよく使いますよね(フォルダ、バージョ
ン管理、データ構造...)



親子関係の意味

 管理が楽になります。

 処理負荷を抑えることができます



Enable/Disableを切り替えたりしてみる



ヒエラルキー

14

ゲームの管理単位です。Sceneをベースにしてゲーム世界を構築
します。

Sceneを切り替えることによって、ゲーム画面の遷移を行ったりし
ます。(タイトル→キャラ選択→ステージ1・・・)





Sceneの説明

15

コンポーネントのアタッチとパラメーターの設定

ものに機能をつけていく方法

こうやってゲームを構築していく



物理演算はそれだけでも結構面白い

コライダーとかRigidBodyとか 落ちるのとか

実行の概念もここで説明

いきなり物理演算とSceneの実行

16

コンポーネントを自分で作るには?→スクリプトを書いてアタッチ
する

例えばキーボードでものを動かす機能を実装する

StartとUpdateの説明 ライフサイクルの説明

キーボードで動かす 初めてのスクリプト

17

オブジェクトのテンプレートです。

これを元に、同様のオブジェクトをいっぱいScene内に配置したりし
ます。

Prefabの設定値を変えることでPrefabから配置したすべてのオブ
ジェクトを一括で変えたり、設定値をそれぞれ少し変えながらバリ
エーションを作ったりといったことができます。



Prefabの説明 再利用可能な部品を管理する

18

スクリプトでオブジェクトの生成

オーディオを使ってみる AudioClipと空間オーディオの説明



簡単な効果音作成ソフトの紹介→KanaWave

カナで効果音を入力するだけでそれっぽい音が作れる神ソフト

弾を撃ってみる Instantiate

19

Colliderのあたり判定の話

On~系の説明

Debug.Logでデバッグもできます。



あたり判定

20

爆発のエフェクトも作ってみましょう。

パーティクルシステムを使ってみます。パーティクルシステムは、
爆発だけでなくさまざまなゲームのエフェクトを作るものです。ルー
ルに従ってオブジェクトをたくさん発生させることでさまざまなかっ
こいいエフェクトを作ることができます。

パーティクルシステム

21

スコア表示とか

gamemanager的なのを作るのと、オブジェクト同士の参照の仕方も
ここで説明

uGUI

22

AssetStoreからアセットを導入してみましょう。

Standard AssetsというUnity公式のアセットを導入してみます。

アニメーションも動かしてみましょう。

AnimationClipとか、アニメーションの簡単な説明

ボーンアニメーションとか

キャラを置く、動かす

23

Shader=見た目にかかわるプログラム

データ=テクスチャ画像や各種設定値など



Shader+データ=マテリアル 見た目をコントロールする



Shader、テクスチャ、色などを変えてみましょう。

ここを勉強するとかっこいい表現ができます。

マテリアル 見た目を変える

24

ここまではエディタの話です。

ゲームとして配布するためにはビルドして実行ファイルを作りま
す。

PC向けで作ってみますが、プラットフォームの切り替えで、iOSや
Android向けにもビルドできます。

ほとんど同じプロジェクトが複数のプラットフォームに簡単にビルド
できます。(いうほど簡単じゃないけど)

ビルド

25

ここまでで、基本的な機能を一気に見てきました。

このくらいで、簡単なゲームやコンテンツを作れそうな気になって
きたかなというところですが、多分気がしてきただけなので、本イ
ベントが終わったら実際に手を動かしてみてくださいね。



ビルドしてみようという人は時間がかかると思うので、ちょっと休憩
しましょう。

基本機能の紹介終わり

26

閑話休題

27

剛の者は、VimでもEmacsでも好きなエディタを使っています。

今一番何も考えずに使えるのは、Visual Studio Codeかな。

Visual Studioを使うと、強力なC#のサポート機能が使えます。

他にも、Jet BrainsのRiderを使う人もいます。

宗教戦争にするつもりはないので、お好きなのをどうぞ。

C#書くエディタは何がいいの?

28

とりあえずは、Debug.Logを使ったデバッグでそこそこなんとかなり
ます。最初のうちは。

VisualStudioのデバッガをアタッチして・・・みたいなこともできるの
で困ったら調べてみては?

デバッグの話

29

今回の話は、性能の事を考えていません。だけど、ちゃんとゲー
ム作る場合は、60fps守るとか、性能の制限についてちゃんと考え
なければいけません。

そこがプロが頑張っているところのひとつでもあります。

UnityにもProfilerとか、FrameDebuggerとか便利な道具があるの
で、困ったら調べてみるといいと思います。

パフォーマンスチューニングの話

30

無理じゃないでしょう。Unity以前と比べたらはるかに簡単になった
と思います。だけど、目指したいクオリティも求められるクオリティ
も比例してあがっているので、結局ゲームを作ってリリースする
のって並大抵のことじゃないです。

でも、インディーゲームは最近盛り上がっています。プレイする側
としても面白いし、作る方にチャレンジするのも面白いと思いま
す。

一人(少人数)でゲームを作れるの?

31

少しむつかしい話題

32

折角なので簡単な例でWebの通信をやらせてみましょう。

UnityWebRequestを使って、Github Pagesに用意したテキストデー
タを読んで、uGUIで値を表示してみます。



APIを叩いたり、実用的に使うには基盤部分の設計をちゃんとした
方がいいと思います。

Webサーバーとの通信

33

Unity Package Managerは、Unity用のパッケージを管理できる便
利なシステムです。

さまざまなライブラリなどがUPMで提供されています。



.unitypackageを使うのに比べて、依存関係のチェックや追加削除
の面で圧倒的に便利です。

便利なものは使っていきましょう。

UnityPackageManagerの紹介

34

Unityだけじゃゲームは作れません。

アセット(素材)を作るツールが必要です。

色々まとめて、Digital Contents Creationツールと言われます。

OSSで無料で使えるものとしては、3DツールのBlenderや画像編
集ソフトのGIMPなどが有名です。

もちろん商用のソフトも色々あります。

DCCツールについて

35

FBX

DAE

3ds

DXF

OBJ



対応ファイル形式 3D系

36

該当アプリがインストールされている場合使用可能

 3dsMax

 Maya

 Blender

 Cinema4D

 Modo

 LightWave

 Cheetah3D

対応ファイル形式

37

BMP

TIFF

TGA

PSD

JPEG

PNG



フォーマットによっては読み込めないこともあります。

対応ファイル形式 画像系

38

mp3

Ogg Vorbis

Wav

AIFF

各種Tracker(.mod .it .s3m .xm)



Trackerを知っている人はさすがにいないと思いますが、デモシー
ンでよく使われる音楽データ形式です。

対応ファイル形式 オーディオ系

39

こうしてファイルなどで、他のアプリケーションと連携していくのが
大事です。

実際に作っていくと、こういった大量のさまざまな形式のファイルを
管理するのが大変になります。

バージョン管理、構成管理、作業フロー管理とか、ビルドシステム
とか、CI/CDが、プロジェクトがある程度の規模以上になると非常
に重要になってきます。

他のアプリケーションと連携する

40

Unityはこんなところでも
使われている

41

ゲーム以外のUnityの応用例を紹介してみます。

ゲームだと皆さんのビジネスにつながりにくいかもしれませんが、
このようにゲーム以外の応用もさまざまにあるよということが、何
かヒントになるかもしれないと思います。

Unityの応用例

42

アニメなどの映像制作に使われています。

これまでのオフラインレンダリングに代わって、より迅速に映像が
作れるようになっています。

Shaderを使った表現など、これまでなかったような表現も登場して
います。

映像制作

43

VRやARのコンテンツ作成に使われています。どちらも標準(準標
準)機能としてUnityに組み込まれています。

HTC ViveやOculusといったHMDから、iOS、Androidのようなスマー
トフォンで使うものまでさまざまなプラットフォームに対応していま
す。



VR/AR

44

建物や建造物のビジュアライゼーション

工程の検証・シミュレーションなど



CAD、BIM、CIMといったシステムとの連携がやりやすくなっていま
す。

また、ファイルフォーマットの変換ソリューションなども出てきてい
ます。

建築・建設・土木など

45

設計の検証や、シミュレーションの可視化などに使われています。

また自動運転の学習データの作成などにも応用されています。

自動車

46

科学シミュレーションの可視化

手術の補助ARシステムなど、医療分野

探査機の管理など、宇宙開発

アートや教育

災害や環境

仕事のトレーニング

ロボティクス ROSというロボット用OSと連携するなど



他にも

47

Reference

48

Unity公式の学習コンテンツ https://learn.unity.com

Unity公式のマニュアル 
https://docs.unity3d.com/ja/2019.4/Manual/UnityManual.html

(自分が使っているバージョンに合わせてください)

スクリプトリファレンス

https://docs.unity3d.com/ja/2019.4/ScriptReference/index.html



Unity公式チュートリアルの紹介

49

玉転がしのサンプル 
https://learn.unity.com/project/yu-zhuan-gashi?language=ja

2Dシューティングのサンプル

https://github.com/unity3d-jp-tutorials/2d-shooting-game

(古いサンプルです。バージョン対応もされていないので非推奨で
すが、僕が最初に学習したものです。)

その他の学習用サンプル

50

Unity、DCCツール、OS、その他のバージョンや対応プラットフォー
ムは要確認。そもそも動かない事をやっていないかどうかなど。



基本はUnity公式ドキュメントが一応正、困ったら/迷ったらそこに
戻ってみるといいかも。変更の激しいものもあるので、情報が正し
いかどうかを常に疑っていくことは大事です。

Webや本の情報を参考にするときの注意

51

最後に

52

わたしはUnityのまわしものではありませんが、Unity社の掲げる、
「ゲーム開発を民主化する」というミッションには共感しています。

今回、ゲーム以外にも色々できそうなUnityの事を少し知ってもら
えたかなと思います。

みなさんが、Unityを使ってクリエイティブな活動をしていくきっかけ
になれば幸いです。

最後に


Unityでこんなことができる KLab×博多Tech塾