SlideShare a Scribd company logo
1 of 29
AR基礎
~アプリ開発編~
2018/06/11
SA 渋谷新樹
実装する機能一覧
• 3Dモデルキャラクター(みここ)の表示、回転
手動回転
自動回転
• ARシューティングゲームの基本
敵の自動生成
クリックして敵を破壊する
みここのダウンロード
• みこことは
→今をにぎわすバーチャルのじゃロリ狐娘Youtuberおじさん
• ダウンロード先
https://bowlroll.net/file/152466
• 他の配布されているモデルや
自分で作ったモデルなどでも可
みここのインポート
• MikokoModelフォルダは
document>Unityの下に保
存
• Asset内で右クリック>
Import Package>Custom
Package>
MikokoModelunitypackage
みここの表示
• Assets>Mikokoオブジェクトを
ImageTargetにドラッグ&ドロッ
プ
• ImageTargetがない場合は前回の
資料「ARマーカー登録手順」を参
照
表示された^^
次はみここを回転させてみよう!
• プログラムは実際に一緒に書いていきます。
• mikokoController.csを作成、以下を記述
• 書いたスクリプトはMikokoにアタッチ!
• MikokoのAdd ComponetからBox Colliderをつける
手動回転プログラム
自動回転ボタンの作成
• Canvas作成
Create>UI>Canvas
• ボタン作成
Canvasの上で右クリック>UI>Button
ButtonをAutoButtonにRename
• ボタン移動
Canvasをダブルクリック、ボタンを好きな場所に移動
※スクショが見たい場合はCodeGeniusの「UIボタンの使い方」参照
• mikokoControllerに以下を追加
自動回転プログラム
この行を追加!
• C#スクリプトを作成
• 名前をAutoRotateに変更、以下を記述
• AutoRotateをCanvasにアタッチ
• できたら実行して、ボタンを押してみよう!
自動回転プログラム
• autoButtonを選択、onClickの+をクリック
• 出現した空欄に「Canvas」をドラッグ&ドロップ
• No Functionをクリック
AutoRotateを選択→「OnAutoButtonClicked()」をクリック
• 実行して、作成したボタンを押してみよう!
自動回転プログラム
自動回転プログラム
• だけど、このままじゃ回転が止まらない><
• 時間があったら、stopRotateも作ってみよう!
• stopRotateのヒント
ボタン作成までの手順は同じ
rotateFlagをFalseにする
ARシューティングゲームの基本
敵の自動生成
• オブジェクトを複製する「工場」の作り方を覚えよう!
敵の作成
• Sphereを作成、名前をEnemyに変更
• 色、大きさを自由に設定
• Rigidbodyをつける
Enemyを選択
「Add Component」→「Physics」→「Rigidbody」
• Hierarchyに残った青いEnemyオブジェクトは削除!
敵のプレハブ化
ドラッグ&ドロップ!
プレハブとは?
• 設計図のようなもの
• 設計図さえあれば、いくつでも同じものを作ることができる
設計図(プレハブ)
製品(インスタンス)
コピーでいいのでは?
例えば、10体の敵の色を白色から赤色に変えたいと思った場合
• 敵をコピーして使っていた場合
• 10体の敵すべてを個別に変更しなくてはならない
• プレハブを使った場合
• プレハブの色を変えるだけで、10個の敵すべてに変更が反映される
敵を自動生成するスクリプトの作成
• enemyGeneratorというC#スクリプトを作成
• ジェネレータスクリプトとも呼ばれる
enemyGenerator.csの中身
スクリプトはどこにつければいい?
※Unityのスクリプトはオブジェクトにアタッチすることで作動するようになります
スクリプトを付ける先がない!
• 空のオブジェクト(工場オブジェクト)を作ればよい
• Create Empty → enemyGeneratorに変更
• enemyGeneratorオブジェクトにenemyGeneratorスクリプトをド
ラッグ&ドロップ
• enemyGeneratorオブジェクトを選択、Enemy Prefabにプレハブ化
したEnemyをドラッグ&ドロップ、発射速度を設定
※Enemyのusegravityにチェックがついている場合は外す
工場の作り方 まとめ
1. 既にあるオブジェクトを使ってプレハブ(設計図)を作る
2. ジェネレータスクリプトを作る
3. 空のオブジェクトにジェネレータスクリプトをアタッチ
4. ジェネレータスクリプトにプレハブを渡す
クリックして敵を破壊
クリックして敵を破壊したい
• 敵オブジェクトとmouse座標が重なったうえで、クリックされ
たとき、破壊されるようにすればよい。
• EnemyにsphereColliderをつける
• 次ページのスクリプトdestoroyEnemy.csをARカメラにアタッ
チ
敵オブジェクトとmouse座標の交差判定
destroyEnemy.cs
照準の表示(余力があれば)
aim.cs
今後も様々な機能を追加していきましょう!

More Related Content

Similar to ARdevelopment

unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actionsDaiki Mogmet Ito
 
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話Koichi Ota
 
Introduction of Swift from Game Development
Introduction of Swift from Game DevelopmentIntroduction of Swift from Game Development
Introduction of Swift from Game DevelopmentDaisuke Yamashita
 
ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門Takashi Yoshinaga
 
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3Yoh Nakamura
 

Similar to ARdevelopment (6)

unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actions
 
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話
IoT Hub と Azure Funxtions とかで片桐ヒマボタンを作った話
 
Introduction of Swift from Game Development
Introduction of Swift from Game DevelopmentIntroduction of Swift from Game Development
Introduction of Swift from Game Development
 
ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門ノンプログラミングで始める AR 開発入門
ノンプログラミングで始める AR 開発入門
 
可視化法学(studycode編)
可視化法学(studycode編)可視化法学(studycode編)
可視化法学(studycode編)
 
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3プロジェクトを成功させるための期待マネジメント_中村洋_A-3
プロジェクトを成功させるための期待マネジメント_中村洋_A-3
 

ARdevelopment

Editor's Notes

  1. テキスト、サイズ、色などは自由に変えてください
  2. ボタン作成 Create>UI>Canvas
  3. ボタン作成 Create>UI>Canvas この段階ではまだ動きません。
  4. ボタン作成 Create>UI>Canvas
  5. RaycastHit レイを飛ばした際に、衝突したオブジェクトの情報を得るために使用されます。
  6. この2つは統合できそう ただ、1つプログラムに複数の機能がごちゃまぜになるとプログラムが分かりづらく、なってしまうおそれもあるので、この辺はお好みで。