SlideShare a Scribd company logo
電算Unity講習会
とりあえず触ってみよう編
自己紹介
金沢工業大学大学院工学研究科システム設計工学専攻2年
永瀬研究室所属
安田圭佑
taimiso0319
Unity歴2年くらい
Unity Engineとは
• 通称Unity
• ゲームエンジンの一種
• 複数のプラットフォームに対応
• 様々なソフトウェアの開発が可能
• 主な言語はC#
起動してみよう
プロジェクト名
保存場所
ヒエラルキー
シーン
インスペクタ
プロジェクト
再生ボタン
操作してみよう
Cubeを押す
何かシンプルなオブ
ジェクトを出すのは
コレだけで出来る!!
簡単!!!!!!
ゲーム
情報
コンポーネント
Transform:
物体の外観/変形情報
Position:位置
Rotation:回転
Scale:大きさ
Mesh Filter:
ポリゴン情報
Collider:
衝突判定(適当な日本語がない)
Mesh Renderer:
ポリゴンに対する描画情報
Material:
色やテクスチャなど、
物体の材質情報
幅高奥
X Y Z
便利な操作 @tsubaki_t1
• Shift+Ctrl(Command): オブジェクトにひっつく
• V押しながら移動: 頂点にひっつく
• Ctrl(Command)押しながら移動: グリッド移動
• Shift+F: シーンカメラが選択オブジェクトに追従
• Ctrl(Command)+D: 複製
• Shift + F後Alt+ドラッグ: オブジェクトを中心に回転
色を変えてみよう
なんかこんなのが出来る
Shader: マテリアルの表現方法
Rendering Mode: 表現方法の基本設定
Opaque: 不透明
CutOut:Alpha Cutoff以下のドットをOff
Fade: 透明度(完全透明)
Transparent: 透明度(不完全透明)
Albedo: 基本色
Metallic: 金属の質感
Smoothness: 荒さ
Normal Map: 法線マップ
Hight Map: ハイトマップ
Occlusion: オクルージョンマップ
Emission: 発光
Detail Mask: 部分詳細マスク
Secondary Maps: 詳細テクスチャ等の上書き
とりあえず色を変えて
ドラッグ&ドロップ
注目!!
物理処理を付けてみよう
てかそもそも物理処理って何?
• 現実世界の物理法則に則った(もしくは摸した) 
演算処理
• 慣性の法則 エネルギー保存の法則等
• 簡単に言えば、落ちたりぶつかったりすること
• Unity側が勝手に計算してくれる
落ちるのに必要なもの
Rigidbody(剛体)
Mass: 重さ(kgらしい)
Drag: 空気抵抗
Angular Drag: 回転抵抗
Use Gravity: 重力の有無
Is Kinematic: 物理エンジンのon/off
Interpolate: 動作補完
Collision Detection: 衝突判定補完
Constraints: 位置及び回転方向固定
ぶつかるのに必要なもの
Collider(衝突判定)
Edit Collider: コライダ頂点の編集
Is Trigger: トリガ判定の有無
Material: 物理マテリアル設定
Center: コライダの中心位置
Size: コライダのサイズ
注目!!
落ちるだけじゃつまらない
なんかこんなのが出来る
Physic Material(物理材質)
Dynamic Friction: 動摩擦係数
Static Friction: 静摩擦係数
Bounciness: 反発力
Friction Combine: 衝突時の摩擦挙動
Bounce Combine: 衝突時の反発挙動
Friction Direction 2: 異方性摩擦
Dynamic Friction 2: 異方性動摩擦係数
Static Friction 2: 異方性静摩擦係数
いくつも設定するのは
面倒くさい
プレファブ
• ゲーム内オブジェクトをプロジェクトに保存する
• コンポーネントの情報をまとめて保存できる
• スクリプトから生成等ができる
• 各情報は後から更新ができる
• 上記のコピペではできないことができる
ドラッグ&ドロップ
なんかこんなのが出来る
ドラッグ&ドロップ
ステージ(Scene)を保存したい
Scene
• ヒエラルキー上オブジェクトの各種情報を保存
できる
• いつでも呼び出して編集が可能
• ステージ移動などに使う
• ビルドするときに順番の設定などをする
なんかこんなのが出来る
名前を付けて保存
新しいシーンを作成すると
最初からに・・・
ダブルクリック!!!
ゲームとして出力がしたい
OSXだとこれだけ
Windowsだと二つできる
※Windowsはこの二つが
同階層にないとだめ!
これで起動できる!!!
ここまでは大丈夫?
ちょっとだけレベルアップ!
ヒエラルキー階層構造
• ゲームオブジェクトはそれぞれ親と子の関係になっ
ている
• 一番上(親)階層のオブジェクトはワールドが基準
(X:0 Y:0 Z:0) のワールド座標
• 子は親の座標が基準 (X:0 Y:0 Z:0) のローカル座標
• ワールド座標とローカル座標で動きが違う
ドラッグ&ドロップ
親
子
緑は青を基準に動く
けど説明しづらいので
実 演
レベルアップ!
スクリプト(プログラム)
• C#で記述
• コンポーネントの一つとしてオブジェクトに追
加する
• 主に他のコンポーネントに対して働く
スクリプト作成時について
• 作成した時に名前が変えられるので、クラス等
の概念がわからない場合は、その時点で名前を
変えよう
• C#の特徴としてファイル(.cs)とクラス名が同一
でないとエラーがおきる
なんかこんなのが出来る
ダブルクリック!!!
Mono Develop
色は設定のSyntax Highlightingから変えられる!
Start(): 最初に一度だけ{}の中が実行される
Update(): Start()後毎フレーム{}の中が実行される
何か設定したい時はStart()に記述する
何か常に動かしたい時は
Update()に記述する
よくわからないけど
とりあえずCube動かしてみよう
そうしよう
赤枠のコードを書いてみよう
“=”じゃなくて “+=”なのに注意!!
File → Save
か
Build → Build All
で
保存
ドラッグ&ドロップ
速度を変えたい
とりあえず以下のように書いてみよう!
publicとprivateに注意
保存も忘れずに!
publicを付けたものは表示され
privateを付けたもの(test)は非表示に
this.transform.position += new Vector3(xSpeed,0,0);
つまり現状はxSpeed = 0.1になっている
右のように表示され
た数値は手動で変更
が可能(再生中でも)
Vector3
• 3次元ベクトルX Y Zを表している
• つまりVector3(5,3,7)は、X=5 Y=3 Z=7となる
• 2Dゲームの時は奥行きが無い*ので Vector2を使
う *正確にはあるがレイヤーのような働きになる
this.transform.position
• インスペクタのTransformと同じ
this:
このスクリプトがアタッチされているオブジェクト
transform:
Transformコンポーネント
position:
ポジションのプロパティ
this.transform.position += new Vector3(xSpeed,ySpeed,zSpeed);
となるとどうなるか想像してみよう
この数値で
以上を踏まえて
キー入力がしたい
とりあえず以下のように書いてみよう!
できたら保存して
再生してみよう
if(Input.GetKey(KeyCode.Space)){}
if( ){ }:
もし( )の中が真(正しい)なら{ }の中を実行する
Input.GetKey( ):
( )の中のキーが押されている時“真”になる
KeyCode.Space:
スペースキー
つまりスペースキーが押されている間
this.transform.position += new Vector3(xSpeed,ySpeed,zSpeed);
を実行する
そーーーろそろ
FPSみたいな動きがしたい
とりあえず以下のように書いてみよう!
WASDで動くよ
ミススペルに注意!
Input.GetAxis(“”)
Input.GetAxis( ):
( )の中の文字に対して設定されている    
方向情報を取得 (コントローラ対応)
初期設定
Horizontal:
AキーとDキーにより -1 ~ 1 を取得
Vertical:
WキーとSキーにより -1 ~ 1 を取得
カメラをCubeの
子オブジェクトにしよう
カメラ位置はCube後方
位置と方向がずれると
動作に支障がでる
恐れがあるので注意!
X:0
Y:お好み
Z:Cubeより後ろでお好み
ダッシュや回転もしたい
マウスじゃなくてごめん
とりあえず以下のように書いてみよう!
使わないものは消そう
QとEで回転するよ
this.transform.Rotate()
transform.Rotate( ):
( )の中のVector3分回転する
new Vector3(0,1,0);
ならY軸を基準に1度回転する。
if(Input.GetKey(KeyCode.LeftShift)){
dashSpeed = 2;
}else dashSpeed = 1;
Shiftを押している間速度に乗算される
dashSpeedが2になる 離すと1になる
ひとまずここまで!
迷路ゲームくらいは作れる
これ以降おまけ
(時間と体力的余裕があれば)
Unity Asset Store
• メニューバー Window/Asset Storeから表示でき
る
• アカウント紐付けで様々なAssetを買うことがで
きる
• CGや音声、Unity自体の拡張と様々
• 購入はクレジットカード
By けーご @kyusyukeigo
確かに色々手に入るけど、
頼りすぎるのは危険かも・・・?
ここまでUnity5ぽい
機能なし
Physically-based shading
物理ベースシェーディング
• 現実世界の物理法則(マイクロファセット理論や
エネルギー保存の法則に伴う双方向反射率分布関
数など)にしたがってマテリアルのデザインをす
る手法
• 詳しくは“THE COMPREHENSIVE PBR GUIDE”を
よもう
• 簡単にいうとすごいリアルな表現ができる
Shader: マテリアルの表現方法
Rendering Mode: 表現方法の基本設定
Opaque: 不透明
CutOut:Alpha Cutoff以下のドットをOff
Fade: 透明度(完全透明)
Transparent: 透明度(不完全透明)
Albedo: 基本色
Metallic: 金属の質感
Smoothness: 荒さ
Normal Map: 法線マップ
Hight Map: ハイトマップ
Occlusion: オクルージョンマップ
Emission: 発光
Detail Mask: 部分詳細マスク
Secondary Maps: 詳細テクスチャ等の上書き
ハイダイナミックレンジ(HDR)
カメラそれぞれにあるHDR
チェックを入れることで、
白より明るい色を表現できる
特にEmissionのような
自己発光する物体を扱う際には
必須のオプション
とりあえずこんな感じ
作ってみよう
Rendering Mode はOpaque
Albedoを青っぽく
Emissionは数値を入れると色が選べる
光らないじゃないか!!!!
光の反射は静的な物体に
事前焼き込みされる
光を反射させたいオブジェクトは
Staticのオプションをつける
事前に反射が計算されるので…
二色おくとちゃんと混ざる
ついでに暗くしてみた

