SlideShare a Scribd company logo
1
2
- Education編 -
Unity道場 幕張スペシャル
「Playground」を魔改造!?
ゲームデザイン授業への活用
Unity Technologies Japan合同会社/
東京工科大学メディア学部特任准教授
安原広和
(この講演スライドは後ほどアップされます)
3
「Playground」を魔改造!?
ゲームデザイン授業への活用
1、 Playgroundのご紹介
2、 実際の授業について
3、 まとめ ポストモーテム
4
1、 Playgroundのご紹介
用意された2Dアセットとスクリプトを使って、
Unity初心者のための入門ゲームエディター
5
・ 使い勝手の良い、「スクリプト」が用意されている
「Playground」を演習に使おうと思った動機
・ グラフィックのアセットが用意されている
(同じ素材の、使い方の違いを参加者同士が比較しやすい)
・ Unityをはじめて触れる学生にも有効
・ 学生に「Unity2D」に触れる機会をつくる
(下からは当たらないプラットフォームなど、2D独特のエフェクターなど)
31種類
6
「Playground」は「Learn Unity」の「Project」内に置かれていますProject
1
2
3
7
「Playground」は「AssetStore」から無料でダウンロードできます
8
「Playground」にはあらかじめ、作例が6種類用意されています
「Roguelike」
「Defender」 「Adventure」「FootBall」
「Maze」 「Lander」
9
作例のプロジェクトを開いてみるだけで、
用意されたスクリプトがどのように使われるのかが分かります
10
「Playground」には31種類のスクリプトが用意されています
これらをキャラクターオブジェクトに入れるだけで
基本的なゲームのアクションをつくることができます
11
各スクリプトの機能と使い方は「Playground」の
Reference Guideのページに説明されています
「オブジェクトを常に一定の方向に移動させる」
12
「Unity Learn」に順を追って各スクリプトの説明が書かれています
「出現させる」
「キー操作で出現させる」
「キー操作でジャンプ」
「キー操作で移動」
13
習熟度にあわせて各スクリプトの説明が続きます
「アイテム効果」 「何かが起きたら、あることが起きる」
(if~、then・・・)
14
動くものをすぐにつくって、授業中にプレゼンすることが可能です
15
「キー操作で出現させ飛ばす」
「オブジェクトを常に一定の方向に移動させる」
「出現させる」
「キー操作で移動」
「何かが起きたら、あることが起きる」
「一定時間後に壊す」
使われているスクリプト
「空のオブジェクト」 「惑星」
「宇宙船」
「弾」
「爆発パーティクル」「惑星」「宇宙船」
爆発
グラフィック アセット スクリプト アセット
16
Unity「Playground」の強み
その場で2Dゲーム(?)を作って動かせる!
・ 学齢期の子どもや初心者の興味を惹きやすい!
・ プログラムの教育に欠かせない即時性
・・できるかも
2、 実際の授業について
17
ゲーム教育の難しさは
「プログラム教育」で終わらないところ
回路(プログラム)
アランケイ:コンピュータは
ファンタジーアンプリファイア(増幅器)
回路を組み合わせて
行う表現活動
18
予算がない!
けど、新しい企画作れ!
今あるものを使って
新しいモノを作る
そして、鍛えたいものは
職業としての「現場力」
・使いまわせるプログラム
・どこかで使ったグラフィック
制約がある中で、「正解」を提示するのがゲームデザイナー
19
Unityの基本的な機能と「キャラクター操作」することができる学生 ・・3年生
6人
そして、Unityをほぼ触ったことがない学生
9人
今期の受講生 15人
授業に
使ってみよう・・
想定外の事態・・
で、お決まりの
というエピソードを交えて
お話しします
20
90分授業の時間配分
授業の解説資料とC#スクリプトとは事前に学内サーバーに上げておきました
25~35分 : 提出された課題の各自発表と評価
20~30分 : 資料を見ながらゲームデザインの講義
30~45分 : 各自がUnityで実習、質問
3分 : 来週までの課題の説明
21
課題の提出方法
課題はPC用にビルドしたファイル(6種類ほど)を
用意したGoogleドライブにzip圧縮して上げてもらいました
毎週15本の新作ゲーム×15週 = 225本のゲームができあがる!
教師は大変!
だけど、学生は多くのアイデアを見ることができる
22
第1回 「Playgroundのインストール」 エディターの操作 傾ける ゴールを置く ゴール表示
第2回 「Game Overの表示」 当たってはいけないオブジェクト 上から落ちてくるオブジェクト
第3回 「Platform」 下からすり抜ける床 ベルトコンベア 浮力 流体 磁力 斥力 リプレイをつくる
第4回 「Joint」 「キー操作」 2Dのジョイント各種 単純なキー操作
第5回 「キーを押す Push」 キーを押すだけで「様々な動き」を作る
第6回 「Shooter」 何かを撃ちだす 撃つことからの創造
第7回 「UI」 スコア 集めた数の表示 アイテム = 壊すもの
第8回 「エネミーの動き」 エネミーはあそび相手 動きでつくるあそび
第9回 「リソース」 コイン消費 説明の表示 報酬の獲得 アイテムでつくるあそび
第10回 「制限」 武器 残弾数 はまりをなくすための救済策
第11回 「持つ運ぶ投げる、そしてアニメーション」 Animatorの使い方
第12回 「攻撃するエネミー」 コルーチン オブジェクト間のフラグの受け渡し
第13回 「索敵」 索敵範囲 追跡攻撃するエネミー 危険を知らせるアニメーション
第14回 「索敵・トップダウンヴュー」 巡回パトロール 防具の装備
第15回 「カウントダウンとゲージ」 さまざまなアイテムによるリソース管理
23
第1回 「Playgroundのインストール」
第2回 「Game Overの表示」
第3回 「Platform」
第4回 「Joint」 「キー操作」
第5回 「キーを押す Push」
第6回 「Shooter」
第7回 「UI」
第8回 「エネミーの動き」
第9回 「リソース」
第10回 「制限」
第11回 「持つ運ぶ投げる、そしてアニメーション」
第12回 「攻撃するエネミー」
第13回 「索敵」
第14回 「索敵・トップダウンヴュー」
第15回 「カウントダウンとゲージ」
「Playground」
「Playground」ちょっと変更
「Playground」+足しました
「Playground」・・なのかな?
「Unity」って・・C#便利ですね
「Unity」です
始めは「Playground」提供のアセットで前期すべてをやり抜くつもりだった・・
24
第1回 「Playgroundのインストール」 エディターの操作 傾ける ゴールを置く ゴール表示
第2回 「Game Overの表示」 Tag 当たってはいけないオブジェクト 上から落ちてくるオブジェクト
各回に使用したスクリプトと内容
・ 「ゴールオブジェクト」に当たったら、「Goal」サインをOnにする
いわゆる「ピタゴラ装置」
・ 「Killエリア」に入ったら、「GameOver」サインをOnにする
・ 「当たってはいけない」オブジェクトを出現させて落下させます
25
第3回 「Platform」 下からすり抜ける床 ベルトコンベア 浮力 流体 磁力 斥力 リプレイをつくる
・ Unityの「Physics2D」機能を使ってみる
(「Playground」とは直接関係のないものです)
・ 「リプレイ」のスクリプトをつくる
学生の課題として、つくったシーンを提出してもらったのですが、毎週15本のゲーム作品を
採点するのが大変だったので、すべての作例に「リプレイ」機能を必須としました
26
第4回 「Joint」 「キー操作」 2Dのジョイント各種 上下左右、 単純な押すだけのキー操作
・ 単純なキー操作でプレイヤーが能動的にオブジェクトを動かす
「プレイヤー」の出現!
第5回 「キーを押す Push」 キーを押すだけで「様々な動き」を作る
・ 断続的なキー操作で動きを制御する
・ ほかの「Joint」などと組み合わせる
学生がUnity2019インストールして動かなくなる事案発生!
27
・ 決められた範囲の角度だけ回転するように改造
第6回 「Shooter」 何かを撃ちだす 撃つことでつくる 撃ちだす方向を変える Jump
・ ジャンプするキャラクター
「もっと能動的に動かしたい!」という学生の要望
「ジャンプ」して攻撃するキャラクターの誕生
弾撃ちたいです
28
・ 「Health」が0になった時に爆発エフェクトを出すように改造
第7回 「UI」 スコア加算 集めた数の表示 アイテム を集める
・ アイテムを取った時に効果エフェクトを出すように改造
・ エネミーオブジェクトのHP
29
using UnityEngine;
using System.Collections;
[AddComponentMenu("Playground/Attributes/Health System")]
public class HealthSystemAttribute : MonoBehaviour
{
public int health = 3;
private UIScript ui;
private int maxHealth;
// Will be set to 0 or 1 depending on how the GameObject is
tagged
// it's -1 if the object is not a player
private int playerNumber;
public ParticleSystem deathEffect;
private void Start()
{
// Find the UI in the scene and store a reference for later use
ui = GameObject.FindObjectOfType<UIScript>();
// Set the player number based on the GameObject tag
switch(gameObject.tag)
{
case "Player":
playerNumber = 0;
break;
case "Player2":
playerNumber = 1;
break;
default:
PlayerNumber = -1;
break;
}
// Notify the UI so it will show the right initial amount
if(ui != null
&& playerNumber != -1)
{
ui.SetHealth(health, playerNumber);
}
maxHealth = health;
//note down the maximum health to avoid going over it when the player
gets healed
}
// changes the energy from the player
// also notifies the UI (if present)
public void ModifyHealth(int amount)
{
//avoid going over the maximum health by forcin
if(health + amount > maxHealth)
{
amount = maxHealth - health;
}
health += amount;
// Notify the UI so it will change the number in the corner
if(ui != null
&& playerNumber != -1)
{
ui.ChangeHealth(amount, playerNumber);
}
//DEAD
if(health <= 0)
{
deathEffect.transform.position = this.transform.position;
deathEffect = Instantiate(deathEffect);
deathEffect.Play();
Destroy(gameObject);
}
}
}
「HealthSystemAttribute」に
①、②の青い部分を付け足しました
爆発パーティクルを入れられるようにして
HPが「0」になった時にパーティクルをPlay()させます
2
1
このように数行を書きたすだけです
どのくらいの改造なのかといえば・・
30
・ パトロール
第8回 「エネミーの動き」 エネミーはあそび相手 動きでつくるあそび
プラットフォームに付ければエレベータなども作ることが可能
・ wonder ランダムに動き回る エフェクトなどにも利用
・ 追いかける エネミー以外のものに入れることも考える
・ 回転 完全に違うスクリプトをつくりました
回転中心が決められないため「位置決め」が難しい
31
・ 集めたリソース量を表示する
・ 当たると、「吹き出し」に情報が表示される
第9回 「リソース」 コイン消費 説明の表示 報酬の獲得 アイテムでつくるあそび
・ エリアに入ると、リソースが「消費」される (買い物)
・ HPが0になると、爆発してアイテムが表示されるように改造しました
「Playground」のリソース・UI関連の
スクリプトは改編が難しい
システムの根っこの部分で
関連しあってるためクラスだけを
書き換えても動かなくなります
32
・ 「Shooter」を改造して、弾数の制限を加えました
第10回 「制限」 武器 残弾数を制限したあそび はまりをなくすための救済策
回数制限のある攻撃 失敗しても救済策のある仕組み
33
第11回 「持つ運ぶ投げる、そしてアニメーション」 モノをつかんで運ぶ 投げる Animatorの使い方
・ 「PickUpAndHold」を改造して、オブジェクトの持つ位置を変えます
壁にアイテムを押しつけると不具合が起きるため
簡単な2パターンチェンジのアニメーション
この講義回でほぼ「Playground」のスクリプトの説明をし終えました
学生からの要望を聞きました
アニメーション
したいです
34
・ 「Shooter」を改造して、コルーチンを組み込みました
第12回 「攻撃するエネミー」 コルーチン 連射 オブジェクト間のフラグの受け渡し
・ 別オブジェクトにあるクラスの「Aminator」のフラグを受け渡すスクリプト
・ 「Animator」のフラグを組み込みました
「Playground」では扱われない領域に突入!
Robot
オブジェクト
C#スクリプト
Animato
r
ファイル
C#スクリプト
Animato
r
ファイル
発射場所
オブジェクト
エネミー
オブジェクト
フラグ
C#スクリプト
フラグフラグ
アニメーションは
「Playground」では
できない領域
35
・ 「PickUpAndHold」を改造して、オブジェクトの持つ位置を変えます
第13回 「索敵」 索敵範囲 追跡攻撃するエネミー 危険を知らせるアニメーション
・ 「Patrol」を改造して、巡回を止めるフラグを入れます
・ 「索敵範囲」のフラグを受け渡すスクリプト
・ 「Shooter」を改造して、索敵フラグで発動するスクリプト
・ 「索敵範囲」のアニメーションのためのスクリプト
「Playground」のスクリプトを
組み合わせてもできないから
スクリプトを新しく書き直します
1週間では新しいゲーム制作は困難
36
・ 2Dシーンでの「LookAt」スクリプトをつくります
・ ターゲットの方向に弾を撃つスクリプト
第14回 「索敵・トップダウンヴュー」 巡回パトロール 防具の装備
・ 索敵範囲のフラグ
・ 索敵範囲に入ったターゲットを攻撃するスクリプト
・ 防具を進行方向に向けるスクリプト
・ 攻撃を防具で消すスクリプト
「Playground」にないから
スクリプトをつくる領域に突入!
もうUnityの授業!
37
・ 「GameManager」スクリプトを用意して、時間を管理します
・ 獲得した「時間」を足すスクリプト
・ 残り時間によってゲージの色を変えるスクリプト
第15回 「カウントダウンとゲージ」 さまざまなアイテムによるリソース管理
普通にUnityのUIの授業!
「Playground」での表示を
UnityのUIを使って置き換える
38
・ 大学生はどんどん「スクリプト」を書けるようになる、すぐにUnityがほしくなる
やがて「Playground」の堅牢なシステムがネックになる
・ グラフィックのアセットは便利だが好き嫌いも大きい
自分でキャラクターを描きたくなる学生が多かった
(授業方針によって、「あるもので作る」という「しばり」を入れることも「あり」かも)
・ サウンド・SEがない (音関連の講義を入れるべきだった)
・ 年齢を問わず、初心者にはとても適した教材だと思います
これを入り口にしてUnityを本格的に学ぶ道につなげられます
3、 まとめ ポストモーテム
39
全授業の資料公開します
使える部分を授業などに取り入れていただければ幸いです
より良いスクリプトの組み方や、自分ならこうする等、
みなさんのおチカラとアイデアのご協力を、よろしくお願いします
https://drive.google.com/drive/u/2/folders/1nzZtsaQ5DEUjkj5CiUoJLCqLf_zYXTPf
40
Unity道場 幕張スペシャル
- Education編 -
ありがとうございました
「Playground」を魔改造!?
ゲームデザイン授業への活用

