Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

53 total results found

ゲームオーバー UI

ブロック崩しゲーム

現状、ゲームが終わるとき、Debug.Log でメッセージを表示しているが、その代わりに Canvas で「ゲームオーバー」を表示し、「さいかい」と「おわり」のボタンを実装しましょう! シーンの準備 スプライト分割 まず、ブロックと同様に、画像を分解しないといけない。ただし、行列ではないので、きれいに縦横で分割できない。この場合は、マウスを使い、各スプライトの領域を定義しましょう: 3つのスクリプトを分割したら、「Apply」ボタンを押し、シーンを編集しましょう Canvasの準備 すでに作ったゲーム用の Can...

サウンドを追加

ブロック崩しゲーム

ボールが何かと衝突、またはボールが失ったらサウンドを再生するようにしましょう。 ボールとパドル 新しい「BallHitSound」のスクリプトを作成し、以下の処理しましょう: サウンドファイルを Inspector で設定する 衝突の時 ( OnCollisionEnter2D )、ボールのタグを確認する ボールだったら、設定したサウンドを AudioSource.PlayClipAtPoint() で再生する。 // ボールが衝突したら、サウンドを再生 public class BallHitSound : ...

プロジェクト設定

ティミーの伝説

まず、新規プロジェクトを作成しましょう。2Dゲームであるため「Universal 3D」を選んでください。プロジェクト名は「legend」にしましょう。 素材を追加 3Dモデル 主人公(Timmy)とゾンビのモデル(Mixamo) キャラクターのアニメーション ステージ作成のパーツ(Kenney) 画像、テクスチャ プロトタイプ用のテクスチャ UIのスプライト フォント(Google Fonts) すべての素材をプロジェクトに追加しましょう。 プロトタイプ用のシーンを構築 本番のシーンを作る前、各...

Timmyの移動を実装

ティミーの伝説

主人公のゲームオブジェクトを作成 主人公のキャラクターの移動を実装しましょう。まず、空のゲームオブジェクトを作成し、「Player」という名前を付けてください。このゲームオブジェクトはプレーヤーの役割にする。 3Dモデルを追加 Characters/Timmy/Models から Timmy のモデルを追加してください。Player の子オブジェクトとして追加しましょう: よく見ると、色が多少おかしい。これはノーマルマップ(※)の問題であるので、解決しましょう。Characters/Timmy/Textures ...

主人公を追いかけるカメラ

ティミーの伝説

Timmyの移動できたとしても、操作が確認しにくいので、プレーヤーを追いかけるカメラ(三人称視点)を作りましょう 単純なアプローチ 一番簡単なのは「カメラの位置を主人公の位置にしろ!」の仕組みである。これをすぐ試せるので、「CameraController」スクリプトを作成してみましょう: スクリプト // 主人公を追いかけるカメラ public class CameraController : MonoBehaviour { // 追いかけるオブジェクトのTransform [SerializeF...

Timmyがカメラに相対的に移動する

ティミーの伝説

これでカメラが自由に回転できるようになったが、今度何かおかしい現象が発生。 カメラが主人公の後ろにある場合は、何とか正しく動きますが、真横、または正面から見ると入力する、主人公の動きが変に感じる。なぜなら、キャラクターがカメラの位置を関係なく、世界のXZ軸に沿って動くので、カメラの向きが変わったら、おかしく感じる。 この問題を解決するには、世界に絶対的に動くのではなく、カメラの向きに合わせて相対的に移動すること。 この場合は、カメラ前方(青い矢印)が世界のZ軸と並行になっているので、「W」キーを...

ジャンプを実装

ティミーの伝説

ジャンプは前後左右の移動とは関係ないため、別のスクリプトとして実装ができる。同じPlayerMoveでも実装できるが、「一つのスクリプト=1つの責任」の考えを従い、今回はジャンプ専用の「PlayerJump」スクリプトを作成しましょう。 このスクリプトは「Jump」という入力(プロジェクト設定→入力マネージャーを確認)が発動したら、一旦Y軸の速度を変えて、上がるようにしましょう。また、ジャンプ力をUnityで変えられるようにしましょう。 スクリプト using UnityEngine; // ジャンプ機能を追加す...

アニメーションを追加

ティミーの伝説

Timmy がずっと「T-ポース」でなかなか面白くないので、走るときとジャンプの時もアニメーションを再生しましょう。このため「アニメーションコントローラー」(Animation Controller)および「アニメーター」(Animator) コンポーネントを使用し、条件でアニメーションを切り替えて、主人公を適切に動かしましょう。 シーン設定 動くのは Timmy なので、Timmy (Playerではなく) に Animator コンポーネントを追加してください。 ここで、「Controller」と「Avata...

アイテムを拾う

ティミーの伝説

3D シーンの配置できるコインと鍵を拾って、Timmy が持っているアイテムを追跡しましょう。 コイン シーンにコインを一つ作ろう(後ほどプレハブにして、何個も配置できるようにする)。まず、「Coin」の名前で空のオブジェクトを作成する。拾う処理を確認しやしくするため、Timmyの近くに配置してください。 次、「Coin」の子オブジェクトとして、3Dモデルを追加しましょう。Meshes の中にある「coin-gold」を「Coin」の中に挿入し、位置は 0, 0, 0 にしてください。 最後、3Dモデルとの接触を確...

宝箱を作成

ティミーの伝説

