GameProgrammar's Night

ゲームプログラム系の覚え書き

UnrealEngine4

UE4の歩き方(情報の探し方)

qiita.com の11日目の記事となります。 UE4の使い方や疑問などを調べる手順を紹介したいと思います。 公式ドキュメント・コミュニティを全検索するフォーム UE4は公式ドキュメントやコミュニティがしっかりしてますので、まずは公式を検索した方がググるより…

UE4 見下ろし2Dゲームの移動処理(TopViewMovement)を作る

久々の2Dゲームネタです。タイトルの通り、見下ろしタイプの2Dゲームの移動処理を担うMovementComponentをつくってみます。 見下ろし移動とは? RPGや縦STGなどでよく見る真上からキャラクターやマップを見ていることを見下ろし視点と言います。 2Dゲームで…

UE4にSpineが来た

※ UE4.15の正式リリースに合わせて、UE4ランタイム実装が正式リリースとなりました。ja.esotericsoftware.com Spineとは、2Dアニメーションにもボーンを取り入れて、3Dアニメーションのように、2Dアニメーションを作れるようにするツールです。誤解を恐れず…

UE4 .15 preview1 RawInputのコードをざっと読んでみた

RawInputとは、PCにつながっている入力デバイスの生データを取得するAPIです。 UE4.15からサポートされることが決まり、DirectInputのみのゲームパッドもこれで動くかなと思いまして、少し該当部分のソースを読んでみました。 速報ということで、読み取れた…

UE4 イベント・関数・マクロ・インターフェイスの違いと使い分け

qiita.comこの記事は、UE4 AdventCalender 18日目の記事です。 BPには、イベント・関数・マクロ・インターフェイスと手続きの実装手段が豊富にあります。 BPはオブジェクト指向言語ではありますが、オブジェクトより手続きを重視した思想になっている現れだ…

UE4 FloatingPawnMovement を使う

FloatingPawnMovementとは、UE4が用意している移動を担うComponentの一つです。 CharacterMovementのように状態(歩き、ジャンプ、しゃがみ)があるわけでもなく、設定したパラメータ通りに位置を変化させるだけのシンプルな実装のMovementComponentです。 シ…

UE4 アクターの入力取得をコントロールする

docs.unrealengine.com docs.unrealengine.com この辺りに書いてあることと独自調査を元にキー/パッド/マウス入力(以下単に入力)で悩まないようにするためのまとめとなっています。 目次 目次 入力を取得できるようにする設定 詳細パネル BPノード 入力取得…

UE4 Navigationができない時に確認すること

何度もNavigationができたりできなかったりして、いい加減嫌になったので本腰をいれて調べてみました。 Navigation(static)が使えるのは以下の条件をすべて満たしている時になります。 AIControllerを持つPawn UE4が用意したMovementComponentを持つPawn Cha…

UE4 BPで2次元配列を実現する

BPは使えるデータ構造が少なく1次元配列しか使えません。1次元配列だけでも組むこと自体はもちろん可能ですが、せめて2次元配列ぐらいは欲しい所です。 というわけで、BPで2次元配列を扱うためのTIPSを紹介します。 1次元配列を2次元配列のように扱うインデ…

UE4 DistanceField フォントで遊ぶ

UE4は、DistanceFieldを使ったフォント描画に対応しています。うちのブログでもかなり前ですが扱った話題でもあり、ちょっといじってみました。 DistanceFieldを使ったフォントテクスチャの利点は、拡大に強かったり、ちょっとした文字装飾をシェーダーで書…

UE4 Configデータをお手軽に取得する

UE4には、起動時オプション*1を扱えるようになるコンフィギュレーションという仕組みがあります。docs.unrealengine.com 基本的にC++で使うことが想定されており、クラスにUPROPERTY(config)などと設定することで自動保存復元もしてくれます。 本当にちょっ…

UE4 C++でイベント/イベントディスパッチャーを作る

UE C++には、デリゲートが用意されています。デリゲートとは簡単に説明しますと、メソッド・関数などを変数に保存して、任意のタイミングで呼び出せる仕組みです。詳しくはググってください。docs.unrealengine.com このデリゲートの中に、BP上でイベント/イ…

UE4 UMGで入力を取得する

UMG(UMGのBP)では、各Widgetごとにマウスイベントを取得することはできますが、通常のキーイベントを取得するこはできません。 マウスイベント キーイベント そのため、UMGでメニューを作りキーで操作したい場合、いつも通りにはいきません。 UMG上でキーを…

UE4 Navigationの方向だけを取得したい!

Navigationとは、NavMeshに従ってPawnを指定した場所に最短距離で壁などにぶつかることなく、進ませてくるUE4の機能です。docs.unrealengine.com 敵のAIを作るのに重宝する機能ですが、現状ではPawnを移動させることにしか使えません。用途によっては、方向…

UMG用にテクスチャアトラスマテリアルを作る

※ UE4.13から、Paper2DスプライトがUMGで使えるようになりましたので、このマテリアルは必要なくなりましたkatze.hatenablog.jp 上の記事の続きです。 前回は急ぎであまり検討できなかったので固定サイズからの切り出しまででしたが、ようやく任意サイズの切…

UnrealEngine4で2Dゲームを作ろう! 「2Dゲームを作るために必要なこと 機能編」

「UnrealEngine4で2Dゲームを作ろう!」の最終回。 2Dゲームにするための設定などを紹介した「基本編」の続きです。 UE4の幾多の機能が2Dゲームだと使えるのか使えないのかを紹介します。すべて検証しているわけではありませんので、自分が使った範囲での紹…