More Related Content

Similar to 金沢工業大学電子計算機研究会新入生向けUnity講習会資料

IoT with Unity
IoT with UnityIoT with Unity
IoT with Unity
Saitou Yuta
 
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
Unity Technologies Japan K.K.
 
ユニティちゃんだけじゃない! オープンソースとUnityの未来
ユニティちゃんだけじゃない! オープンソースとUnityの未来ユニティちゃんだけじゃない! オープンソースとUnityの未来
ユニティちゃんだけじゃない! オープンソースとUnityの未来
NAKAOKU Takahiro
 
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
maginemu Mishimagi
 
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz SpaceUnity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Mori Tetsuya
 
Couchbase x unity
Couchbase x unityCouchbase x unity
Couchbase x unity
MakotoItoh
 
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
Unity Technologies Japan K.K.
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
DeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using UnityDeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using Unity
Takeyuki Ogura
 
Unity入門ハンズオン
Unity入門ハンズオンUnity入門ハンズオン
Unity入門ハンズオン
Kazuya Hiruma
 
Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編
Unity Technologies Japan K.K.
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
YutoNishine
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について
Katsutoshi Makino
 
TouchDesigenr Beginners' workshop vol.003
TouchDesigenr Beginners' workshop vol.003TouchDesigenr Beginners' workshop vol.003
TouchDesigenr Beginners' workshop vol.003
Dan Imagineer
 