More Related Content

PDF
Unityではじめるオープンワールド入門 アーティスト編
PDF
Unityではじめるオープンワールド制作 エンジニア編
PDF
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
PDF
UnityのMultiplayサービスの得意な事
PDF
Unity × graphics × effects
PDF
【Unity道場 建築スペシャル】はじめてのUnity
PDF
Unity恐くないよ!!
PDF
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unityではじめるオープンワールド入門 アーティスト編
Unityではじめるオープンワールド制作 エンジニア編
【Unite Tokyo 2019】Unityとプロシージャルで作るオープンワールド背景
UnityのMultiplayサービスの得意な事
Unity × graphics × effects
【Unity道場 建築スペシャル】はじめてのUnity
Unity恐くないよ!!
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】

What's hot (20)

PDF
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
PDF
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
PDF
UnityのクラッシュをBacktraceでデバッグしよう!
PPTX
What is unity
PDF
今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版
PDF
UnityLecture @Kyushu University
PDF
WiiRemote Programming Workshop - 革新的インタラクションを構成する“部品としての”ゲームコントローラー
PDF
GDC2018報告会
PDF
Virtual Realty for Entertainment - 文化・言語背景を 文化・言語背景を超えた環境における国際的エンタテイメントシステムデザイン
PPTX
Mixed Reality Toolkit V2のMixed Reality Scene Systemを使う
PDF
CEDEC2017 次世代VR/ARエンタテイメントのための多重化映像生成ミドルウェア
PDF
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
PDF
Unity study2018_1
PDF
VRで日本語音声認識の作り方 201811
PPTX
専門ゼミ進捗
PDF
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
PDF
Unity&unreal engineハンズオン資料 unreal_4.8
PDF
ゲームエンジン導入セミナー【UDK編】
PDF
建築VRを作る方法 | SketchUp研究会 第4回定例会
PPTX
Unity2015_No5_~Mecanim~
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
UnityのクラッシュをBacktraceでデバッグしよう!
What is unity
今だから聞きたい 「一番新しい xRアプリの作り方」 2020年 最新版
UnityLecture @Kyushu University
WiiRemote Programming Workshop - 革新的インタラクションを構成する“部品としての”ゲームコントローラー
GDC2018報告会
Virtual Realty for Entertainment - 文化・言語背景を 文化・言語背景を超えた環境における国際的エンタテイメントシステムデザイン
Mixed Reality Toolkit V2のMixed Reality Scene Systemを使う
CEDEC2017 次世代VR/ARエンタテイメントのための多重化映像生成ミドルウェア
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
Unity study2018_1
VRで日本語音声認識の作り方 201811
専門ゼミ進捗
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity&unreal engineハンズオン資料 unreal_4.8
ゲームエンジン導入セミナー【UDK編】
建築VRを作る方法 | SketchUp研究会 第4回定例会
Unity2015_No5_~Mecanim~
Ad

