SlideShare a Scribd company logo
1 of 114
Download to read offline
UnityとBlenderハンズオン
静岡Developers勉強会
第3章 初めてのUnityとBlender
はじめに
静岡Developers勉強会では、過去に下記の勉強会を行いました。
2010年:「Programming in Haskell」
2011年:「JavaScript: The Good Parts」
2012年:「HTML5&CSS3実践入門」、「GitHubハンズオン」、
「node.jsハンズオン」
2013年:「入門 機械学習」
2014年:「実践 コンピュータビジョン」
2015年は上記の勉強会で学んだことを実践し、Shizudev名義のスマホアプリ
を開発します。
作成後は公開用のサイトや動画も作成し、機械学習を使ってダウンロード状
況などを分析していきます。
スマホの広告費は会費にあて、万が一予定より多く収入が入った場合には寄
付を考えています。
自己紹介
 やじゅ@静岡・・・漢字名は「八寿」
平口八寿人(https://www.facebook.com/yasuhito.hiraguchi)
アラフォーエンジニア、元MSMVP(VisualBasic)
静岡県島田市のSL(大井川鉄道)が走っている所に在住
Twitter:yaju はてなID:Yaju3D
http://blogs.wankuma.com/yaju/
http://yaju3d.hatenablog.jp/ 数学と物理を基礎からやり直す)
http://www.slideshare.net/yaju88/presentations (スライド)
概要
2015年の静岡Developers勉強会は「スマホアプリの開発」を題材とします。
スマホアプリを開発する上で、汎用的なツールの使い方を学びます。
・Unity
統合開発環境を内蔵し、複数のプラットホームに対応するユニティ・テクノロジーズが
開発したゲームエンジンである。ゲームとインタラクティブな3Dコンテンツ制作のため
の常識にとらわれない強力な機能を提供します。
・Blender
オープンソースの3DCG制作ツールです。
3Dモデルの作成、レンダリングのほかアニメーション、コンポジット機能も備える。
セッション内容
 Unityでパックマンもどきを作成 C#スクリプト
http://noobtuts.com/unity/2d-pacman-game
 Blenderで人の形を作成
「ブレンダーからはじめよう!」の本から
 スマホアプリのアイディア
Unityでパックマンもどきを作成
 はじめに
@noobtuts さんのチュートリアルを参考にUnityの使い方をマスターする
http://noobtuts.com/unity/2d-pacman-game
【学ぶポイント】Unityのアニメーションとルート巡回を理解する
今回使用するオブジェクト
Mecanim …アニメーションシステム
AnimatorController…アニメーションの制御オブジェクト
WayPoint …巡回ポジションによる移動制御オブジェクト
Unity:プロジェクト作成(2D)
 プロジェクトを作る
Unityエディタの「File」→「New Project」を選択する。
必ず「2D」を選択する。
Unity:カメラの設定と背景の作成
 Hierarchy(ヒエラルキー)
Unityのゲームシーンは、キャラから背景まで、すべてのゲームオブジェクト
(GameOnject)で構成されます。このゲームをオブジェクトを階層構造で編集
できるのがHierarchy(ヒエラルキー)です。
Main Cameraを選択して
右側のInspectorに内容が
表示されることを確認
 Inspector(インスペクタ)
その時点で選択されているゲームオブジェクトやアセットの詳細情報を表示・編
集するビューです。
Unity:カメラの設定と背景の作成
Position X 14.5 Y 16 Z -10
Background 黒色
Size 30 → 変更してもいい
に変更する
 Assets(アセット)
Assetは資産の意味。Unityで使用するオブジェクトやスクリプトを保存するフォルダ。
Assetsの右クリックでCreate→Folderで「Sprites」を作成する。
「Show in Exprore」を選択し、packman/Assets/Spritesフォルダに背景の「maze.png」を入れる。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
Unity:背景画像の保存
Unity:背景画像の設定
 背景画像の設定
Assetsの「maze」を選択、Inspectorで変更する。
Pixels Per Units 8
Pivot Bottom Left
に変更する。
Filter Modeを「Point」
に変更する。
画像をぼやけさせないで
ドットを強調させるため
Unity:背景の設定
Assetsの「maze」をドラッグして、Sceneにドロップを行う。
拡大されて表示されている場合、マウスホイールで縮小させる。
チュートリアルは
One Column Layout
であるが変更は不要
Unity:衝突設定
Hierarchyで「maze」を選択し、Inspectorにて「Add Component」→「Physics 2D」→「Box Collider 2D」
を選択する。
Unity:衝突設定②
 52個のブロックについて衝突サイズを変更する
迷路のブロックごとに衝突サイズを合わせる。
衝突サイズを変更可能
にする。
※移動は出来ない
Unity:衝突設定③
歯車アイコンを左クリックのメニューにて、コピー&ペーストして52個追加する。
※入力が大変なのでスクリプトで追加することにしました。
Unity:衝突設定(Box Collider 2D) 1~26
No Center X Center Y Size X Size Y
1 14.5 31.25 27 0.5
2 14.5 30 1 2
3 0.75 16 0.5 31
4 28.25 16 0.5 31
5 14.5 0.75 27 0.5
6 4.5 28 3 2
7 24.5 28 3 2
8 10 28 4 2
9 19 28 4 2
10 4.5 24.5 3 1
11 24.5 24.5 3 1
12 14.5 24.5 7 1
13 14.5 24 1 6
No Center X Center Y Size X Size Y
14 8.5 23 1 4
15 20.5 23 1 4
16 10.5 21.5 3 1
17 18.5 21.5 3 1
18 2 21.5 2 1
19 27 21.5 2 1
20 4.5 18.5 3 1
21 24.5 18.5 3 1
22 4.5 15.5 3 1
23 24.5 15.5 3 1
24 2 12.5 2 1
25 27 12.5 2 1
26 5.5 20.5 1 3
Unity:衝突設定(Box Collider 2D) 27~52
No Center X Center Y Size X Size Y
27 23.5 20.5 1 3
28 5.5 13.5 1 3
29 23.5 20.5 1 3
30 8.5 15.5 1 7
31 20.5 15.5 1 7
32 11.25 17 0.5 4
33 17.75 17 0.5 4
34 14.5 18.75 6 0.5
35 14.5 15.25 6 0.5
36 14.5 12.5 7 1
37 10 9.5 4 1
38 19 9.5 4 1
39 2 6.5 2 1
No Center X Center Y Size X Size Y
40 27 6.5 2 1
41 4.4 9.5 3 1
42 24.5 9.5 3 1
43 5.5 7.5 1 3
44 23.5 7.5 3 1
45 4.5 3.5 3 1
46 24.5 3.5 3 1
47 8.5 5 1 4
48 20.5 5 1 4
49 14.5 6.5 1 7
50 14.5 6.5 7 1
51 10.5 3.5 3 1
52 18.5 3.5 3 1
Unity:衝突設定のスクリプト
座標の入力が大変なので、スクリプトによってBox Colider2Dを追加する。方法については後程、説明する。
void AddBoxColider2D() {
ArrayList data = new ArrayList();
data.Add(new Rect(14.5f, 31.25f, 27f, 0.5f));
data.Add(new Rect(14.5f, 30f, 1f, 2f));
data.Add(new Rect(0.75f, 16f, 0.5f, 31f));
for (int i=0; i<data.Count; i++) {
BoxCollider2D boxCollider2D = this.gameObject.AddComponent<BoxCollider2D> ();
Rect rt = (Rect)data[i];
boxCollider2D.center = new Vector2(rt.x, rt.y);
boxCollider2D.size = new Vector2(rt.width, rt.height);
}
}
Assetsの右クリックで「Show in Exprore」を選択し、packman/Assets/Spritesフォルダに
自キャラの「packman.png」を入れる。※資料は上階層に戻れば「Download ZIP」ボタンが表示される。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
自キャラの「 packman.png 」のPixel Per Unitsを「100」→「8」に変更する。
Sprite Modeを「Single」→「Multiple」、Filter Modeを「Bilinear」→「Point」に変更する。
Unity:Pac-Man画像の保存と設定
Unity:Pac-Man画像のSlice(切り出し)設定
Sprite Modeを「Multiple」にすることで「Splite Editor」でメニューの「Slice」が有効になります。
Typeを「Grid」に変更し、Pixel SizeをX 16 Y 16にして「Slice」ボタンを押します。
Unity:Pac-Man画像のSlice(切り出し)設定
自キャラのpackmanが切り出されて12分割される。
Unity:Pac-Manのアニメーション設定
AssetsのSpriteの配下に「PackmanAnimation」フォルダを作成する。
packman_0とpackman_1とpackman_2を選択して、Sceneにドラッグ&ドロップする。
animeファイルを保存ダイアログ画面が表示されるので、「right.anim」にして保存する。
Unity:Pac-Manのアニメーション設定
right.animと同じ操作で、他の向きも作成する。Hierarchyのpacman_0以外を削除する。
Left.amim packman_3, packman_4 , packman_5
up.amim packman_6, packman_7 , packman_8
down.amim packman_9, packman_10, packman_11
Unity:Pac-Manのアニメーション設定
pacman_3、 pacman_6、 pacman_9を選択して削除する。
Unity:Pac-ManのMecanim設定
Mecanimとは、Unity4で実装されたアニメーションシステムです。
Mecanimを使うと、ほとんどスクリプトを記述せずにアニメーションを設定することができます。
「pacman_0」をダブルクリックすると「Animator」タブに画面遷移します。
画面遷移しない場合、 「Animator」タブをクリックします。
Unity:Pac-ManのMecanim設定(State)
各方向の「State」を追加します。Project Areaから「left.anim」をドラッグ&ドロップします。
残りの「up.anim」と「down.anim」も同様に行います。
Unity:Pac-ManのMecanim設定(Parameter)
後で「Any State」と「right」等を矢印線で結ぶため 「Any State」 だけ左に移動させます。
次に方向用のパラメーターとして「DirX」と「DirY」を作成します。
Prametersの[+]をクリックして「Float」を選択して、「DirX」と「DirY」の2つを追加します。
Unity:Pac-ManのMecanim設定(Transition)
「Any State」ボタンを右クリックすると「Make Transition」が表示されます。
「Make Transition」を押すと矢印線が表示されるので、最初は「right」ボタンに付けてください。
矢印線を選択すると、Inspectorが表示されます。※Transition(トランジション:遷移)
Unity:Pac-ManのMecanim設定(Conditions)
矢印を選択すると、Inspectorが表示されます。方向ごとにConditionsを変更します。
right DirX Greater 0.1 left DirX Less -0.1
up DirY Greater 0.1 down DirY Less -0.1
> 大なり Greater
< 小なり Less
Unity:Pac-ManのMecanim設定(Speed)
right,left,up,downのステートを全て選択して、InspectorにてSpeedを「0.8」にする。
PlayしてGame画面を確認する。
PlayしてGame画面
を確認する
Unity:Pac-Manの再設定(Position)
Hierarchyにて、「pacman_0」を「pacman」に名称変更する。(右クリックでRenameを選択)
Inspectorにて、Positionを変更する。
X 14 , Y 14
に変更する。
Unity:Pac-Manの再設定(Collider)
Inspectorにて「Add Component」→「Physics 2D」→「Circle Collider 2D」を選択する。
Inspectorにて「Add Component」→「Physics 2D」→「Rigidbody 2D」を選択する。
設定値を下記のように変更する。
Circle Collider(サークルコライダー)
Radius(半径) 0.95
に変更する。
Rigidbody(リジッドボディ)
Gravity Scale(重力の影響度) 0
Fixed Angle(回転) オン
に変更する。
Unity:C#スクリプト(PacmanMove)の作成
ProjectエリアのCreateのメニューから「Folder」を選択し「Scripts」を作成します。
Scriptsフォルダを選択してCreateのメニューから「C# Script」を選択します。
Assets/Scriptsに「C# Script」が作成されるので名前を「NewBehaviourScript」→「PacmanMove」
にします。
※名前の変更が後回しになると、クラス名が「 NewBehaviourScript 」となってしまうので
クラス名も「PacmanMove」変更にする必要が出てきます。
Unity:C#スクリプト(PacmanMove)の作成
ソースは、http://noobtuts.com/unity/2d-pacman-game からコピーする。
using UnityEngine;
using System.Collections;
public class PacmanMove : MonoBehaviour {
public float speed = 0.4f;
Vector2 dest = Vector2.zero;
void Start() {
dest = transform.position;
}
void FixedUpdate() {
// Move closer to Destination
Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
rigidbody2D.MovePosition(p);
// Check for Input if not moving
if ((Vector2)transform.position == dest) {
if (Input.GetKey(KeyCode.UpArrow) && valid(Vector2.up))
dest = (Vector2)transform.position + Vector2.up;
if (Input.GetKey(KeyCode.RightArrow) && valid(Vector2.right))
dest = (Vector2)transform.position + Vector2.right;
if (Input.GetKey(KeyCode.DownArrow) && valid(-Vector2.up))
dest = (Vector2)transform.position - Vector2.up;
if (Input.GetKey(KeyCode.LeftArrow) && valid(-Vector2.right))
dest = (Vector2)transform.position - Vector2.right;
}
}
bool valid(Vector2 dir) {
// Cast Line from 'next to Pac-Man' to 'Pac-Man'
Vector2 pos = transform.position;
RaycastHit2D hit = Physics2D.Linecast(pos + dir, pos);
return (hit.collider == collider2D);
}
}
Rigidbodyを扱う時はFixedUpdateを使います。
FixedUpdateは、物理シミュレーター専用に用
意されている特殊な Update 関数です。フレー
ムの概念とは関係なく一定時間毎に(デフォル
トでは0.01秒)実行されます。
Unity:MonoBehaviorクラスとは
Unityエンジンからゲームの実行状況に応じてメッセージが送信されると、
実装クラス内にあるメッセージと同じ名前の関数を実行します。
MonoBehaviorクラス
Awake
Start
FixedUpdate
Update
LastUpdate
OnGui
OnColisionXXXX2D
OnTriggerXXXX2D
OnDisenable
継承先クラス
Start
FixedUpdate
OnGui
シーン開始時
に呼ばれる
Unity GUI描画時
に呼ばれるOnColisionEnter2D
コライダーヒット
時に呼ばれる
Update
描画時(物理シミュレータの
進行で使用)に呼ばれる
描画時(フレームの進行)に
呼ばれる
Unity: C#スクリプト(PacmanMove)の追加と操作
Hierarchyの「Pacman」を選択して、Inspectorで「Add Component」ボタンを押下し、
Component一覧からScripts→ PacmanMoveを選択する。
または「PacmanMove」スクリプトをHierarchyの「Pacman」にドラッグ&ドロップする。
Playして上下左右の矢印キーでPac-Manが移動できることを確認する。
PlayしてGame画面を
確認する
Unity: Pac-Manの操作(向き変更)
上下左右にPac-Manを操作しても右向きのままだったので、向きに合わせて
Pac-Manの向きになるようにスクリプトを変更します。
C#スクリプト(PacmanMove)のFixedUpdate()にAnimetion Parameters以降を追加します。
void FixedUpdate() {
// Move closer to Destination
Vector2 p = Vector2.MoveTowards(transform.position, dest, speed);
rigidbody2D.MovePosition(p);
// Check for Input if not moving
if ((Vector2)transform.position == dest) {
if (Input.GetKey(KeyCode.UpArrow) && valid(Vector2.up))
dest = (Vector2)transform.position + Vector2.up;
if (Input.GetKey(KeyCode.RightArrow) && valid(Vector2.right))
dest = (Vector2)transform.position + Vector2.right;
if (Input.GetKey(KeyCode.DownArrow) && valid(-Vector2.up))
dest = (Vector2)transform.position - Vector2.up;
if (Input.GetKey(KeyCode.LeftArrow) && valid(-Vector2.right))
dest = (Vector2)transform.position - Vector2.right;
}
// Animation Parameters
Vector2 dir = dest - (Vector2)transform.position;
GetComponent<Animator>().SetFloat("DirX", dir.x);
GetComponent<Animator>().SetFloat("DirY", dir.y);
}
Unity: Pac-Manの表示レイヤー変更
ドットを食べるために、Pac-Manの表示レイヤーを1階層上げる。
Inspectorの「Sprite Renderer」コンポーネントの「Order in Layer」を「1」にします。
Unity:シーンの登録
ここまでで一旦保存しておく。Fileメニューの「Save Scene」を選択
チュートリアルと同様に「scene_main」で保存する。
Unity:Pac-Dot画像の保存と設定
Assetsの右クリックで「Show in Exprore」を選択し、pacman/Assets/Spritesフォルダに
ドットの「pacdot.png」を入れる。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
ドットの「 pacdot.png 」とのPixel Per Unitsを「100」→「8」に変更する。
Filter Modeを「Bilinear」→「Point」に変更して「Apply」ボタンを押す。
Assets/Spritesの「pacdot」をドラッグしてSceneにドロップ、Position X 0, Y 0 にセットする。
Inspectorにて「Add Component」→「Physics 2D」→「Box Collider 2D」を選択する。
Hierarchyにて「maze」の下位に「pacdot」を移動させます。
Unity: Pac-Dotの位置の設定
Box Collider 2D
Is Trigger チェックオン
Size X 0.25 Y 0.25
に変更する
Unity: Pac-Dotの位置のスクリプト
Pac-Dotの作成が330個もあり入力するのは大変なので、スクリプトで追加する。方法については後程、説明する。
void AddPacdot() {
GameObject obj;
ArrayList data = new ArrayList ();
data.Add ("3,4,5,6,7,8,9,10,11,12,13,16,17,18,19,20,21,22,23,24,25,26,27"); //30
data.Add ("27,22,16,13,7,2"); //29
pacdot.transform.position = new Vector3(2, 30, 0); //先頭は座標変更のみ
for (int i=0; i<data.Count; i++) {
var xs = data [i].ToString().Split (',');
for (int j=0; j<xs.Length; j++) {
obj = (GameObject)Instantiate (pacdot, new Vector3 (float.Parse(xs [j]),30 - i, 0), Quaternion.identity);
obj.name = pacdot.name;
obj.transform.parent = this.transform;
}
}
}
Unity:C#スクリプト(Pacdot)の作成
Scriptsフォルダを選択してCreateのメニューから「C# Script」を選択します。
Assets/Scriptsに「C# Script」が作成されるので名前を「NewBehaviourScript」→「Pacdot」にし
ます。
ソースは、http://noobtuts.com/unity/2d-pacman-game からコピーする。
using UnityEngine;
using System.Collections;
public class Pacdot : MonoBehaviour {
void OnTriggerEnter2D(Collider2D co) {
if (co.name == "pacman")
Destroy(gameObject);
}
}
Unity:C#スクリプト(PacDot)の追加
Hierarchyの「maze」配下の「pacdot」を選択して、Inspectorで「Add Component」ボタンを押下
し、Component一覧からScripts→ Pacdotを選択する。
または「Pacdot」スクリプトをHierarchyの「maze」配下の「pacdot」にドラッグ&ドロップする。
Unity:C#スクリプト(Maze)の作成と追加
背景の各衝突設定(Box Collider2D)や各Pac-Dotの位置設定のスクリプト(Maze.cs)を下記から取得して
Assets/Scriptsに追加する。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
Hierarchyの「maze」を選択して、Inspectorで「Add Component」ボタンを押下し、Component一覧か
らScripts→ Mazeを選択する。
または「Maze」スクリプトをHierarchyの「maze」にドラッグ&ドロップする。
次にHierarchyの「maze」のInspectorのMaze(Script)の変数(Pacdot)に、Hierarchyの「Maze」配下の
「pacdot」をドラッグ&ドロップしてセットする。
Unity:Pac-Manの移動制御とドットの確認
Playして上下左右の矢印キーでPac-Manの移動制御ができるようになっていることを確認する。
次にPac-dotが画面全体に表示されており、Pac-Manによって食べられることを確認する。
PlayしてGame画面を
確認する
Assetsの右クリックで「Show in Exprore」を選択し、packman/Assets/Spritesフォルダに
敵キャラの「blinky.png」、「clyde.png」、「inky.png」、「pinky.png」を入れる。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
敵キャラの「blinky.png」等のPixel Per Unitsを「100」→「8」に変更する。
Sprite Modeを「Single」→「Multiple」、Filter Modeを「Bilinear」→「Point」に変更する。
Unity:Ghosts画像の保存と設定
Unity:Ghosts画像のSlice(切り出し)設定
Sprite Modeを「Multiple」にすることで「Splite Editor」でメニューの「Slice」が有効になります。
Typeを「Grid」に変更し、Pixel SizeをX 16 Y 16にして「Slice」ボタンを押します。
敵キャラ「blinky」、「clyde」、「inky」、「pinky」を同様に行う。
Unity:Ghosts画像のSlice(切り出し)設定
敵キャラが切り出されて8分割される。
敵キャラ「blinky」、「clyde」、「inky」、「pinky」を同様に行う。
Unity:Ghostsのアニメーション設定
AssetsのSpriteの配下に「BlinkyAnimation」フォルダを作成する。
blinky_0とblinky_1を選択して、Sceneにドラッグ&ドロップする。
animeファイルを保存ダイアログ画面が表示されるので、「right.anim」にして保存する。
Unity:Ghostsのアニメーション設定
right.animと同じ操作で、他の向きも作成する。Hierarchyのblinky_0以外を削除する。
Left.amim blinky_2, blinky_3
up.amim blinky_4, blinky_5
down.amim blinky_6, blinky_7
Unity:Ghostsのアニメーション設定
blinky_2、 blinky_4、 blinky_6を選択して削除する。
Unity:GhostsのMecanim設定
「blinky_0」をダブルクリックすると「Animator」タブに画面遷移します。
画面遷移しない場合、 「Animator」タブをクリックします。
Unity:GhostsのMecanim設定(State)
各方向の「State」を追加します。Project Areaから「left.anim」をドラッグ&ドロップします。
残りの「up.anim」と「down.anim」も同様に行います。
Unity:GhostsのMecanim設定(Parameter)
後で「Any State」と「right」等を矢印線で結ぶため 「Any State」 だけ左に移動させます。
次に方向用のパラメーターとして「DirX」と「DirY」を作成します。
Prametersの[+]をクリックして「Float」を選択して、「DirX」と「DirY」の2つを追加します。
Unity:GhostsのMecanim設定(Transition)
「Any State」ボタンを右クリックすると「Make Transition」が表示されます。
「Make Transition」を押すと矢印線が表示されるので、最初は「right」ボタンに付けてください。
矢印線を選択すると、Inspectorが表示されます。※Transition(トランジション:遷移)
Unity:GhostsのMecanim設定(Conditions)
矢印を選択すると、Inspectorが表示されます。方向ごとにConditionsを変更します。
right DirX Greater 0.1 left DirX Less -0.1
up DirY Greater 0.1 down DirY Less -0.1
> 大なり Greater
< 小なり Less
Unity:GhostsのMecanim設定(Speed)
right,left,up,downのステートを全て選択して、InspectorにてSpeedを「0.8」にする。
Unity:Ghostsの再設定(Position)
Hierarchyにて、「blinky_0」を「blinky」に名称変更する。(右クリックでRenameを選択)
Inspectorにて、Positionを変更する。
表示レイヤーを1階層上げる。Inspectorの「Sprite Renderer」コンポーネントの「Order in
Layer」を「1」にします。
X 15 , Y 17
に変更する。
Unity:Ghostsの再設定(Collider)
Inspectorにて「Add Component」→「Physics 2D」→「Circle Collider 2D」を選択する。
Inspectorにて「Add Component」→「Physics 2D」→「Rigidbody 2D」を選択する。
設定値を下記のように変更する。
Circle Collider(サークルコライダー)
Is Trigger オン
Radius(半径) 0.8
に変更する。
Rigidbody(リジッドボディ)
Gravity Scale(重力の影響度) 0
Fixed Angle(回転) オン
に変更する。
Unity:C#スクリプト(GhostMove)の作成
Scriptsフォルダを選択してCreateのメニューから「C# Script」を選択します。
Assets/Scriptsに「C# Script」が作成されるので名前を「NewBehaviourScript」→「GhostMove」に
します。
※名前の変更が後回しになると、クラス名が「 NewBehaviourScript 」となってしまうので
クラス名も「GhostMove」変更にする必要が出てきます。
Unity:C#スクリプト(GhostMove)の作成
ソースは、http://noobtuts.com/unity/2d-pacman-game からコピーする。
using UnityEngine;
using System.Collections;
public class GhostMove : MonoBehaviour {
public Transform[] waypoints;
int cur = 0;
public float speed = 0.3f;
void FixedUpdate () {
// Waypoint not reached yet? then move closer
if (transform.position != waypoints[cur].position) {
Vector2 p = Vector2.MoveTowards(transform.position,
waypoints[cur].position,
speed);
rigidbody2D.MovePosition(p);
}
// Waypoint reached, select next one
else cur = (cur + 1) % waypoints.Length;
// Animation
Vector2 dir = waypoints[cur].position - transform.position;
GetComponent<Animator>().SetFloat("DirX", dir.x);
GetComponent<Animator>().SetFloat("DirY", dir.y);
}
void OnTriggerEnter2D(Collider2D co) {
if (co.name == "pacman")
Destroy(co.gameObject);
}
Unity:C#スクリプト(Ghost)の追加
Hierarchyの「blinky」を選択して、Inspectorで「Add Component」ボタンを押下し、
Component一覧からScripts→ GhostMoveを選択する。
または「GhostMove」スクリプトをHierarchyの「blinky」にドラッグ&ドロップする。
Unity:Waypointsの追加
HierarchyのCreateにて「Create Empty」を選択して、「Blinky_Waypoint0」にリネームする。
Inspectorにて、アイコンを選択して赤のダイヤに変更する。
Gizmosをクリックして、「3D Gizmos」のスライダーを右に移動し赤のダイヤのサイズを大きくする。
※Gizmo とはモデルの位置や向きを示すアイコンの事です。
Unity:Waypointsの追加(5つ)
「Blinky_Waypoint0」を複製して、「Blinky_Waypoint1」 ~ 「Blinky_Waypoint4」を作成する。
Blinky_Waypoint0 (15, 20)、 Blinky_Waypoint1 (10, 20)、Blinky_Waypoint2 (10, 14)
Blinky_Waypoint3 (19, 14)、 Blinky_Waypoint4 (19, 20)
Unity:GhostのWaypointsによる動き確認
InspectorのGhost Moveの「WayPoints」のSizeを「5」に変更する。
Element 0~4にBlinky_Waypoint 0~4を割り当てる。
GameタブにしてPlay開始、GhostがWayPointを巡回されることを確認
Playしてゲーム開始
Unity:残りのGhostの作成
binky と同じ方法で残りのGhost(黄色の「clyde」、水色の「inky」、ピンク色の「pinky」)を作成する。
binky_waypoint0~群は、上階層に「blinky_waypoints」を作成して下位層に移動させる。
Ghostのwaypointのアイコンの色はGhostと同じ色とする。
Unity:残りのGhostの作成
赤色の「blinky」(X:15,Y:17、Speed:0.25)のInspector
黄色の「clyde」 (X:14,Y:17、Speed:0.2)のInspector
Unity:残りのGhostの作成
水色の「inky」 (X:13,Y:17、Speed:0.2)のInspector
ピンク色の「pinky」 (X:16,Y:17、Speed:0.18) のInspector
Unity:GhostのWaypoints作成準備
「Blinky_Waypoint0」のみ残して、「Blinky_Waypoint1」 ~ 「Blinky_Waypoint4」を削除する。
階層構造にしたいため、親階層を作成する。
HierarchyのCreateにて「Create Empty」を選択して、「blinky_Waypoints」にリネームする。
Inspectorにて、Positionは(0,0,0)にする。
「Blinky_Waypoint0」 を選択して、「blinky_Waypoints」の配下に「Blinky_Waypoint0」を移動させる。
Unity:GhostのWaypoints作成準備(複製)
Hierarchyにて、「blinky_Waypoints」を選択して、右クリックのDuplicate(複製)する。
親子とも「blinky」名を残りのGhost(黄色の「clyde」、水色の「inky」、ピンク色の「pinky」)に変更する。
Clyde_Waypoint0は(X:14,Y:20)、Inky_Waypoint0は(X:16,Y:20) 、Pinky _Waypoint0は(X:13,Y:20)にする。
各Ghostに近い色に
アイコンを変更する。
Unity:C#スクリプト(GhostMove)の修正と設定
GhostのWayPointsの位置データを追加したスクリプト(GhostMove.cs)を下記から取得して上書きする。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
Hierarchyの「blinky」のInspectorのGhost Move(Script)の変数(Ghost Waypoints)にHierarchyの
親階層の「blinky_waypoints」をドラッグ&ドロップしてセットする。
各Ghost (黄色の「clyde」、水色の「inky」、ピンク色の「pinky」)も同様に変更する。
Unity:パックマンのゲーム開始
ゲームが動いてくれれば完成です。スコアを表示したりなど拡張するといい。
Ghostたちの速度が速いので変更する場合、UnityはスクリプトのPublic変数の値よりInspectorの値が
優先されるため、Speedを変更したい場合は、Inspectorの値を変える。
Playしてゲーム開始
Unity:スコアの作成準備
HierarchyのCreateでUIのTextを選択する。
Canvasを「Score GUI」に変更して、Textを「Score」にして、EventSystemを削除する
※ EventSystemは、画面のボタンイベント等の操作用オブジェクト、今回スコアでは使用しない
Unity:スコアの作成準備
Inspectorにて「Score GUI」のRender Modeを「World Space」に変更する。
「Score GUI」をゲーム画面の範囲に合わせる。Scaleを「0.0688」あたりにする。
今度は「Score」を右上に配置して、Textを「Score:0」のFont Sizeを「16」に右寄せでColorを白色にする。
Unity:C#スクリプト(Score)の作成
スクリプト(Score.cs)を下記から取得してAssets/Scriptsに追加する。
資料:https://github.com/yaju/ShizuDev_UnityAndBlender/tree/master/Session3
HiScoreを追加したい場合、下記サイトのHiScore部分を参考にする。
http://japan.unity3d.com/developer/document/tutorial/2d-shooting-game/game/12.html
Hierarchyの「Score GUI」を選択して、Inspectorで「Add Component」ボタンを押下し、
Component一覧からScripts→ Scoreを選択する。
Score GUITextにて「Select Text」ダイアログ画面から「Score」を選択する。
Unity:C#スクリプト(Pacdot)にスコアを追加
スクリプトの「Pacdot.cs」を起動して、下記の赤文字を追加します。
ゲームプレイして点が増えること確認します。
using UnityEngine;
using System.Collections;
public class Pacdot : MonoBehaviour {
void OnTriggerEnter2D(Collider2D co) {
if (co.name == "pacman"){
// スコアコンポーネントを取得してポイントを追加
FindObjectOfType<Score>().AddPoint(10);
Destroy(gameObject);
}
}
}
Unity:デバッグ方法の確認
スクリプトの「pacdot.cs」のSwitch文にブレークポイントを追加します。
スタートボタンをしてAttach to ProcessでUnity Editore(Unity)を選択し「Attach」ボタンを押します。
ゲームをプレイして、パックマンがドットに当たったら、ブレークポイントに止まることを確認する。
※Macでデバッグ出来ない方は、[Mono-Develop-Mac]->[Add-in Manager...]->Installedタブ->Unity-
>Mono Soft Debugger Support for Unityが有効またはインストールされていることを確認してください。
Unity:よりゲームらしくするために
 パックマンがゴーストにぶつかったらゲームスタートに戻す
マネージャークラスを作成する
下記サイトを参考にタイトルの作成とManager.csを改良する。
http://japan.unity3d.com/developer/document/tutorial/2d-shooting-
game/game/10.html
 音を追加する
下記サイトを参考に音を付けます。素材 ゲーム開発に使える音源配布サイトまとめ(効果音編)
http://japan.unity3d.com/developer/document/tutorial/2d-shooting-
game/game/08.html
Blender:はじめる前に(fpsの設定)
右側にあるパネルのカメラのアイコンになっていることを確認
「Demensions」の「FrameRate」の「24fps」ボタンを押下して「29.97」に変更する。
Blender:はじめる前に(日本語の設定)
 インターフェイスを日本語にする
Fileメニューの「User Preferences」で「User Preferences」画面の「System」タブを選択する。
右下の「International Fonts」のチェックを入れて、
「Language」の「Default(Default)」ボタンを押下
して「Japanese(日本語)」にする。
「Translate」の「Interface」と「Tooltips」の
両方のボタンを押下する。
左下の「Save User Settings(ユーザーの設定の保存)」
で設定保存。
一部のコンピュータでは
「User Preferences」が
表示されない場合がある。
Blender:はじめる前に(その他の設定)
 選択を中心に回転およびPythonツールチップを表示
「User Preferences」画面の「インターフェイス」タブを選択する。
「選択を中心に回転」チェックボックスをオンにする。
「Pythonツールチップを表示」チェックボックスをオフにする。
 Numパッドを再現
テンキーの無いキーボードを使っている場合
「User Preferences」画面の「入力」タブを選択する。
「 Numパッドを再現」チェックボックスをオンにする。
 3Dビュー Dynamic Spacebar Menu
「User Preferences」画面の「アドオン」タブを選択する。
「3Dビュー」の「Dynamic Spacebar Menu」のチェックボックスをオンにする。
左下の「Save User Settings(ユーザーの設定の保存)」で設定保存。
Blender:はじめる前に(操作系)
 選択が右クリックはやっぱきつい方へ
Blenderネタとしては定番になってる「選択を右クリックから左クリックに変更」。
ファイル→ユーザー設定→ 入力 → 選択の左に変更
※今回のセッション資料上は、選択は右クリックのままで行います。
 Macユーザーの方へ
セッション作成者がWindowsユーザーのため、Macの方は下記サイトを参考に操作してください。
[Blender]事始めのチュートリアル動画まとめ
Blender のための Mac OS X(雪豹)のトラックパッドおよびキーボード設定
Blender基礎最速マスター
MacBookProでBlenderを扱うときにNumkeyが無い問題
Blender:基本操作
カメラ、3Dモデル、光源は右クリックで選択、オレンジで色が変わるので
右ボタンを押しながら移動(一旦、移動すれば右ボタンを押さなくてもよい)、
左クリックで確定させる。
F12キーで、カメラや光源が反映された3Dビューの表示が変わる。ESCキーで元の表示に戻る。
カメラ
3Dモデル
光源
3Dカーソル
3D空間の場所を示す
ためのポインタ
Blender:基本操作
 拡大・縮小
マウスのホイールで3Dモデルの拡大・縮小
 視点の向きの変更
マウスのホイールを押しながらマウス移動
 視点の移動
SHIFTキーとマウスのホイールを押しながらマウス移動
 前後不覚になった場合
Homeキーを押す、または下側にある「ビュー」メニューから「全てを表示」を
選択すると3Dビューウィンドウに丁度すべてが収まるように視点が移動される。
Blender:箱に色をつける
 箱の色を変更する
箱を右クリックで選択、プロパティエディタの右から
4番目の「マテリアル」ボタンをクリックします。
「ディフューズ」で指定の色にする。
 履歴の参照とアンドゥで元に戻す
左側パネルの履歴にて
元に戻す(Ctrl + Z)
やり直す(Shift Ctrl + Z)
Blender:ウィンドウ・フレームを分ける
ウィンドウの右上側の角にある三角(右図の黄色の線で囲まれた部分)はスプリッタ・ウィジェット
です。ウィンドウを分割したり、結合したりします。
スプリッタ・ウィジェットをドラッグしながら移動させる。
3分割するなどして、ビューにより視点を各フレームごとに切り替えておくといい。
元に戻したい場合、スプリッタ・ウィジェットをドラッグして結合先のウィンドウが少し暗くなった
らドラッグを解除する。
Blender:キャラクターを作成(モデリング)
~無料でできる3Dアニメーション~ ブレンダーからはじめよう!
http://www.amazon.co.jp/dp/4774151513/
Blender:モデル表示の拡大
マウスのホイールで3Dモデルの拡大させる
Blender:頭部を作る(首の作成)
編集モードの面選択にする。
上の面を選択します。「E」キー(押し出し)でマウス移動させて少し上に押し出します。
Blender:頭部を作る(首の作成と頭部の準備)
「S」キーを押して、首にあたる部分を作成します。
「E」キーを押して、首の長さ分ほんの少し上に押し出します。
更にもう一度、 「E」キーを押してほんの少し上に押し出します。
Blender:頭部を作る
「S」キーを押して、首にあたる部分を作成します。胴体よりほんの少し小さいくらいの
大きさまで拡大します。続いて、「E」キーを押して頭部を作成します。
Blender:胴体の形を整える(胴体の選択準備)
「A」キーを押して選択を解除します。(オレンジ色の選択がなくなるようにする)
「見えている部位のみ選択」ボタンをクリックしてオフにすると、3Dビューの裏側の線まで見える。
Blender:胴体の形を整える(胴体の選択)
胴体を構成する5つの面の中心にある点を、Ctrlキーを押しながら、左クリックでドラッグして
囲んでください。右図の赤枠のところがオレンジ色になっていることを確認してください。
やり直す場合は、「A」キーを押すことで選択を解除します。
Blender:胴体の形を整える(胴体の形状変更)
下図の赤枠のアイコンをクリックして、マニュピュレータを表示させる。
緑の四角いマニュピュレータをドラッグしてY軸方向に縮小し、体を薄く、
赤いマニュピュレータをドラッグしてX軸方向にも少し縮小して少し歩の長く胴体っぽい形状にする。
Blender:腕と足を作る(ループカット)
メニューの「ループカットとスライド」を選択するか、またはショートカットキー「Ctrl + R」キー
でループカットを使って押し出す面を作ります。先に「A」キーを押して選択を解除しておきます。
ピンク色の線が胴体に横に線が入った後に左クリックして、黄色の線になったらマウス移動させて、
腕を作る位置(半分より少し上側)で確定させます。
Blender:腕と足を作る(腕の作成)
面選択にして腕の部分を選択します。その後に「E」キーを押して、腕の長さになるまで伸ばします。
左腕は、後でミラー機能により自動生成させます。
Blender:腕と足を作る(足の作成準備)
視点の向きの変更(マウスのホイールを押しながらマウス移動)や視点の移動(SHIFTキーとマウスのホ
イールを押しながらマウス移動)したりして、下側が見えるようにします。
胴体の底面を面選択します。その後に「E」キーを押して、ほんの少し押し出します。
Blender:腕と足を作る(足の作成)
赤の四角いマニュピュレータをドラッグしてX軸方向に縮小し、股の部分を作成します。
右足を作る部分の底面を面選択します。
その後に「E」キーを押して、足の長さになるまで伸ばします。
Blender:体を左右対称にする
視点を正面近くに変更しておく。メニューの「ループカットとスライド」を選択するか、
またはショートカットキー「Ctrl + R」キーでループカットを使って体の半分に切り込みを入れます。
ぴったり中心に切りたいの2回目のクリックはしないで、右クリックしてエッジの移動をキャンセル
してください。
Blender:体を左右対称にする(フロント 平行投影)
「A」キーで選択を解除します。
ビューの「前」の後、ビューの「透視投影/平行投影」を選択して、画面表示を「フロント 平行投影」に
します。テンキーがある人は、テンキー「1」→「5」で変更できます。
ここらへんで一旦ファイル保存しておくといいでしょう。
Blender:体を左右対称にする(左半身のカット)
面選択にします。「B」キーを押し、ドラッグで左半身の面を矩形選択します。
※股間の面が選択しづらいので注意しましょう。
「X」キーを押して、メニューの「面」を選択します。
Blender:体を左右対称にする(ミラー機能)
プロパティエディタのアイコンを「スパナ」に変更して、追加ボタンで「ミラー」を選択する。
Blender:ミラーリングで体が左右に分離する場合
体の中心がずれてしまっている可能性があります。この場合、頂点選択ボタンをクリックします。
位置を揃えるエッジの1つを「Alt(Macはoption)」キーを押しながら右クリックを選択すると
頂点がループ状に選択されます。
Blender:ミラーリングで体が左右に分離する場合
「N」キーでプロパティを開き、変形のXの値を確認します。値が「0」でなければ、選択頂点のいずれか
が中央からずれています。まず、選択頂点の縦位置を揃えます。
「S」→「X」を押した後で、「0」を入力して、Enter (Macはretuen)キーを押してください。
これはX方向に0倍縮小することで、選択頂点のX位置を揃えたことになります。
最後にプロパティの変形のXの値をクリックし、「0」を入力すればエッジの頂点は全て「X=0」になる。
Blender:曲面化する
プロパティエディタのアイコンを「スパナ」に変更して、追加ボタンで「細分割曲面」を選択する。
[Subsurf]モディファイアの[細分化]の[ビュー]の値を「2」に変更してください。
Blender:曲面化する(表面滑らか)
「A」キーを押して全ての面を選択します。シェーディング/UVタブの面「スムーズ」をクリックします。
表面が滑らかになります。
Blender:曲面化する(脇の調整)
曲面化によって、やわらかい形状になりましたが、形が崩れてしまったので修正しましょう。
まずは脇下のカーブが大きいので修正します。
メニューの「ループカットとスライド」を選択するか、またはショートカットキー「Ctrl + R」キーで
ループカットします。ピンクの線が肘の位置にくるようマウスを移動し、一度クリックしま。
線が黄色になったら、脇の下の近くまでマウスを移動して、脇の形状を調整しクリックします。
Blender:曲面化する(脇の調整)
手首、足首、手先、足先の形状を整えます。ひじ、ひざ、首、頭周り、胴の5箇所についても長さを二分
するように、ショートカットキー「Ctrl + R」キーでループカットを繰り返してください。
Blender:今回はここまで次回の予定
 1. つま先・顔を作ろう
 2. 人型モデルにアーマーチュアを入れよう
 3. 人型モデルにIK(インバースキネマティクス)をつけよう
スマホアプリのアイディア
今年は、Shizudev名義でスマホアプリを作成します。
最初は、お金の負担が少ないアンドロイド向けに開発する。
好評なら、iPhoneアプリも開発する。
前回、発表した子供向けかつ教育向けのゲームアプリのまとめを行う。
6月に 「2Dミニゲーム作成と発表」を企画しています。
これまで学んだ内容からオリジナルのミニゲームを時間内で作成し、発表してもらいます。
ここでプロトタイプ版のゲームが出来るようにして発表を予定しています。
ご清聴ありがとうございました!

More Related Content

What's hot

HoloLensハンズオン:ハンドトラッキング&音声入力編
HoloLensハンズオン:ハンドトラッキング&音声入力編HoloLensハンズオン:ハンドトラッキング&音声入力編
HoloLensハンズオン:ハンドトラッキング&音声入力編Takashi Yoshinaga
 
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編Takashi Yoshinaga
 
HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2Takashi Yoshinaga
 
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Yamato Honda
 
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようTakashi Yoshinaga
 
OpenCVで作るスタンプAR
OpenCVで作るスタンプAROpenCVで作るスタンプAR
OpenCVで作るスタンプARTakashi Yoshinaga
 
はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編Takashi Yoshinaga
 
UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座Yuichi Ishii
 
OpenCVとARCoreで作るスタンプAR in 宮崎
OpenCVとARCoreで作るスタンプAR in 宮崎 OpenCVとARCoreで作るスタンプAR in 宮崎
OpenCVとARCoreで作るスタンプAR in 宮崎 Takashi Yoshinaga
 
はじめようARCore in 札幌
はじめようARCore in 札幌はじめようARCore in 札幌
はじめようARCore in 札幌Takashi Yoshinaga
 
OpenCV/ARCore/Unityで作る塗り絵AR
OpenCV/ARCore/Unityで作る塗り絵AROpenCV/ARCore/Unityで作る塗り絵AR
OpenCV/ARCore/Unityで作る塗り絵ARTakashi Yoshinaga
 
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しましたUnity Technologies Japan K.K.
 
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法についてUnityTechnologiesJapan002
 
息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)Hiromichi Yamada
 
はじめようArcore (修正版)
はじめようArcore (修正版)はじめようArcore (修正版)
はじめようArcore (修正版)Takashi Yoshinaga
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみるonotchi_
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用までTakashi Yoshinaga
 
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目Unity Technologies Japan K.K.
 
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCoreARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCoreTakashi Yoshinaga
 

What's hot (20)

HoloLensハンズオン:ハンドトラッキング&音声入力編
HoloLensハンズオン:ハンドトラッキング&音声入力編HoloLensハンズオン:ハンドトラッキング&音声入力編
HoloLensハンズオン:ハンドトラッキング&音声入力編
 
HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編HoloLensハンズオン:AirTap & SpatialMapping編
HoloLensハンズオン:AirTap & SpatialMapping編
 
HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2HoloLensハンズオン@ももち浜TECHカフェ vol.2
HoloLensハンズオン@ももち浜TECHカフェ vol.2
 
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!
 
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
 
OpenCVで作るスタンプAR
OpenCVで作るスタンプAROpenCVで作るスタンプAR
OpenCVで作るスタンプAR
 
はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編はじめようARCore: Motion Tracking & Image Tracking編
はじめようARCore: Motion Tracking & Image Tracking編
 
UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座UnityによるAR/VR/MR 開発体験講座
UnityによるAR/VR/MR 開発体験講座
 
OpenCVとARCoreで作るスタンプAR in 宮崎
OpenCVとARCoreで作るスタンプAR in 宮崎 OpenCVとARCoreで作るスタンプAR in 宮崎
OpenCVとARCoreで作るスタンプAR in 宮崎
 
はじめようARCore in 札幌
はじめようARCore in 札幌はじめようARCore in 札幌
はじめようARCore in 札幌
 
OpenCV/ARCore/Unityで作る塗り絵AR
OpenCV/ARCore/Unityで作る塗り絵AROpenCV/ARCore/Unityで作る塗り絵AR
OpenCV/ARCore/Unityで作る塗り絵AR
 
はじめようARCore
はじめようARCoreはじめようARCore
はじめようARCore
 
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました
【Unityの集い in大阪】LT:Unity認定試験(プログラマ)を受験しました
 
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について
【Unity道場教育スペシャル】Unity認定プログラマー試験の試験範囲と試験対策方法について
 
息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)息抜きにUnityであそぼう(3D Game Kit Liteの話)
息抜きにUnityであそぼう(3D Game Kit Liteの話)
 
