投稿

アンリアルエンジンのアクターとコンポーネントの関係

アンリアルエンジンでゲームを作りはじめると、「アクター」や「コンポーネント」といった言葉がよく登場することにまず気がつくかと思います。 アクターとコンポーネントはアンリアルエンジンで開発をする上でとても重要な要素です。 この二つを理解し、うまく使うことで、ゲーム作りがずっと楽しく効率的になります。 この記事では、アンリアルエンジンにおけるアクターとコンポーネントの関係をわかりやすく説明します。 アクターとは? アンリアルエンジンの世界で、アクターは動くもの、触れるもの、見るものすべてを含めたゲーム内のオブジェクトを指します。 これにはキャラクター、家具、建物など、プレイヤーが操作したり影響を受けたりするものがすべて含まれます。 英語の「Actor」はそのまま日本語に訳すと「役者」「俳優」といった意味です。 つまり、ゲーム内で何か行動するキャラクターをイメージすると分かりやすいかと思います。 アンリアルエンジンではキャラクターだけでなく背景やそこに置かれたものなど全てがゲームの世界を演出する役者(Actor)というわけです。 コンポーネントとは? コンポーネントは、アクターに特定の機能を追加する小さな部品です。 たとえば、見た目を決めるRenderingコンポーネント、物理計算をするPhysicsコンポーネント、音を出すAudioコンポーネントなどがあります。 コンポーネントを使うことで、同じ動作を多くのアクターで簡単に再利用できます。 コンポーネントはアンリアルエンジンの中で用意されたものを使うこともできますし、自分で独自のコンポーネントを作ることもできます。 英語の「Component」をそのまま日本語に約すと「部品」のような意味になります。 アクターを構成するための部品という事になるので、他のアクターにも同じ部品をつけたり、様々な部品を組み合わせうることで独自のアクターを作ることができるという事になります。 アクターとコンポーネントの組み合わせ アクターはコンポーネントを組み合わせることでその機能が決まります。 コンポーネントはアクターの「部品」として機能し、アクター自体はこれらの部品をまとめて一つの機能として動かす役割を持っています。 このように、アクターとコンポーネントを組み合わせることで、ゲーム内で様々な動きや機能を実現します。 アンリアルエンジンにおける...

アンリアルエンジンのブループリントでレベル(シーン)内の任意のアクター(オブジェクト)を参照する方法

イメージ
アンリアルエンジンのブループリントでレベル内の任意のアクターを参照する方法について解説します。 テsアクターというのはキャラクターやマップなど、レベル内に配置されているオブジェクトのことです。 レベルというのはUnityなどでいうとシーンのようなイメージです。 注意点:「タグ」は2種類ある タグという名前のつく設定項目には2種類あります。 一つが「アクタ」につけるタグ。 もう一つが「コンポーネント」につけるタグ(Component Tags)です。 アクタを取得したい場合は「アクタ」のタグを設定する必要があります。 手順1:アクタにタグをつける 任意のアクタを参照する方法はいくつかありますが、そのうちの一つが「タグをつけて参照する」という物です。 アクタに固有の名前をつけて、その名前を元に参照するというイメージです。 複数のアクタに同じタグをつける事も可能です。 その場合、指定したタグを持つアクタを全て配列で取得することができます。 タグをつけるにはまず、レベルのアウトライナーでタグをつけたいアクターを選択します。 アウトライターの下のウィンドウで「アクタ」タブを選択します。 設定項目に「Tags」があるので、その横の「+」ボタンを押します。 「インデックス(0)」というフィールドが新しく出てくるので、その右側のフォームに好きな名前を入力します。 以上でタグをつける作業は完了です。 手順2: アクタを参照したいブループリント内で「Get All Actors With Tag」を呼び出します。 「Get All Actors With Tag」のノードの「Tag」に検索したいタグ名をセットします。 検索結果は配列で取得できるので、配列のGet関数を使うなどしてアクタを取り出して使います。 以上で任意のアクタを取得することができます。 アンリアルエンジンのブループリント内で任意のアクタを参照する方法を解説しました。 参考になれば幸いです。 皆様の開発が順調に進むことを願っております。 それではまた。

アンリアルエンジンのゲームモードとは?

