Unity講座①

Similar documents
MMC Unity講座

第26回_プレゼン資料_菅原(Unityはじめるよ~NavMesh基礎~)

しずおかアプリ部 Unity はじめるよ すごいよサウンド機能 実践編 統合開発環境を内蔵したゲームエンジン いろんな職業の が る資料なので説明を簡単にしてある部分があります 正確には本来の意味と違いますが上記理由のためです ご了承ください この

Microsoft Word - tyukan

第32回_プレゼン資料_菅原(Unityはじめるよ~上半身だけ動かす2~)

C#の基本

PowerPoint プレゼンテーション

第33回_プレゼン資料_菅原(~IKを使ってアニメーションをコントロール~)

スライド 1

アクション講座 第1回目

Microsoft Word - VB.doc

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

本 勉強する内容 基礎 3:Prefab コライダー応 1:uGUI 概要

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

3.2. Unity Unity の画面構成 Unity を起動すると以下の図 1 のような画面が表示される 図 1 Unity のインターフェース Unity の画面は主に以下のように分けられる ① Scene View Game View Scene View には作成するゲーム内

ゲームプログラミング講習 第0章 導入

Java言語 第1回

MMD4Mecanim の登録 解凍したフォルダにある MMD4Mecanim.unitypackage をダブルクリックして Unity への登録 ( インポート ) を実行します MMD4Mecanim.unitypackage をダブルクリック または ドラッグ & ドロップでも登録可能 Im

情報システム工学特論 Web アプリの作成により 次のことを学んでもらいます 1 無料ソフトウェアの活用 2 無料のソフトウェア開発ツール Runstant Lite 3 Web ブラウザのゲームライブラリ phina.js 4 Web アプリとは 無料ソフトウェアの活用 無料ソフトウェアとは イン

住所録を整理しましょう

引き算アフィリ ASP 登録用の日記サイトを 作成しよう Copyright 株式会社アリウープ, All Rights Reserved. 1

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Microsoft Word - CygwinでPython.docx

C#の基本2 ~プログラムの制御構造~