はじめようArcore (修正版)
はじめようArcore (修正版)はじめようArcore (修正版)
はじめようArcore (修正版)
 
知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる知覚動考、とりあえずShaderを書いてみる
知覚動考、とりあえずShaderを書いてみる
 
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用までARコンテンツ作成勉強会:使ってみようSmartAR  基礎から支援ツール活用まで
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
 
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
 
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCoreARコンテンツ作成勉強会 in 宮崎: はじめようARCore
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
 

Similar to UnityとBlenderハンズオン第3章

メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションAtsushi Tadokoro
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことleverages_event
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるAtsushi Tadokoro
 
中高校生対象プログラミング講座Part1
中高校生対象プログラミング講座Part1中高校生対象プログラミング講座Part1
中高校生対象プログラミング講座Part1優希 山本
 
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsolaPf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsolaandroid sola
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するAtsushi Tadokoro
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発hiyohiyo
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2dHiroshi Oyamada
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DKatsushi Suzuki
 
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】GMO GlobalSign Holdings K.K.
 
Unity課金ゲームアプリ開発ハンズオン!
Unity課金ゲームアプリ開発ハンズオン!Unity課金ゲームアプリ開発ハンズオン!
Unity課金ゲームアプリ開発ハンズオン!カイト株式会社
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】Junya "Jun" Shimoda
 
Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.Yuki Higuchi
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 
HoloLens 2Dでもここまでできる
HoloLens 2DでもここまでできるHoloLens 2Dでもここまでできる
HoloLens 2DでもここまでできるAkira Hatsune
 
Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。Eiichi Tsuru
 