Similar to 【Unity道場 幕張スペシャル3】「Playground」を魔改造!? ゲームデザイン授業への活用 (20)

PDF
Unityで横スクロールアクションゲームを作ってみる(第2回unity初心者勉強会)
PPTX
Unity2015_No7_~Unity2D~
PDF
中高校生対象プログラミング講座Part1
PDF
[崇城大学][熊本Apps!] 学生のためのUnity勉強会
PDF
Kuug 第1回
PDF
ARLT_10_Unityと昔のAR会
PPTX
Unity勉強会ハンズオン
PDF
Unityクリエイターズ勉強会【2/2】【関西】発表資料
PDF
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
PDF
週末プログラミングで作るカジュアルゲーム~シューティング編~
PDF
Unity Playground
PPTX
Unity チュートリアル
PDF
Unityハッカソン チームドミノ 発表用資料 2012.12
PDF
Unityで作るiOSゲームアプリ
PPTX
ブロックバスター制作資料
PDF
Unityティーチャートレーニングデイ -認定アソシエイト編-
PDF
UnityでつくるはじめてのPONG
PPTX
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
PPTX
ゲームツクール!第11回 エディター拡張してみよう
PPTX
Unityのポストエフェクトで遊ぶ!
Unityで横スクロールアクションゲームを作ってみる(第2回unity初心者勉強会)
Unity2015_No7_~Unity2D~
中高校生対象プログラミング講座Part1
[崇城大学][熊本Apps!] 学生のためのUnity勉強会
Kuug 第1回
ARLT_10_Unityと昔のAR会
Unity勉強会ハンズオン
Unityクリエイターズ勉強会【2/2】【関西】発表資料
とことんF#よぷよ! F# + XNA ゲームプログラミング入門
週末プログラミングで作るカジュアルゲーム~シューティング編~
Unity Playground
Unity チュートリアル
Unityハッカソン チームドミノ 発表用資料 2012.12
Unityで作るiOSゲームアプリ
ブロックバスター制作資料
Unityティーチャートレーニングデイ -認定アソシエイト編-
UnityでつくるはじめてのPONG
Unityで Photonを使ってリアルタイム・マルチプレイヤーゲームを作っちゃおう【応用編】
ゲームツクール!第11回 エディター拡張してみよう
Unityのポストエフェクトで遊ぶ!
Ad

