7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Unity】未経験で3Dアクションゲーを作った際のメモ

Posted at

私は、主にプログラム面で参加しました。
普段の仕事では、ActionScript, JavaScript, PHPを主に使用しています。

3DやC#等、個人的には不慣れな領域でしたが、
インタラクティブなゲームの作り方を含めて非常に勉強になりました。
同時に、チームで物を作る楽しさを改めて実感できて、良い刺激になりました。

以下、メモを箇条書きでつらつら書き、
最後に所感をまとめています。

アニメーションの状態を取得する

var animator: Animator = GetComponent("Animator");
animator.GetCurrentAnimatorStateInfo(0).IsName("wait");

  • Create State後に、Inspector上でNew Stateに表記されている文字が入る
  • 今回は待機モーションかどうかを取得したかったのでこのように記述
  • 返り値はbool

主にプレイヤーキャラのMechanimが矢印だらけでカオスなことになってしまいました。
(モーション間の遷移をユーザーストレスなくやろうとすると...。
この辺りはスクリプトで管理したいなと思いました。
Mechanimをガッツリいじってモーションのタイミング調整したり~があれば、デザイナーさんに依頼しようと思います。

SceneManagerでシーン管理

5.2以前の記述方法だとWarningが出ます。

シーンを読み込む

△ Application.LoadLevel("scene01")
〇 SceneManager.LoadScene("scene01")

現在のシーンファイル名を取得

△ Application.loadedLevelName
〇 SceneManager.GetActiveScene().name

※ 現状、どちらの記述方法でも可能(移行期間っぽい)ですが、近いバージョンでなくなりそうです。

使用していないアセットをアンロード

  • Resources.UnloadUnusedAssets();
  • 今回はゲームの場面ごとにシーンを作成したので未使用でしたが、今後、中規模以上のゲームをガッツリ作っていく場合、細かいパーツをシーンとして加算ロードなどする場合には必要になりそうです。

作成したシーンの構成

  • scene_title
  • タイトル用のシーン。3D背景の上に、2Dのロゴ、スタートボタン、操作説明ボタンを表示。
  • Player
  • JokerScriptを使用したシナリオ再生用シーン。元々ライブラリにあったシーンを使用。
  • scene_game
  • プレイヤーが主に触ることになるゲーム本編のシーン。
  • scene_result
  • ゲームの結果を表示するシーン。

プレハブをインスタンス化し、子要素に配置

GameObject obj = (GameObject)Instantiate ~

  • 操作説明画像の表示に使用。次回はスライダー等、最適なものを探りたい。

シーンファイルが競合しないように

複数人で触ることになり、何度か競合してしまいました。
シーンファイルはバイナリの為、マージできないようです。
 → シーンごとに作成者を分ければいい?
 → そもそも、シーンをほとんど触らない様な体制で行くのが良い。スクリプトで管理する感じで。

対策?

  • Menu > Edit > Project Settings > Editor > Inspector
  • Version Control を Visible Meta Files
  • Asset Serialization を Force Text

へ変更することで、
シーンファイル、プレハブをテキストエディタで確認できるようになりました。
これでも競合しそうですが..。

プロファイラの使い方

ゲームプレイ時、スマホにたまる熱がヤバかったので何とかしたくて調べましたが、
今回は自分の理解が足りておらず扱えませんでした。。
次回は少しでも理解できるように。

プロジェクト内に新規作成したファイルは、バージョン管理しないと編集できない?

MonoDevelop使用時、キーボードの反応がなくなる(SVNと連携している場合に限る?
MonoDevelopは軽いので使っていましたが、より扱いやすいIDEがあれば乗り換えようと思います。

バージョン管理の話で言うと、次回は勉強もかねてGitを使っていきたいなと思います。
今回は、AWS上にSVNを設置しました。

所感

小規模なものであればデザイナ視点だけでも扱いやすいですが、複数人でUnity上のファイルを編集することになる場合、色々と問題が発生してきました。
中規模以上のコンテンツを作っていくことになる場合(こちらでも書いた通り)プロジェクトで利用するファイルを管理するプログラマの視点で、デザイナと取り組む体制を整える必要がありそう。
また、Unity云々より、プログラミングのスキルが足りていないことを実感。磨く。
個人的には、クライアントサイドよりサーバサイドを学びたい気分が増してきました..。
どんどんチャレンジしていきたいです。

7
7
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?