20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法Yasuyuki Kamata
 
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GREE/Art
 

Similar to UnityとBlenderハンズオン第3章 (20)

メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーションメディア・アートII  第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
メディア・アートII 第2回 openFrameworks基礎 配列、くりかえし、乱数 ベクトルを使用したアニメーション
 
アプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のことアプリリリース後に後悔しないための20のこと
アプリリリース後に後悔しないための20のこと
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくるデジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 2: 構造をつくる
 
中高校生対象プログラミング講座Part1
中高校生対象プログラミング講座Part1中高校生対象プログラミング講座Part1
中高校生対象プログラミング講座Part1
 
Pf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsolaPf部2012年1月勉強会.androidsola
Pf部2012年1月勉強会.androidsola
 
Media Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用するMedia Art II 2013 第5回:openFrameworks Addonを使用する
Media Art II 2013 第5回:openFrameworks Addonを使用する
 
はじめての UWP アプリ開発
はじめての UWP アプリ開発はじめての UWP アプリ開発
はじめての UWP アプリ開発
 
2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
 
Flashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3DFlashup13 Basic Training of Flare3D
Flashup13 Basic Training of Flare3D
 
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
 
Unity課金ゲームアプリ開発ハンズオン!
Unity課金ゲームアプリ開発ハンズオン!Unity課金ゲームアプリ開発ハンズオン!
Unity課金ゲームアプリ開発ハンズオン!
 
ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】ゲームエンジン導入セミナー【UDK編】
ゲームエンジン導入セミナー【UDK編】
 
Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 
Hands on
Hands onHands on
Hands on
 