アンリアルエンジンでゲームを作る時にとても大事な「ゲームモード」というものがあります。 この記事では、ゲームモードが何であるか、そしてそれがどのようにゲーム開発に役立つのかを説明します。 ゲームモードとは? ゲームモードは、ゲームの「ルール」を設定するためのものです。 例えば、ゲームがどのように始まるか、どうやって勝つか、どうやって負けるかといったことを管理します。 アンリアルエンジンでは、このゲームモードを使って、ゲームの基本的な流れをコントロールします。 主な設定項目とその説明 ゲームモードベースで設定できる重要な項目には以下のようなものがあります。 デフォルトのポーンクラス(Default Pawn Class) 「ポーン(Pawn)クラス」とはゲームの中でプレイヤーなどが操作するキャラクターのことです。 Pawnはチェスの駒の歩兵、将棋で言うと「歩」のようなイメージの単語で、ゲームの中で一般的に扱われる駒の事を指しているとイメージすると良いでしょう。 ゲームモードの「デフォルトのポーンクラス」というと、ゲーム開始時に初期設定として登録しておくキャラクターということになります。 ゲームモードの指定 作成したゲームモードはゲーム全体に適用するか、アンリアルエンジンのレベルごとに指定できます。 デフォルトのゲームモードを指定する ゲーム全体にデフォルトで適用するゲームモードを指定するには、メインメニューの「編集」→「プロジェクト設定」→「プロジェクト」→「マップ&モード」→「デフォルトのゲームモード」でゲームモードを指定します。 特定のレベルにゲームモードを指定する 場面によってゲームのルールを変えたい場合は、アンリアルエンジンのメインメニューの「ウィンドウ」→「ワールドセッティング」でワールドセッティングの設定を表示させます。 次に右下のウィンドウの「ワールドセッティング」タブを選択→「GameMode」→「ゲームモードオーバーライド」で自分が作成したゲームモードを選択することで、表示しているレベルのゲームモードを指定する事ができます。 デフォルトのゲームモードと、ワールドセッティングのゲームモードの両方が設定されている場合、ワールドセッティングのゲームモードが優勢されます。 まとめ アンリアルエンジンのゲームモードは、ゲーム全体やシーンごとに割り当てる事ができ...

アンリアルエンジン5(Mac)でプロジェクト名を後から変える方法

 アンリアルエンジン(Unreal Engine)でゲーム開発を行う際、プロジェクト名を変更したいと思う状況はよくあります。 かっこいいプロジェクト名を考えたけど英語の綴りが間違っていたり、どこかで拾ってきたサンプルプロジェクトを改造そのまま開発を進めたはいいものの、プロジェクト名が「Sample_XXX」や「Test_XXX」のまま…といった状態です。 この記事では、アンリアルエンジンでプロジェクト名を変更する手順を説明します。 公式の手順ではないので、あくまで自己責任で、参考までということでお願いします。 プロジェクト名の変更によりプロジェクトが開けなくなるなどのリスクがあります。 必ずバックアップを取りましょう。 なお、この手順はアンリアルエンジンのバージョン5.4.1で試しています。 他のバージョンでは上手くいかない可能性があるのでご注意ください。 前提:Epic Games Launcherでクローンするのが安全 プロジェクト名変更の方法として、Epic Games Launcherでプロジェクトをクローンして別名をつけるという方法があります。 Epic Games Launcherの左メニューから「Unreal Engine」を選択 → 上部タブの「ライブラリ」を選択 → 「マイプロジェクト」から名前を変えたいプロジェクトを選び、右クリックメニューで「クローン」を選択。 これで新しい名前をつければ完了です。 以下の手順は、私かクローン機能の存在に気づかないまま調べた内容になります。 オススメの方法ではありませんが、何かの参考になればと思い記録として残します。 ステップ 1: プロジェクトの変更を保存する まず、変更したいプロジェクトが開かれている場合は、すべての作業内容を保存しておきましょう。 ステップ 2: プロジェクトを閉じる プロジェクトを保存したら、アンリアルエンジンを閉じてください。 プロジェクトが開いている状態で名前を変更すると、ファイルが開けなくなる恐れがあります。 ステップ 3: プロジェクトフォルダーをコピーして名前を変更 プロジェクトフォルダーが保存してある場所に移動し、フォルダーごとコピーします。 元のフォルダーはバックアップとしてそのまま残しておいて、新しくコピーした方のフォルダーの名前を好きな名前に変更します。 元のフォ...