More from Unity Technologies Japan K.K. (20)

PDF
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
PDF
Unityで始めるバーチャルプロダクション
PDF
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
PDF
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
PDF
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PDF
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PDF
「原神」におけるコンソールプラットフォーム開発
PDF
FANTASIANの明日使えない特殊テクニック教えます
PDF
インディーゲーム開発の現状と未来 2021
PDF
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
PDF
Burstを使ってSHA-256のハッシュ計算を高速に行う話
PDF
Cinemachineで見下ろし視点のカメラを作る
PDF
徹底解説 Unity Reflect【開発編 ver2.0】
PDF
徹底解説 Unity Reflect【概要編 ver2.0】
PDF
Unityティーチャートレーニングデイ -認定プログラマー編-
PDF
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
PDF
今だから聞きたい!Unity2017/18ユーザーのためのUnity2019 LTS基礎知識
PDF
【Unity Reflect】無料のViewerに機能が増えた!?~お披露目会編~
PDF
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
PDF
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
Unityで始めるバーチャルプロダクション
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
「原神」におけるコンソールプラットフォーム開発
FANTASIANの明日使えない特殊テクニック教えます
インディーゲーム開発の現状と未来 2021
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Cinemachineで見下ろし視点のカメラを作る
徹底解説 Unity Reflect【開発編 ver2.0】
徹底解説 Unity Reflect【概要編 ver2.0】
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
今だから聞きたい!Unity2017/18ユーザーのためのUnity2019 LTS基礎知識
【Unity Reflect】無料のViewerに機能が増えた!?~お披露目会編~
ビジュアルスクリプティングシステムBoltを使ってみよう 2回目
ビジュアルスクリプティングシステムBoltを使ってみよう 1回目

【Unity道場 幕張スペシャル3】「Playground」を魔改造!? ゲームデザイン授業への活用