2020-01-01から1年間の記事一覧

【UE4】リターゲット AポーズをTポーズに変更する

Female Movement Animset Proを購入しました。 クオリティ高いですよね! このアニメーションをVRoid出力のVRMに適用しようと思ったのですが、リターゲットするときの画面がTポーズとAポーズで一致しません。 このまま、リターゲットすると。。。 ひぇっ・・…

【UE4】PIEだと大丈夫なのに、スタンドアローンやパッケージでCPUがぶんまわる

始めてプロジェクトをパッケージ化して実行したら、CPUの使用率が40%ほどになって驚きました。 何もアクターを配置していないUMGだけのレベルでした。 コンソールコマンドの「stat unit」で各処理の処理時間がわかるそうなので実行 すると、上記のように表…

【UE4】キャラクターBPのコリジョンを設定する

キャラクターBPに所属するすべてのStaticMeshComponentのコリジョンを設定する方法です。 下図だと、Cylinder、Cube、Cone5、Cone6のコリジョンを設定します。 Default Scene RootからGet Children Componentsを呼び出して、StaticMeshComponentを取得。 そ…

【UE4】継承したクラスのデフォルト値を編集する

クラスのデフォルトから、デフォルト値を編集できます!! この値はコンストラクションスクリプトより早く設定されるようです。

【UE4】スポーンアクターへのタグの付け方

SpawnのReturnValueからGetTagsを呼び出し、それにADDすればタグが設定できるようです。 タグを持っているかは、ActorHasTagで判定できるようです。

【UE4】レベルに依存しない処理を書く(GameInstance)

全レベルで共通の処理を記述することが出来るGameInstanceというものがあるらしいです。 似たようななんでも記述できるObjectはActorのスポーン処理が出来ません。 スポーン処理がしたい場合はGameInstanceが必須です。 GameInstanceを作成したら、プロジェ…

【UE4】Collisionの範囲内のActorを取得する

GetOverlappingActorsです。 呼び出しコストはどうなんでしょうか・・・?

【UE4】クラス名の参照

クラスをスポーンするときの第一引数のクラスを毎回コンボボックスから選択していた私です。 1個だけスポーンさせるならこれで良いですが、複数種類スポーンするときにちょっと不便ですよね。 今まで特定の子クラス4つをスポーンさせて、配列に設定する処理…

【UE4】UMGのテキストを変数化する

UMGのテキストを動的に変更しようと思ったときに一瞬悩みました。 Textを配置してイベントグラフで見ても変数と表示されません。 IsVariableにチェックを入れると表示されるようになります。(あとたぶんコンパイルも必要です) テキストの文字を変更するた…

【UE4】無料アセット紹介(Twinmotion Materials)

Twinmotion Materialsです。 テクスチャ集っぽいですかね? Showcase Museum

【UE4】無料アセット紹介(Science Laboratory)

Science Laboratoryの紹介です。 Showcase(全景) Overview(各モデル)

【UE4】アニメーションの終わりを通知する

死亡アニメーションが終わった直後に、キャラクターをDestroyActorしたいですよね。 そういう通知をしてくれる処理があります。 アニメーションのタイムラインを右クリック/通知を追加/新規作成 名前を付けます。 ※右クリックする行によって表示内容が異なり…

【UE4】アニメーションが表示されないことがある

EpicGamesの無料アセットである「Minion_Lane_Siege_Dusk」のアニメーションを設定している時です。 事件は起きました。 アセットのアニメーションでは「FireA」はきちんと表示されるのに StateMachine上ではスケルトンが表示されなくなったのです。 ステー…

【UE4】レベルに配置したアクターの近くにスポーン出来なくする

タワーディフェンスで、すでに配置した兵器の近くに兵器を置けなくするようにしました。 下図は左側がすでに配置した兵器。右側がマウスに追従して、置く位置を決定する前の兵器。 すでに配置した兵器から離れていると配置できますが、近づくと下図のように…

【UE4】配列操作

レベル上のアクターの一覧はGetAllActorsOfClassで取得できますが、これは毎フレーム呼ぶには遅すぎるようです。 なので、アクターをスポーンする毎にそのスポーンを配列に記憶するしかないと思われます。 以下の手順で出来ます。 ①SpawnActorXXXの戻り値を…

【UE4】AIControllerが移動してくれない

AIControllerを動かすためにはNav Mesh Bounds Volume(ナビメッシュバウンズボリューム)が必要ですが、それを配置しても敵が移動しなくて困っていました。 状況は以下のような感じです。 丸で囲った敵を目的地まで移動させたかったのですが、その場から一…

【UE4】ランドスケープのウィンドウを再表示

ランドスケープのこのウィンドウを閉じてしまって、どうやったら再表示できるのかわからなくなったので、備忘録がてらの記事です。 ↓コレです 答えは至ってシンプル モード/ランドスケープから表示できました!

【UE4】敵が死んだときに、CharacterMovementから切り離す。(DetachFromControllerPendingDestroy)

敵キャラクターをCharacterMovementで動かしている時に、HPが0以下になって、死亡アニメーションを実行しても、そのアニメーション実行しながら動いてくると思います。 それを解消するのがDetachFromControllerPendingDestroyです。 HPが0以下になった時に、…

【UE4】無料アセットの紹介

EpicGamesが提供している無料アセットをインデックスがてら紹介します。 かなりクオリティ高いですので、このアセットだけでもゲーム作れると思います。 私の配信でやりましたのでこちらを見てもらうと、よりわかりやすいかもしれませんのでご参考にどうぞ!…

【UE4】発射物の寿命を設定する

STGとかアクションゲームで弾を発射することがあると思います。 その弾が対象にHITせずに画面に残ると処理が徐々に重くなります。 それを防ぐために一定時間後に消滅するパラメータがあります。 InitialLifeSpanです! 単位は秒だと思います。

【UE4】マウスの先にPawnを配置する

タワーディフェンスを作っています。 マウスの先に兵器を配置する処理を実装するのに苦労したので、備忘録がてらまとめます。 やり方は泥臭いですが、以下の方法で実装しました。 ①マウスカーソルの位置から、3D空間への衝突計算を行い、衝突した座標を取得…

【UE4】冗長で長い処理を見やすくするSequence

横に長くなりがちなときに使えるSequence! レベルブループリントのBeginPlayは初期化処理が多く、横長になりがちです。 こんな感じに。。。 処理を一時的に辞めたいときに、処理を切って、繋げるのも手間ですよね。 そんな時にSequenceが便利です。 上から…

【UE4】固定カメラの切り替え

キャラクターがいないゲームなどでレベル上にカメラを配置している時に、カメラを切り替える方法です。 バージョン:4.25.3 下図のように、カメラを2つ配置しています。 レベルブループリントに以下のスクリプティングをすることで、Zキーでカメラ1、Xキー…

このブログについて

初めまして! 夢乃つぐみです。 ゲーム制作が趣味なので、その過程で得た知見やTIPSや備忘をブログとして纏めるためにブログをはじめました。 現在はUnrealEngine4を使ってタワーディフェンスゲームを作っています。 良ければ見に来てください! www.youtube…