HoloLens 2Dでもここまでできる
HoloLens 2DでもここまでできるHoloLens 2Dでもここまでできる
HoloLens 2Dでもここまでできる
 
Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。Google mapとgps機能を使ってみた。
Google mapとgps機能を使ってみた。
 
20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法20121123 アド部定例会 unityアプリに広告を入れる方法
20121123 アド部定例会 unityアプリに広告を入れる方法
 
Install guide ja_jp
Install guide ja_jpInstall guide ja_jp
Install guide ja_jp
 
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
GCM#4 アーティストのためのプログラマブルシェーダー講座Part2
 

More from yaju88

数学史 黎明期
数学史 黎明期数学史 黎明期
数学史 黎明期yaju88
 
TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzzyaju88
 
人工知能ハンズオン
人工知能ハンズオン人工知能ハンズオン
人工知能ハンズオンyaju88
 
実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割yaju88
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像yaju88
 
サザエさんのじゃんけん データ分析
サザエさんのじゃんけん データ分析サザエさんのじゃんけん データ分析
サザエさんのじゃんけん データ分析yaju88
 
静岡Developers勉強会 入門機械学習
静岡Developers勉強会 入門機械学習静岡Developers勉強会 入門機械学習
静岡Developers勉強会 入門機械学習yaju88
 