ゲムつくプログラミング講座
ゲムつくプログラミング講座ゲムつくプログラミング講座
ゲムつくプログラミング講座
purinxxx
 
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
PaperSloth
 
初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで
Unity Technologies Japan K.K.
 

Similar to 金沢工業大学電子計算機研究会新入生向けUnity講習会資料 (20)

IoT with Unity
IoT with UnityIoT with Unity
IoT with Unity
 
【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity【Unity道場 建築スペシャル】はじめてのUnity
【Unity道場 建築スペシャル】はじめてのUnity
 
ユニティちゃんだけじゃない! オープンソースとUnityの未来
ユニティちゃんだけじゃない! オープンソースとUnityの未来ユニティちゃんだけじゃない! オープンソースとUnityの未来
ユニティちゃんだけじゃない! オープンソースとUnityの未来
 
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
 
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz SpaceUnity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
 
Couchbase x unity
Couchbase x unityCouchbase x unity
Couchbase x unity
 
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
DeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using UnityDeNA TechCon2019 How to implement live streaming client using Unity
DeNA TechCon2019 How to implement live streaming client using Unity
 
Unity入門ハンズオン
Unity入門ハンズオンUnity入門ハンズオン
Unity入門ハンズオン
 
Unityと.NET
Unityと.NETUnityと.NET
Unityと.NET
 
Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド入門 アーティスト編
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 
各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について各種ゲームエンジンの紹介と利用について
各種ゲームエンジンの紹介と利用について
 
TouchDesigenr Beginners' workshop vol.003
TouchDesigenr Beginners' workshop vol.003TouchDesigenr Beginners' workshop vol.003
TouchDesigenr Beginners' workshop vol.003
 
ゲムつくプログラミング講座
ゲムつくプログラミング講座ゲムつくプログラミング講座
ゲムつくプログラミング講座
 
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
 
初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで初めてのVR/AR開発をUnityで
初めてのVR/AR開発をUnityで
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 

金沢工業大学電子計算機研究会新入生向けUnity講習会資料