FreeLook カメラだとスクリプトでカメラの位置を調整しても、右スティックでカメラを移動できてしまいます。そこで、もう1つ Virtual Camera を追加してロックオン機能を実現しました。 目次.     } 2020 All Rights Reserved. Unityで困ったら. どだごんドットコム     void Start () { このゲームは... 先月からUnityで作っていたイライラ棒ゲーム「イライラ王」をリリースしましたのでお知らせします。ゲームの詳細やダウンロード先などは下記ページからどうぞ。 }, 自作のUnity用3Dモデルを販売(基本的に無料版あり)してますので、     }      ゲームを作りたいと思った初心者が、何をどう始めたらいいのか分からず挫折してしまうケースは多いです, 私はゲームエンジニアとして複数タイトルの開発を経験してきました。その経験上、最も効率が良い学習方法は「ゲームを作ること」だと考えています, そこで本記事では、初心者でも真似するだけで簡単にゲームが作れるように、サンプルとなる2Dシューティングゲームの作り方を紹介します, まずは、簡素なゲームを作り基礎を身につけて、簡素なゲームをカスタマイズしてオリジナリティを出していきましょう, (※この記事では画像の入れ替えなどは解説していませんのでご注意ください。後ほど別記事で追加したいと思っています), Unityの日本語化についても解説していますが、翻訳に違和感があったりする部分も多いので英語のままでOKです(この記事の解説でも英語のUnityの画像を使用しています), 前述しましたがゲーム画像は差し替えられるので、まずはゲームを作ることを優先していきましょう!, そのあとタブのすぐ下にある「FreeAspect ▼」のあたりを押して「16:9」を選択してください, 最近はiPhone、Androidなどいろんな画面の端末が増えているので、画面サイズを決めるのは結構難しいです, 「プレイヤー」画像ファイルをUnity上のシーンエリア(青い枠のあたり)にドラッグします, ゲーム中に存在するモノの一覧で、ここにあるものをオブジェクトや、ゲームオブジェクトと呼びます, ゲーム中に見えるもの見えないもの、機能、概念など、ありとあらゆるものが「オブジェクト」になりえるため、あまり深く考える必要はありません, ただ一般的には、今回のようにゲーム中に見えるモノをオブジェクトにすることが多いです, 青い枠のあたりが「ゲーム画面の範囲」になるので、そこからはみ出ないように、左に「プレイヤー」をドラッグして動かしましょう, 「ゲーム画面の範囲」の中ならどこでも良いですし、あとから変えることも出来るのであまり気にしなくて大丈夫です, 「Add Component」を押して検索窓のようなところに「Player」と入力してください, しばらくすると、プログラムを作成するためのエディターがUnityとは別なウィンドウで起動します, Macなどデフォルトで起動するエディタが異なる場合がありますが、基本的な使い方はほぼ変わらないので、自身のパソコンで起動したエディタを使用してもらってかまいません, エディターは一見すると機能がいっぱいあってごちゃごちゃした感じですが、基本的な使い方は「メモ帳」と一緒です, 私の場合はデフォルトのエディター「Visual Studio」が起動していますが、自分の好みのエディターを使うことも出来るので興味がある方は調べてみてください, プログラムの基礎を一から説明してしまうと膨大な量になってしまうので、まずはコピー&ペーストするだけで動作するように解説していきます, この状態でエディター左上の「ファイル」→「Assets\Player.cs」を押して変更を保存します, もし、それでも動かない場合はこちらの記事を参考にしてみてください。初心者にありがちなミスとその対策についてまとめた記事になります, 左のヒエラルキー(Hierachy)、下のアセット(Assets)に弾追加されていることが確認できます, ちなみに、Sceneメニューの弾はゲーム画面内に表示される位置に動かしておいてください, 左側の「弾」を選択した状態で、右側の「Add Component」を押してください, 下のAssetsというエリアに「Bullet」というファイルが追加されているので、これをダブルクリックします, プレイヤーのときと同じようにエディタにて「Bullet.cs」が開きますのでこれを編集していきます, このようにUpdate() { } の中身を追記してください(コピーして貼り付けでOKです), 例ではプレイヤーが弾を発射しているように見えますが「プレイヤーの操作によって弾が発射される」機能はまだ作っていないので、この時点では弾が勝手に前進するだけでOKです, 今回のゲームでは「プレイヤー」「敵」は1個づつですが、「弾」は連射できるので何個も必要になります, 最終的に「弾」が何個必要になるかはプレイヤーの操作次第なので、複製可能な状態にしておいてプログラムで自動的に複製します, 左のヒエラルキー(Hierarchy)メニューの「弾」をドラッグして、下のアセット(Assets)のエリアにドラッグしてください, 画面上に弾を残しておくと、ゲームの開始時に弾が既に発射されている状態から始まってしまうので、画面上に配置してしまった弾を見えなくします, その状態で、右側インスペクター(Inspector)メニューのにある箱?のようなアイコンの傍にあるチェックボックスを外します(上の画像の右上の赤丸を参照), 続いて下にある「弾のプレハブ」を「None(Game Object)」と書いてあるあたりにドラッグします, 「None(Game Object)」と書いてあるところが「弾」になっていれば成功です, Unityにてゲームを開始して「スペースキー」を押すと、プレイヤーが弾を撃つようになります, 左のヒエラルキー(Hierachy)、下のアセット(Assets)などに「敵」追加されていることが確認できたらOKです, 左のメニューから敵を選択して、右のメニューの「Add Component」を選択します, 検索窓ようなところに「Enemy」と入れて、その下の「New script」を押します, Unity中央の上のほうにある再生ボタン(みたいなやつ)を押すと、敵がプレイヤーの方向に向かって移動します, 左側の「敵」を選択した状態で、右側インスペクター(Inspector)メニューのにある箱?のようなアイコンの傍にあるチェックボックスを外します(上の画像の右上の赤丸を参照), 左のヒエラルキー(Hierarchy)メニュー内に右クリックして「Create Empty」を選択してください, 左のヒエラルキー(Hierarchy)メニュー内に「Game Object」が作成されたのが確認できればOKです, このとき作成された「Game Object」はゲーム画面に表示されないオブジェクトですが機能を持たせることが出来ます, この「Game Object」に対して「プレイヤー」「弾」「敵」などと一緒のやり方でプログラムを作成していきます, 次に左の「Game Object」を選択した状態で、右の「Add Component」を押してください, 検索窓のようなところに「Game Manager」と入力して「New Script」を押します, 画像のように下のアセット(Assets)に歯車マークの「Game Manager」が出来ていればOKです, 下のアセット(Assets)の中にある「敵」のプレハブを右側のNone (Game Object)と書かれた部分にドラッグします, None (Game Object)と書かれていた場所に「敵」がセットされていればOKです, ちなみに、この時点では弾を発射しても敵には命中しませんので、この後作成していきます, メニュー下の「敵」プレハブを選択した状態で、右の「Add Component」を選択してください, 「Add Component」を押した後に出てくるメニューで「Physics 2D」を選択してください, 右側のメニューに「Circle Collider 2D」が追加されていればOKです, 下のメニューの「弾」のプレハブを選択し、「Add Component」を選択します, (※「敵」のときは「Circle Collider 2D」を選択したので若干異なります), 画像のように「Box Collider 2D」、「Rigidbody 2D」が追加されていればOKです, (右側のInspectorメニューが縦に長くなっている可能性があるので、パソコンによってはスクロールが必要です), 「Box Collider 2D」内にある「Is Trigger」のチェックをONにします, また、「Rigidbody 2D」内の「Body type」を「Kinematic」にします, ここまで作ってみると「ゲームが出来た!」という気持ちもあるかと思いますが、一方で・・・, ここまでゲームを作ることができた方なら、この先の機能も調べながら作っていくことが出来るようになっていると思います, Unityによるゲーム製作に興味が出てきた方は、ぜひ追加機能の開発にもチャレンジしてみてください!, Unityのスキルを身につけて、ゲームを自由自在に作れるようになると、とっても楽しいですよ!, この記事で作成したシューティングゲームにスコアを追加する手順を画像付きで解説しています, この記事で作成したシューティングゲームにゲームオーバー処理を追加する手順を画像付きで解説しています, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 「ゲームを作れるようになろう!」がテーマのブログ 初心者向けにゲームの作り方を書いています たまに遊んだゲームのことも書きます, 書いている人は現役のゲームエンジニア ゲームの開発・運営を経験して4年くらい まだまだペーペー>> お問い合わせ, Unityの勉強におすすめのプログラミングスクールを紹介します。昨今「プログラミング教育の必修化」や「働き方改革による副業推進」などにより、プログラミングスクールの需要が高まっています。実際、プログラミングスクールで検索す…, UE4(Unreal Engine 4)のインストール手順について画像付きで解説します, Unityの勉強方法は? 現役のゲームエンジニアがUnity初心者の勉強方法について詳しく解説します これからUnityでゲーム作りを始めてみたい方はぜひご覧ください, Unityのダウンロード方法、インストール方法について画像つきで手順を解説します 本記事の手順は2020年5月時点のものです Unityの導入手順が知りたい方はご覧ください. }, void Start () { 「イライラ王」紹介ページ 今回は、攻撃側のコライダーが1個、ダメージを受ける側のコライダーが1個で作成します。それぞれ多数付けるのは、後日書きます。, 攻撃の当たり判定には、Rigidbody と Collider を使用します。Collision は、Layer Collision Matrix を使って必要な Collision を絞ります。, Project Settiings を開き、Tags and Layers を選択します。, 追加が終わったら、Project Settings 内の Physics に移動します。そして、以下のように Layer Collision Matrix を設定します。, Knight プレファブを開いて、hips に Rigidbody, BoxCollider, HitArea.cs スクリプトを追加します。パラメータは以下のようにします。, Layer 設定時の選択肢です。間違えないでください。間違えた場合は一度 Default に戻して子オブジェクトも Default にした後やり直してください。, Rigidbody と Collider を使った当たり判定の説明の詳細は省略します。ググってもらえばたくさん見つかると思います。以下、概要です。, hips への追加が終わったら、Knight 直下に AttackAreaActivator.cs スクリプトを追加します。, WeaponMaul 内の Maul にコライダーを付けます。WeaponMaul のプレハブを開きます。そのなかの Maul に Sphere Collider とAttackArea.cs スクリプトを取り付けます。Collider は、Box Collider や Capsule Collider でも構いません。形状が合うものを適宜選んでください。, Layer を PlayerAttack にします。※ このとき、すべての子オブジェクトにも Layer を設定するか聞かれるので、「No, this object only」を選択してください, インポートが終わったら、いつものように Asset Packs フォルダに移動しておきます。, paladin さんの prefab を Scene画面内に ドラッグアンドドロップします。, Character Controller と PlayerStatus.cs を取り付けます。Animator の Controller に何もしないで立っているアニメーションが設定されているので、Animator はこのまま使います。Character Controller のパラメータは画像の通りです。PlayerStatus (Script) の DebugText は、後で HUD に新しいデバッグ用のエリアを追加てから取り付けます。, ここまでできたら paladin を一度自分用にプレハブ化しておきます。Game/Character というフォルダを作成し、そこに paladin をドラッグアンドドロップしてプレハブ化します。, 続いて、プレイヤーキャラクターと同様に hips に Layer を設定し、Box Collider, Rigidbody, HitArea スクリプトを追加します。ここでも Layer 設定時に子以下のオブジェクトへの反映はしないようにしてください、, 攻撃した際に、正しくダメージが入っているかどうか確認するために、HUD に 確認用のText を追加します。, HUD のプレハブを開き、PlayerMoveText の下に、EnemyText を追加します。フォントを12px, フォントの色を 白にしました。, HUDへの追加終わったら、今作成した EnemyText を paladin の PlayerStatus (Script) の Debug Text に 設定します。, 敵のHP を表示できるように PlayerStatus.cs が新しくなっているので差し替えるます。, 参考にした書籍では SendMessage を使っていましたが、ちょっと調べたらイベントシステムのメッセージシステムを使った方法の方がいいよって書いてあったので、そちらを使いました。こちらの方が新しいらしい。, まず、インタフェースを定義します。今回は IAttackDamane としました。インタフェースは IEventSystemHandler を継承する必要があります。, 次に、受け取り側です。インタフェースを継承し、インタフェースで定義したメソッドを実装します。, 最後に、呼び出し側です。ExecuteEvents.Executeで、受け取り側の OnDamaged 関数に AttackInfo を引数に渡して呼び出します。このとき、引数は複数指定できます。, スクリプトの説明を書こうかと思ったのですが、メッセージシステムを使っているだけなので、特に書くことはありませんでした。, 趣味でゲームを作っています。ダークソウルが大好きなので、3人称視点の3Dアクションゲーム、いわゆる ソウルライクゲームというジャンルでゲームを作っています。2016年1月~3月ごろUnityでゲームを作って以降ずっとやっていなかったのですが、2020年3月に再開しました。Unity初心者です。, Unity: 武器の着脱と、AnimatorOverrideController を使ったアニメーションの変更, WeaponMaul 内の Maul にコライダーを付けます。WeaponMaul のプレハブを開きます。そのなかの Maul に, ※ このとき、すべての子オブジェクトにも Layer を設定するか聞かれるので、「No, this object only」を選択してください, Is Trigger にチェックを入れると Collider が通り抜けられるようになる。, Ridgidbory の Is Kinematic にチェックを入れると他からの物理的な影響を受けなくなる。, TriggerEnter が発行されるためには、Collider が付いているどちらかに Rigidbody が付いている必要がある。, BoxCollider と Hit Area のスクリプトは同じ GameObject についている必要がある。, Rigidbody は root の GameObject についていても問題なさそう。とにかく1つ Rigidbody が付いていれば良いと思う。, [初期化処理] Start() 時に AttackAreaActivator が武器についている Collider を検索してキャッシュします。その際に Collider を無効化します。, 武器を振ると 攻撃アニメーションについているイベントから StartAttackHit() が呼び出されます。これは、AttackAreaActivator.cs で処理され、武器についている Collider を有効化します。, 特に何も当たらなければ、攻撃アニメーションについているイベントからEndAttackHit() が呼び出されます。これは、AttackAreaActivator.cs で処理され、武器についている Collider を無効化します。, 2で衝突が起こる場合。Layer Collision Matrix で設定したように、PlayerAttack と EnemyHit は衝突するとトリガが起動されます。, AttackArea.cs 側の OnTriggerEnter で、誰がどのくらいのダメージの攻撃したという情報を、イベントシステムのメッセージシステムを使って衝突した側に送ります。, 送られてきたイベントを HitArea.cs の OnDameged で受け取ります。受け取ったらダメージを受けた側の PlayerStatus の HP を減らします。, フォルダを作成してファイルを置いたので、namespace を Bonfire.Combat とした, 敵の方は攻撃手段を用意していないので、ActivateAttackArea.cs を付けていない, Collider がついているGameObject の Layer が正しく設定されている, コメントアウトしてある Debug.Log を有効にして、メッセージが渡っていることを確認する.

イグアナ 販売 札幌 5, Controlpaint Drawborder 太さ 4, Axios Cors Set Cookie 7, アウトバック Bs9 ブログ 5, Best Buddy 意味 28, マリノ ピザ カロリー 15, スマイル 目薬 歴史 6, ゴルフ5 スリーブ交換 工賃 18, シミ取りレーザー 後 軟膏 種類 8, 看護師 内定承諾書 封筒 14, 著作権 注意書き 例文 5, 彼氏 連絡 減った 占い 16, プリウス 空気圧警告灯 リセット 4, 身元保証書 印鑑 同じ 6, Visual Studio 最 前面 4, パワプロ 能力査定 基準 31, インスタ 自分のいいね 見れない 4, キラメイジャー 怪人 デザイン 21, Unity + Visual Studio Code 4, Mda ラブドラッグ 効果 12, グローレ F2 とm2 11, 佐藤健 結婚 占い 13, アイシンaw 通勤 バス 8, Python 動画再生 音声 37, 黒い砂漠 金塊 クエスト 6, トッケビ 感想 なんじゃもんじゃ 7, シティーズスカイライン ゲームオーバー 条件 14, コテ 26mm 32mm 違い 10, パワプロ 能力査定 基準 31, アイノカタチ 楽譜 合唱 4, 書道家 弟子 募集 12, 孤独のグルメ 韓国 ビビンバ 10, My Way 1 教科書 単語 12, バネ 遊び 車検 18, W123 車検 費用 4, 嵐 口パク 天皇 4,

LEAVE A REPLY:

(this will not be shared)
(optional field)

No comments yet.