1 Word2007 を立ち上げて 表を作って内容を入力し 体裁を整える 1 時間の関係で あらかじめ下記のような簡単な文書を作成して デスクトップにファイル 旅行案内操作前 1 を置いてありますからこのファイルをダブルクリックして開いて下さい (* 時間のある方は末尾に表の挿入方法などを参考に書い

PowerPoint プレゼンテーション

Word2007 Windows7 1 パンジーを描こう 暮らしのパソコンいろは 早稲田公民館 ICT サポートボランティア

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

Scratch で簡単プログラミング 作例 : ペンギンさんのごあいさつ ( 筆者作成 ) 作例 :Bezier Game -

3Dプリンタ用CADソフト Autodesk Meshmixer入門編[日本語版]

内容 1 はじめに インストールの手順 起動の手順 Enterprise Architect のプロジェクトファイルを開く 内容を参照する プロジェクトブラウザを利用する ダイアグラムを開く 便利な機能.

PowerPoint プレゼンテーション

2016 VOCALOID Group, Yamaha Corporation 2

ARCHI Box Windows版 ヘルプ(お施主様向け)

FMV総合案内

<4D F736F F D F82C A815B835982B782E98FEA8D8782CC91CE8F E646F6378>

平成 29 年度卒業研究 初心者のためのゲームプログラミング用 教材の開発 函館工業高等専門学校生産システム工学科情報コース 5 年 25 番細見政央指導教員東海林智也

関数の定義域を制限する 関数のコマンドを入力バーに打つことにより 関数の定義域を制限することが出来ます Function[ < 関数 >, <x の開始値 >, <x の終了値 > ] 例えば f(x) = x 2 2x + 1 ( 1 < x < 4) のグラフを描くには Function[ x^

Si 知識情報処理

Microsoft PowerPoint - sousa pptx

Taro-⑪JS5シンガーソングライタ

エクセルの基礎を学びながら、金額を入力すると自動的に計算され、1年分の集計も表示される「おこづかい帳」を作りしょう

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

Microsoft Word - macマニュアル【 】.doc

データ構造とアルゴリズム論

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Java講座

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

VPS マニュアル p. 1

1 フリーページを表示する 1-1 フリーページのカテゴリを作成します フリーページのカテゴリの情報を入力します 1 複数のフリーページを記事のジャンルや種類で分け その見出しを入力します お店ページの左サイドバーに表示します 2 消費者が 検索エンジンで検索するであろう 記事の特長や内容をあらわす

前回のあらすじ 物理演算ライブラリ chipmunk を使って チキンが地面に落ちるところまで

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

Geant4を使ってみよう

スライド 1

Maser - User Operation Manual

ユーザーズマニュアル 神戸親和女子大学情報処理教育センター 年 4 月版

フローチャートの書き方 プログラムの開始と終わり 処理の流れの表記 ( アルゴリズム ) 逐次型 ( 直線型 ) 分岐型 ( 開始 ) 処理 1 条件 条件 処理 2 の処理 の処理 の処理 ( 終了 ) 処理 3 プログラムや人間の判断などのアルゴリズムは基本的に 逐次型 分岐型 ループ型の組み合

1.Sound Engine Free の起動と 設定 Sound EngineFree を起動すると右下の画面が開きます Sound Engine Free のアイコン 起動時更新のチェック のチェックを外す 通常 録音はインターネットに接続されていない環境でおこないます そのような環境で Sou

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

Microsoft Word - ラベルマイティStep1.doc

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

Boost.Preprocessor でプログラミングしましょう DigitalGhost

10_Link3_manual

目次 1. アニメーションの軌跡の概要と仕組み 3 2. パノラマ写真にアニメーションの軌跡を設定 まとめ 課題にチャレンジ 19 レッスン内容 アニメーションの軌跡の概要と仕組み アニメーションの軌跡とは スライドに配置したオブジェクト ( テキストや図形 画像など ) を

Åꤲ¸ë:¥¹¥�¥ë¤È»×¹Í¤òÊ»¤»»ý¤ÄVR¥²¡¼¥à¤Î¸¦µæ

スライド 1

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

Java KK-MAS チュートリアル

Prog2_6th

Transcription:

Unity 講座 1 講師 : 三回生 まいとん

Unity って何 ゲームエンジン ( 統合型ゲーム開発環境 ) の一つ 3D 2D を問わずゲームを簡単に作成できる 年間 100,000$(1,200 万円 ) を超えなければ無料でゲームを出し放題

ここが凄い!Unity!! 本当に簡単にゲームが作れる ( 完成するとは言っていない ) アセットが豊富 低スペックでも動く モバイルゲーム パソコンゲームが一発で変換可能 話題の VR も簡単にできる

この Unity 講座 (2 回分 ) で行う内容の一覧 1 回目プロジェクト作成 UnityのGameObjectについて物理 (Rigidbody) について Update 関数,Start 関数について当たり判定とOnCollisionEnter 関数オブジェクトの削除キーボード ゲームパッド入力 2 回目 CharacterControllerについて Audioについて Game Controllerを作る UI(uGUI) を使う Sceneについて Animationについて

前書き 環境は Windows でやってますが Mac でも問題なく同じ動作ができます VisualStudio を使ってますが Mac でも問題なく MonoDeveloper で動きます 開発環境は 5.3.0 ですが最新版は 5.3.2 です おそらく問題なく動くと思います

早速起動してみよう

プロジェクトの作成

プロジェクトの作成

GameObject について 最初からHierarchyに配置されている MainCamera, DirectionalLight など HierarchyにあるものはすべてGameObjectです Unity では この GameObject を移動させたり 変化させたりすることで ゲームを作っていきます

とりあえずなんか置いてみよう Hierarchyの上で右クリックをすると色々出てくるので 3D Object -> Sphereを左クリックします

なんか作れた

物理を導入 説明をすべて省いて Rigidbody( 剛体 ) を導入します Sphereをクリックして Inspecterの中にあるAddComponentから Physics -> Rigidbodyを探してクリックします

物理を導入 できました

とりあえず実行してみよう 上部にある 再生ボタンで再生できます

重力に逆らえない ボールが落ちました Rigidbody を導入すると この世界の物理法則が通用されるようになります 色々いじると重力の方向変えたり 重力を受けなかったりすることができるのですが 今は説明を省きます あとでやります

受け皿用意 このまま落ちるのはどうかと思うので 平べったい受け皿を用意したいと思います ( 課題 1) Sphere を出した方法と同じ要領で Plane を出してみてください

答え合わせ

GameObject の位置を変える オブジェクトの位置がおかしい気がしますので 少しこのPlaneを下げたいと思います方法は2 通りあります Sceneからドラッグアンドドロップで動かす Inspecterから数値を直接いじる 今回はInspecterから直接いじってみます Planeの場所を X:0 Y:-1 Z:0 にしてください

自作クラスを作る 実行すると Sphere は Plane より下に落ちなくなりました が ゲーム作成には程遠い気がします 早速ですが このボールに初速を加えてあげたいと思います

自作クラスを作る Projectにある Assetsを右クリックして Create -> C# Scriptをクリックします 名前は BallController にします

自作クラスを作る こうなります 早速ダブルクリックして開きましょう WindowsならばVisual Studioが開くと思います ( ここにある GameScene はこっちの不手際で先 に作ったものなので気にしなくて大丈夫です )

自作クラスを作る いつもの Visual Studio が開くと思います 通常と違い 最初からある程度書いてあると思います 説明を省いて いきなり次のスライドの内容を書いてください ( 備考 : 絵は國光様のです )

using UnityEngine; using System.Collections; public class BallController : MonoBehaviour { Rigidbody rb; // Use this for initialization void Start () { rb = GetComponent<Rigidbody>(); rb.addforce(vector3.forward * 10); } // Update is called once per frame void Update () { } }

自作クラスを張り付ける 終わりましたら BallController を Sphere につけてあげたいと思います BallController をドラッグアンドドロップすることでつけることができます

実行してみてください

しょべぇ!!!! 速度が遅すぎますね とりあえず このままにしておいてスクリプトの説明に入りたいと思います

using UnityEngine; using System.Collections; public class BallController : MonoBehaviour { Rigidbody rb; // Use this for initialization void Start () { rb = GetComponent<Rigidbody>(); rb.addforce(vector3.forward * 10); } // Update is called once per frame void Update () { } }

Start() と Update() スクリプトを作成すると 最初から書いてあるこの 2 つの関数 Start は実行時に 1 度だけ呼ばれる関数で Update はフレーム毎に呼ばれる関数です 基本的にはこの中に ゲームの部分を書いていきます

Rigidbody と GetComponent<T>() Rigidbody は少し前にやった 物理剛体です Sphere に入っています GetComponent<T>() は そのクラスを取得する関数です 今回は Rigidbody 型の変数 rb に この Sphere の中にある Rigidbody を代入した ということになります

AddForce(Vector3) と Vector3 次の AddForce ですが これは Rigidbody クラスが元から持っている関数です 名前の通り力を加える関数です 引数は Vector3 型です これは単純に X,Y,Z を持った変数です 地味に正規化とかも簡単にできる便利なやつです 今回は Vector3.forward, つまり X,Y,Z = 0,0,1 のものを入れました 前に進みます また こういった関数は ( ほぼ ) すべてリファレンスに書かれているの で わからなくなったら見ることをお勧めします

あまりにも初速が遅すぎる ( 課題 2) あまりにも初速が遅すぎるので もっと早くしてください また 壁を生成して 落ちないようにしてみてください

答え合わせ 思考停止で数値をとりあえず 100 にしました 最初は動けばいいのです

当たり判定 まだまだしょぼいですが 当たり判定が判別できれば 少しはそれっぽくなるのでは? とりあえず 球が何かと当たったら デバッグ用にログを流すようにしてみましょう

さっきの BallController を書き足します 何も消さず こんな感じで書き足してください } // Update is called once per frame void Update () { } // ~~~ ここから下を書き足す ~~~ void OnCollisionEnter(Collision col) { Debug.Log(col.gameObject.name); } }

デバッグウィンドウを出す 実行する前にデバッグウィンドウを出しておきましょう 上の Window から Console を出します 出したら実行してみましょう

こんな感じになる

OnCollisionEnter(Collision col) 何か当たった時に 呼ばれる関数です 引数である col は当たったオブジェクトのことです Collision ってなに? って思う人は Sphere を見てください 実は最初から Sphere Collision というのが生成されていて これが当たり判定を担っているのですね!!

オブジェクトの消去の仕方 壁にぶつかったら その壁消したいな ~ なんて思いました 早速やってみたいと思います 以下のように書き換えます 終わったら保存して実行 void OnCollisionEnter(Collision col) { if (col.gameobject.name == "Cube") { Destroy(col.gameObject); } }

Destroy(GameObject) 名前の通りなので説明しません 引数は GameObject 型です

キーボード対応 そろそろ実行結果だけを見てるだけは飽きてきたと思います ゲームはインタラクティブなものです ずっと自動で動いていた Sphere を キーボードで移動できるようにしましょう

Update BallController.cs を書き換えます void Update () { Vector3 movedirection; movedirection = Input.GetAxis("Horizontal") * Vector3.right + Input.GetAxis("Vertical") * Vector3.forward; movedirection *= 10; } rb.addforce(movedirection);

備考 : 動かない! さっきのスクリプトをそのまま書いたら動くのですが よくエラーで実行できない時があります その時は焦らず Window から Console を開いて ( もしくは 一番下にあるエラーメッセージをクリックすると開ける ) エラーメッセージを確認してみてください よくあるのが Horizontal と Vertical のスペルを間違えることです

Input Input とは 名前の通り入力を受け付けるクラスのことです 様々な関数があります 今回使用したのは Input.GetAxis といって 上下左右を受け付ける関数です これはかなり優秀で 初期状態ならば 上下左右の矢印キー WASD 移動 ゲームパッド は Horizontal( 左右方向 ),Vertical( 上下方向 ) で 媒体にとらわれず対応することができます

Input また GetButton 関数でもいろいろ取得できます 引数はGetAxisもGetButtonでもstring 型です 引数は Edit -> ProjectSetting -> Input からいじることができます 今回は説明しません ぐぐってね

速度を変数化する movedirection *= 10 この部分は マジックナンバーを使っていますが ここを変数にしたいと思います * 備考 * いろいろ省略しています Rigidbody rb の下に変数を定義 movedirection を speed にしています public class BallController : MonoBehaviour { Rigidbody rb; public float speed = 10; void Update () { movedirection *= speed; }

Inspector の様子が? Sphere の Inspector の様子を見てみると BallController の中に Speed と書かれた変数が存在しています 変数を public で定義すると Inspector から直接変数を変更することができます 有効活用していきましょう

ここで第 1 回目終了 お疲れ様でした