このステップで、宝箱のアニメーションを作成し、開く。ただし、主人公が事前に鍵を持っていることを確認しなければならない。また、遷移のないアニメーションの切り替えも紹介する。 宝箱の準備 シーンに宝箱のモデルをシーンに追加しましょう。Coin と Key と同様に、空のゲームオブジェクトを作成し、3Dモデルを子オブジェクトとして追加した方がおすすめ。 サイズが多少小さいので3Dモデル(子オブジェクト)のサイズは 2倍ぐらい大きくしましょう。 なお、ちゃんとぶつかるように、宝箱はコライダーが必要。3Dモデルの子オブジェ...

UIを作成

ティミーの伝説

インベントリの中にあるアイテム(コイン、鍵)を画面上で表示し、主人公の体力も可視化しましょう。 Canvas作成 ヒエラルキーに新しい Canvas を追加してください。 Canvas Scaler を紹介 Canvas を作成するときに、同時に「Canvas Scaler」のコンポーネントを作成される。このコンポーネントは想定する画面のサイズに合わせて、自動的にCanvasを拡大縮小する。 例えば、UIを開発したときに、想定していた画面サイズは FullHD (1920 x 1080) だった。ただ、プレーヤーは...

ゾンビを実装

ティミーの伝説

主人公を追いかける「ゾンビ」を実現しましょう! シーンの設定 ゲームオブジェクトと3Dモデル Timmyと同様に、ゾンビのゲームオブジェクトを作成しましょう。空のゲームオブジェクトを作成し、その下に子オブジェクトとしてZombieのモデルを追加する: ただし、ゾンビは物理的に動かないので、コライダーとリジッドボディが要らない。ゾンビの動かした方については、下記で説明する。 アニメーション 今回は、アニメーションは1つしかなくて、ずっと歩くようにしましょう。ただし、Timmy と同様に「アバター」の設定が必要。 ...

課題

ティミーの伝説

Timmyの伝説に新たな機能を追加し、よりも面白くする! 例えば… HP回復アイテムを実装 罠を作成(消えるプラットフォーム→穴に落ちる) ドアを実装 定めたコインの数がないと開かない また、レバーを引くと開く HPゼロのときに、倒れるアニメーションを再生し、ゲームオーバーする 宝箱を開くと、コイン10個が飛んで出てくる サウンドを追加(アイテムを拾うとき、宝箱を開くとき) 移動プラットフォームを実装 ボールを投げ、ゾンビを倒す その他の好きな機能(自由) ルール 1つの機能を実装すると:合格(最低限)...

本番のシーンを作成

ティミーの伝説

今まで、作業用のシーンでゲームに必要な各部品を開発してきた。これで、本番のステージを作れるので、まず、再利用するもを1つのグループにし、プレハブ化にしましょう 共通のゲームオブジェクト(Player、Base(カメラ)、Canvas(UI)と EventSystem)をグループ化し、再利用できるプレハブにする。Zombieは別のプレハブとして保存。 つぎ、新し「Game」シーンを作成し、「Meshes/PlatformKit」から好きなパーツを選んで、ステージを作成してください。「Common」プレハブを挿入し、...

夏休み・練習課題

おまけ

義務ではないが、練習不足と思う学生にはおすすめ 目標 Unityでの開発と調査能力を向上する 先生が教えていない課題もあるので、少し調べる必要な場合もある 迷わず、判断力、開発スピードをUPする 自分の今のゆるいところを明確し、固める ポイント: 順番気にせず、答えれるのを先に答えて、難しい質問は最後に残す 最後に回答があるが、課題により、いくつかの解決方法がある。 下記の解決は、あくまで先生のやり方である。 C# / スクリプト(言語、およびUnityのの基礎) 次の質問をC#で回答してください(1行〜5...

C#の「イベント」(event)

おまけ

概念 ここまで、C#で学んだ主な概念は  メンバー変数:あるインスタンス(オブジェクト)のデータを保持するもの 体力 アイテムの一覧 速度 色 など メソッド:あるインスタンス(オブジェクト)が「できる」こと。データを処理する「関数」 走る ジャンプ 攻撃 フレーム毎の更新(Update) 初期化(Start) など クラス:インスタンスの「図形」であり、new (一般のC#) または Instantiate(Unity の Monobehavior / プレハブ)で具体化し、インスタンスになる。メン...

Unityで待機ができる処理:非同期処理

おまけ

概念 Unityのスクリプトでは、Start()、Update()、OnTriggerEnter() などの定めたときに実行するメソッドがある(初期の時、フレーム毎、トリガーに入った) この機能が大変便利であるが、ゲームを開発中には、上記のメソッドを呼び出される瞬間ではなく、少し時間たってから実行したい場合もたくさんある。 例えば: 体力がゼロになった場合、すぐにゲームオーバーを表示するのではなく、主人公が倒れるアニメーションを再生し終わってからゲームオーバーを表示したい。 ローディング画面を表示し、次のステージ...

バージョン管理システム

バージョン管理ツール「git」

 バージョン管理システム(Version Control System - VCS)はコンピュータ上でファイルの変更履歴を管理するシステムです。  現在、ゲームを作成している際にミスをした場合、数回アンドゥ(元に戻す)操作を行って戻ることができます。しかし、これはプログラムを起動し続けている間のみ有効です。Unityを一度閉じて後で再起動した場合、それまでに行った変更を取り消すことはできません。  さらに、誤ってファイルを削除してしまうこともあるでしょう。この場合、ファイルは失われてしまい、一から作り直すしか選択肢...