JavaScriptの正規表現
JavaScriptの正規表現JavaScriptの正規表現
JavaScriptの正規表現yaju88
 
Windows8 最新技術動向
Windows8 最新技術動向Windows8 最新技術動向
Windows8 最新技術動向yaju88
 
静岡Developers勉強会 HTML5&CSS3
静岡Developers勉強会 HTML5&CSS3静岡Developers勉強会 HTML5&CSS3
静岡Developers勉強会 HTML5&CSS3yaju88
 
プログラミングHaskell(第2章)
プログラミングHaskell(第2章)プログラミングHaskell(第2章)
プログラミングHaskell(第2章)yaju88
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)yaju88
 
設計時の見落とし
設計時の見落とし設計時の見落とし
設計時の見落としyaju88
 
掲示板を見よう
掲示板を見よう掲示板を見よう
掲示板を見ようyaju88
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向でyaju88
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でyaju88
 
漢字の成り立ち
漢字の成り立ち漢字の成り立ち
漢字の成り立ちyaju88
 
データセンターVs消費電力
データセンターVs消費電力データセンターVs消費電力
データセンターVs消費電力yaju88
 

More from yaju88 (18)

数学史 黎明期
数学史 黎明期数学史 黎明期
数学史 黎明期
 
TensorFlowによるFizz Buzz
TensorFlowによるFizz BuzzTensorFlowによるFizz Buzz
TensorFlowによるFizz Buzz
 