アンリアルエンジンでランチャーの「最近使用したプロジェクト」に自分のプロジェクトが表示されない場合の対処方法

 アンリアルエンジンでランチャーの「最近使用したプロジェクト」に自分のプロジェクトが表示されない場合の対処方法について解説します。 この方法はアンリアルエンジンのバージョン5.4.1で確認しています。 1. まず自分のプロジェクトが保存されているフォルダーの場所を確認します。 2. 次にランチャーから、自分のプロジェクトが保存されているフォルダーと同じ場所に新規でプロジェクトを作ります。空のプロジェクトで良いです。 3. 新規で作ったプロジェクトは特に何もせずそのまま閉じます。 4. アンリアルエンジンのランチャーを再起動します。 これで「最近使用したプロジェクト」に自分のプロジェクトと新しく作ったプロジェクトが両方とも表示されると思います。 新しく作ったプロジェクトは使わないので削除してください。 以上がアンリアルエンジンのランチャーで「最近使用したプロジェクト」に自分のプロジェクトが表示されない場合の対処方法になります。 皆様の開発が順調に進むことを心より願います。 それではまた。

アンリアルエンジンを使って2Dゲームを作るときに使う「タイルマップ」についてざっくりわかりやすく解説!

アンリアルエンジンを使って2Dのゲームを作るときに使う用語をざっくりわかりやすく解説します。 あまり詳しい部分には触れないので、ざっくりイメージを掴みたい人は参考にしてみてください。 テクスチャー(マップの素材) ゲームで使う地面や壁、アイテムなどの絵の素材です。 キャラクターの見た目や背景など、ゲーム内のさまざまな要素に使います。 タイルセット(絵のセット) テクスチャーを元に、ゲームで使う地面や壁、アイテムなどの絵をタイルのように分割したものがタイルセットです。 これを使ってゲームのマップを作ります。 タイルマップ(タイルセットの絵を並べて作るマップ) タイルセットの絵を並べてゲームのマップを作ったものがタイルマップです。 プレイヤーや敵キャラクターが動く場所や、障害物がある場所を決めて絵を置いていきます。 コリジョン(当たり判定) ゲーム内でキャラクターが触れることができる場所や触れられない場所を設定します。 たとえば、壁に触れたらキャラクターがそれ以上進めなくなるように設定することができます。 以上が、アンリアルエンジンを使って2Dゲームを作るときに使う「タイルマップ」のざっくり説明です。 詳細についてはまた別の記事で紹介していきます。 自分で実際にアンリアルエンジンを操作してみると、より理解が深まるかと思います。 それはまた次の記事で会いましょう。

アンリアルエンジンでタイルマップの当たり判定が効かない時に確認すること

アンリアルエンジンで開発し始めた頃は、タイルマップの当たり判定が効かないという問題がに遭遇することが多いです。 この問題を解決するために以下のポイントを確認してみてください。 タイルセットの設定を確認する 最初に確認すべきは、使用している タイルセット の設定です。 タイルセットではタイルごとに当たりを設定することができます。 タイルセットの上部のメニューの「タイルの衝突(Colliding Tiles)」を選択すると、当たり判定が設定されているブロックが半透明の水色で塗りつぶされて表示されます。 タイルセットに当たり判定が設定されていない場合は、上部メニューの「Add Box」などで当たり判定を追加しましょう。 プレイヤーの当たり判定を確認する タイルマップの当たり判定が効かない場合、プレイヤーの当たり判定も確認する必要があります。 プレイヤーの当たり判定が正しく設定されているか、当たり判定の大きさや形状が適切かを確認しましょう。 タイルマップのレイヤーの当たり判定が有効になっているか確認する タイプマップのレイヤーにはレイヤーごとに当たり判定を有効にするかどうかの設定があります。 当たり判定をつけたいタイルマップのレイヤーのLayer Collidesの設定が有効になっているか確認しましょう。 キャラクターとタイルマップが同一平面上に配置されているか確認する アンリアルエンジンで2Dゲームを作成する場合、内部的には3D空間上にキャラクターや背景を描画、それらを2Dに見えるように描画しています。 2Dゲームの当たり判定を有効にするには、キャラクターと背景を3D上で同一平面上に配置する必要があります。 アウトライナーからキャラクターとタイルマップのプロパティを確認し、「トランスフォーム」の「位置」を確認してそれぞれが同一軸に配置されているか確認しましょう。 XYZ軸のうち絵を表示している面の位置がずれていた場合は、該当の軸の値が同じになるように設定します。 タイルマップの「Collision Thickness」の値が小さすぎる 映像表現を工夫する為などの場合、キャラクターとタイルマップを描画する面をずらしたい事があります。 その場合はタイルマップのCollision Thicknessの範囲内であれば当たり判定を有効にできます。 Collision Thickne...