UnrealEngine4で2Dゲームを作ろう! 「2Dゲームを作るために必要なこと 基本編」

2Dゲームとは直接関係のない話題ばかりになっているので、いったん2Dについて一通りまとめて、「UnrealEngine4で2Dゲームを作ろう!」シリーズはいったん締めたいと思います。 UE4に関する話題の更新は、まだネタもあるので続けますのでご安心(?)を。 ドッ…

UnrealEngine4で2Dゲームを作ろう! その17 UMGでテクスチャアトラスを使う

※ 任意サイズに切り出すマテリアルが作れましたので、以下の記事も参照してみてください katze.hatenablog.jp UMGにおいて画像を使いUIを作るにはimageウィジェットを使います。 imageウィジェットは、グラフィックを表示するのにSlateBrushを利用しています…

UnrealEngine4で2Dゲームを作ろう! その16 CreateEventノード!

イベントディスパッチャーってやつがあります。 イベントディスパッチャーにイベントをBindするノードの仕様で、イベントを必ず同じEventGraph上に作らなければならず、イベントディスパッチャーを使い始めるとなかなかスパゲティなコードになってしまい困っ…

UnrealEngine4で2Dゲームを作ろう! その15 BehaviorTreeのDecorator/Task作ってみた

やっとザコのBTが出来た…… pic.twitter.com/Yuwt7GWw8x— katze (@katze_7514) December 26, 2015という感じで、BehaviorTree(以下BT)で敵AIを作ってみた時にわかったことを書きます。 BT全体 BT全体は上図の通りで、移動して攻撃したらちょっと待つを繰り返…

UE4の入力取得の仕組みとプラグインの作り方

「Unreal Engine 4 (UE4) 其の弐 Advent Calendar 2015」 3日目の記事になります。qiita.comUE4エディタ・BPなどが一切でません。C++のみのプログラマ向けの記事になります。ここで示すソースコードは「4.10.0-release」タグのものになります。 UE4の入力取…

UnrealEngine4用プラグイン DirectInputPadPluginの使い方

UE4(Windows)でDirectInputのゲームパッドを使えるようにするプラグインを作りました。github.com DirectInputPadPlugin Ver.0.9のものです。 これ以降、DirectInputのゲームパッドのことをDIパッド(DIPad)、XInputのゲームパッドのことをXIパッド(XIPad)、…

UnrealEngine4で2Dゲームを作ろう! その14 DirectInputプラグイン作った編

github.com前回紹介したJoystickPluginは問題が発覚したために、結局自作しました。ひとまず、katze.hatenablog.jpを参考にソースからビルドしてUE4に追加してください。 通常のゲームパッドイベントとして受け取れるようにしましたので、すぐに使えると思い…

UnrealEngine4で2Dゲームを作ろう! その13 DirectInputを使おう編

UE4でゲームパッドを使おう!(Windows)というお話です。※追記※ JoystickPluginを本採用するのはオススメできなくなりましたので、DirectInputのプラグインを作りました。こちらを見てみてください。 UE4のゲームパッド対応 UE4(4.10現在)が対応してるパッ…

UnrealEngine4で2Dゲームを作ろう! その12 プラグインをソースからビルドする

JoystickPluginについて書いていたんですが、その前章としてプラグインのビルド方法について書きます。 対応バージョンは、UE4.10です。 VS2015をインストールする まずは、UE4.10で対応となったVS2015をインストールする必要があります。 DL先は、「Visual …

UnrealEngine4で2Dゲームを作ろう! その11 見下ろしマップの回り込み処理

たまには「2Dゲーム作ろう!」らしいネタで、キャラクターとマップ上のオブジェクトとの描画順をどうするのかというお話です。 回り込み 回り込みという表現はサークルローカルかもしれないので、実例のgifアニメが下の通り。(マチネででっち上げたので歩き…

DirectXゲームの動画キャプチャ事情

このデモをUE4上で作り終わったあとに動画キャプチャをしようと思ったのですが、愛用していたFrapsがまともに動かなくて困ったんですよねー。1分ぐらい録画すると途中から見られない動画ができ上がる始末。 Fraps自体は大分前に更新が止まっていて、Win7 DX1…

UnrealEngine4で2Dゲームを作ろう! その10 マチネでデモ

まずは、こちらをご覧下さい。現在制作中のゲームのデモになります。 10/25のイベント向けに作ったもので、マチネを利用して作りました。 マチネ マチネは、UE4上でカットシーンを作るための機能でタイムラインを使ってActorに動きをつけることができます。 …

UnrealEngine4で2Dゲームを作ろう! その9 BPでのインスタンス(オブジェクト)生成

BPで各種インスタンス(オブジェクト)の生成についてのまとめです。 newとかプログラマになじみのある用語は使われておらず、調べるのにちょっと苦労したので備忘かねてます。 リテラルや構造体は「Make ***」 即値や構造体は、Makeではじまるノードです。 Ac…

UnrealEngine4で2Dゲームを作ろう! その8 UE4でゲームを実装していく方法

作ってるゲームの最低限の検証が大体終わったので、その辺りから来るお話。 さて、ゲームとして成立させていくにはキャラが表示されて動くだけではダメで、敵を認識して攻撃できたり、HPが0になったらゲームオーバーにしたりしないといけません。 今回は、そ…