人工知能ハンズオン
人工知能ハンズオン人工知能ハンズオン
人工知能ハンズオン
 
実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割実践コンピュータビジョン 9章 画像の領域分割
実践コンピュータビジョン 9章 画像の領域分割
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像
 
サザエさんのじゃんけん データ分析
サザエさんのじゃんけん データ分析サザエさんのじゃんけん データ分析
サザエさんのじゃんけん データ分析
 
静岡Developers勉強会 入門機械学習
静岡Developers勉強会 入門機械学習静岡Developers勉強会 入門機械学習
静岡Developers勉強会 入門機械学習
 
JavaScriptの正規表現
JavaScriptの正規表現JavaScriptの正規表現
JavaScriptの正規表現
 
Windows8 最新技術動向
Windows8 最新技術動向Windows8 最新技術動向
Windows8 最新技術動向
 
静岡Developers勉強会 HTML5&CSS3
静岡Developers勉強会 HTML5&CSS3静岡Developers勉強会 HTML5&CSS3
静岡Developers勉強会 HTML5&CSS3
 
プログラミングHaskell(第2章)
プログラミングHaskell(第2章)プログラミングHaskell(第2章)
プログラミングHaskell(第2章)
 
プログラミングHaskell(第1章)
プログラミングHaskell(第1章)プログラミングHaskell(第1章)
プログラミングHaskell(第1章)
 
設計時の見落とし
設計時の見落とし設計時の見落とし
設計時の見落とし
 
掲示板を見よう
掲示板を見よう掲示板を見よう
掲示板を見よう
 
北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で北斗の拳の世界をオブジェクト指向で
北斗の拳の世界をオブジェクト指向で
 
ドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向でドラえもんの世界をオブジェクト指向で
ドラえもんの世界をオブジェクト指向で
 
漢字の成り立ち
漢字の成り立ち漢字の成り立ち
漢字の成り立ち
 
データセンターVs消費電力
データセンターVs消費電力データセンターVs消費電力
データセンターVs消費電力
 

Recently uploaded

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (7)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

UnityとBlenderハンズオン第3章