VRでシューティングゲームをつくる
このページでは、大島・松島・河野:Unity VR アプリ開発入門 技術評論社(2018)を出版から3年経った、2021年11月頃から5章以下を実施した記録です。現在の2021年にやってみるとUnityいろいろとかわっているので、それに対応しながら実践していく。本の中の間違いなどもいくつか発見したので、メモをしている(読みにくいと思いますが。。。参考にしてください)
2022/01/11 動かない原因を探る
- ビルドとランができたが,動かなかったので,その原因を探ってみた
- P.300 8-2-1 [2] でPointerに動きを設定するUISliderHandleの設定が間違っているような気配あり
- その点を修正して,ビルドできることは確認できた
- 次回時間のある時 Oculusに接続して 動かしてみようと思う
2022/01/01 OculusでVR化に進む!
- ゲームとしてはできたので,ここからは 本のフォローはやめて,コリンさんのYouTube動画に沿ってOculusでVR化を目指す
- 元ネタのYoutTube動画のこりんさん部分(1時間20分ぐらいのところから)に沿ってやってみようと思う
- Build setting > Platform > android
- 同上>Texture Compression > ASTC
- Player setting > アンドロイドマーク > Other setting > linear
- 同上 Vulkan < 削除
- 同上 PackageName > minimum APL Level 23
- 同上 Script Backend > IL2CPP
- Oculus Integration のステージング(VoiceもOFFにした)
-
- OpenXRに対応するためアップグレードして,Unityを再起動した.
- XR Manegement 4.1.0 をインストール
- Oculus XR Plugin 1.10.0 をインストール
- Edit > Project Settings > Oculus
- Build できて,Oculusで実行できたが,Gunを動かせない.
- 銃の動きを Oculusから取得するように変更する必要がるようだ.
2021/12/28 8-2-3 Start
- 8-2 Done
- ポインターを使ってRetryできるようになった
2021/12/13 8-2 Start
- 8-2-1 にある 2D Object は unity2020から インストールする必要があるらしい
- Package Managerから2D Spriteをインストール](https://raspberly.hateblo.jp/entry/9slicingSprites#2D-Sprite%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
2021/12/08
- 8-1を読んだ
2021/12/07 再開(仕事,立て込んでました)
- P284 7-4-4 から再開
- GameStateController.csの内容が本の内部では完結していないので,困った.
- また,一部 動作がおかしい
(ゲームスタートしていないのにタイマーが動作してしまっている) - ヒエラルキーウインドウで RemainTimerとGunPlayerを非表示にしたら,それらしい画面遷移になった.
- 上のような不具合は残っているが,一旦 7章完了
2021/11/26
- P280から再開
- Script「SceneChanger」を作成
- Retry ボタンを押すと 残り時間がリセットされるようになった。
- Script「ResultScore」を作成
- 7-4-3まで進んだ
2021/11/25夜 スタートと結果の表示を作ってみよう
- 7-4 突入
- P271 GameReadyのCopyは Duplicateを使った(Copyだと、ヒエラルキーWindowの階層がずれるため)
- P279 まで終了、このあとは、いっぱいScriptを書くみたい。。。
2021/11/25朝 スコアの導入
2021/11/24 残り時間の表示
- 7-2-2 残り時間のカウントができるようになった
- P256 コンポーネントの付与先が不明瞭に感じた「Text」オブジェクトにRemainTimerのScriptを付与しないといけない。
2021/11/23 UIの学習
- 7-1 終了
- 7-2-1 Canvas のPosが変更できなかったので この記事 のお世話になった。
- RenderModeをWorldSpaceにして入力できるようになった。
- RenderModeをWorldSpaceにしたらカメラの設定枠にワーニングが出たので、CameraをヒエラルキーWindowかドラッグした。
- テキストP256 [3]TextのRect Transformとあるが、CanvasのRect Transformと思われる。
- 図7.38がCanavsのプロパティーの図になっているのが、正しいと思われる。
2021/11/19 BGMの設定後、7章に突入!
- 6-5-3 BGMの設定して、ゲームらしくなった
- 7-1-2 Textの前までを読んだ
2021/11/17 敵の出現と廃棄時に音を使い分けて再生する
- 6-5-3
- 敵が出現したら音がなり、敵をやっつけても音が鳴るようになった
2021/11/16 発弾時と着弾時に演出が再生さ、音もなった
- 6-4-3~6-5-2
- HitParticlesのプロパティにScriptが割り当てられていて、ワーニングがでた。
- テキストのDownLoadサイトから得たデータをつかっているため、将来割り当てるScriptがすでに付与されていたためか?
- 一旦、HitParticlesに付与されていたScriptをRemoveしたらワーニングがなくなった。
- 6-5 音を入れてみように進む
- 6-5-2 を完了して音も鳴るようになった。
2021/11/15
- 6-4-2
- 弾を発射したときにガンの先端から光のような演出が再生された
- 実行時にVisual Studio EditorをUpdateするように薦めるワーニングがでた。
- 自力でpackage Manager を開いてUpdateが初めてできた。
2021/11/14 パーティクルについて学ぶ
- 6-4-1 パーティクル演出を再生した
2021/11/11 敵をランダムに出現させてみた
2021/11/10 敵に当たり判定をつける。6-2節無事に終了
- 6-2-2~6-2-4
衝突まで順次実装していったが、弾が敵にあたってもオブジェクトが廃棄されない。どこか、まちがったかな。。。- C#を編集して、保存をしていなかった。上書き保存後、実行したら、オブジェクトが廃棄された!
- 6-2節終了!
2021/11/08 弾の消滅と敵の設置
- 6-1-5~6-2-1
- AutoDestroyというScriptで弾が5秒で自動消滅するようにした
- ゾンビを3体設置した
2021/11/07 弾を発射する
- 6章が始まった。6-1~6-1-4
- 弾のプレハブをつくってた。
- ShooterというScriptを書いた。
- GunBGunBarrelEndというオブジェクト?が自作のGunPlayerには無く、困る。。。
- そのため書籍のページでダウンロードしたファイルからPlayerとFloorをUnityにドラッグ&ドロップしたら追加できた!(2021/10/30に気づいていればよかったが。。。)
- 追加できたので、GunPlayerとFloorを定義し直した。
- クリックしたら 飛んでいかない弾が生成された
- Bullet.csというScriptを書いてBulletハブにScriptを付与したら飛んでいくようになった!
2021/11/06 Camera RotatorというScriptをCameraに付与した
- Scriptの入力が大変そうなので書籍のサポートページからダウンロードした。
- 実行することでカメラの方向がキー入力に応じて回転するようになった。
- 今日で5章がおわった。次からは6章です!
2021/11/05 ExampleというScriptを書いた
- 実行すると Consoleに[Strat]
- スペースキーを押すと [Update]Space key pressed が表示された
Example.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Example : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("[Start]");
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
Debug.Log("[Update] Space key pressed");
}
}
}
2021/11/04 Floorを作り、Gunを配置した
- Floorは読み込んだアセットのなかになかったので、GameObject>Planeでつくった。テクスチャをアセットの中にある緑色を適用した適当に選んで
- GunはWeaponのなかにあったので、配置した。適当な位置に映り込むようにPositonを調整した
2021/11/03 別のアセットを読み込んでみようと頑張る
- Unity Asset StoreやGoogle検索したが、Survival Shooting Tutorialの情報が殆どない
- 同じチュートリアルをみつけることを諦めて、Unity Technologiesが提供している他の無料アセットで無理やり勧めてみようと思う(大丈夫かな?)
- FPS Microgameというのでやってみる
- Add to My Assetをすると追加されたよう、Open in Unity をくりっくしたら、Package Managerが開き、FPS Microgameが追加されていた
- Package Manager WindowでFPS Microgameを選択したら右下に小さくDownloadの文字があったので押してみたら、進んでいく感じがあった。
- 途中、依存性のワーニングがでたがInstall/Upgradeを炎嵐で進んだら、テキストに似たImportを選択する画面が現れた。
- 以下のようにテキストに合わせてそれらしいものだけImportしてみた。
- Project Windowに以下のようにImportされた。これでテキストのP.140 図5.10に似た感じになったかな。
2021/10/30 早速悩まされる
- Asset Store が推奨されなくなり、Packge Managerでインポートするようになっている。
- そのため早速アセットが読み込めず、壁にあたる。。。
- 以下のようなサイトで勉強し直して、再トライするしかないのか。。。
- いろいろググった一覧
- https://learn.unity.com/project/survival-shooter-tutorial
- https://framesynthesis.jp/tech/unity/oculusquest/
- https://lifenolabo.com/unity-tutorial-survival-shooter/
2021/10/29 Create Project
- 大島・松島・河野:Unity VR アプリ開発入門 技術評論社(2018)
- 発売後 3年経っているが,5-2を今のバージョンのUnity、Oculus Questでやってみる
- Unity 2021.1.27f1 3D VRShooting でプロジェクトをつくった