FC2ブログ

凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

| PAGE-SELECT | NEXT

≫ EDIT

UE4 Bind Event to ノードでカスタムイベントをデリゲートで接続することができない時の対応(Bind Event to、Custom Event)

「Bind Event to On Destroyed」などの「Bind Event to」系ノードなどを作成した場合に
カスタムイベントを接続しようとしたらできない! なんでや!と思ったので調べてみました。

そうしたらこんな記事が。

・【UE4】OnDestroyedなどを、カスタムイベントにデリゲートする
https://satcreative.hatenablog.com/entry/2016/12/04/225549

先にカスタムイベントを作るとDelegateできない
行き詰って箇所は、「18.3.3 イベントをイベントにバインドする」の項において、[イベントを OnDestroyedとバインドする]と、カスタムイベント[Respawm Player]をデリゲートで結ぶことができない……というもの。

カスタムイベントを後から作成して解決
これはもう世界が認めたカリキュラムな人に聞くしかないとハンバ諦めていたのだけど、どうやら解決。
まず先に、[イベントを OnDestroyedとバインドする]を作成する。
次に、上記で作成した[イベントを OnDestroyedとバインドする]の[Event]から線を引っ張ってきて[イベント追加]>[カスタムイベントを追加]をすると、デリゲートされたカスタムイベントが作成できる。


ということなのでまとめると

・カスタムイベント(Custom Event)を作成してから接続しようとすると失敗する。
・「Bind Event to」系ノードのイベント(Event)入力から線をひっぱってカスタムイベントを作成すると接続できる。


といったものみたいです。
完全に罠なのでは…。上記記事がとても助かりました!

とりあえず自分のほうでも実践して検証。

まずカスタムイベント(Custom Event)を作成してから「Bind Event to」系ノードに接続してみます。
BindEvent000.png
だめですね。困惑!

「Bind Event to」系ノードの入力「Event」から線を引っ張ってカスタムイベントを作成します。
BindEvent001.png

そうするとちゃんと接続されたカスタムイベントが作成されます。
BindEvent002.png

ここらへんネットに記事があって助かりました。
UE4は駄目だったときにどうしたらいいか。というのがもっとわかりやすいといいなって思いました。
スポンサーサイト

| UE4 | 17:58 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 半透明メッシュの描画順を強制的に指定する(Translucency Sort Priority)

半透明メッシュの描画順を強制的に指定する方法です。

こちらのツイートを見かけたのでメモです。

というわけで調べてみました。

「MeshComponent」の「Translucency Sort Priority」という項目がありました。
SortPriority001.png
この値をセットすることで半透明の描画順を強制的に制御できるようです。

ただし、
SortPriority000.png

警告:レンダラーが正確にソートできなくなってしまうため、自身で何をしようとしているのか分かっていなければ、デフォルト値以外に決して設定してはいけません。動的ゲームプレイエフェクトでは特に問題となります。

こんなポップアップがでるので、特殊な場合を除きいじらないほうがよさそうですね。

| UE4 | 15:58 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 「Spawn Actor of Class」でスポーンさせるサブレベルを指定する(Spawn Actor of Class)

「Spawn Actor of Class」ノードでアクターをスポーンさせるときに
サブレベルを指定してスポーンさせる方法です。

こちらのツイートを見かけたのでやってみました。

こちらの記事のようですね。

・Need help spawning to SubLevel!
https://answers.unrealengine.com/questions/712411/need-help-spawning-to-sublevel.html?sort=oldest

「Spawn Actor of Class」ノードでアクターをスポーンさせるときに
「Owner」を指定すると、その「Owner」が存在するレベルと同じレベルにスポーンさせることができるようです。

とりあえず「Spawn Actor of Class」ノードで普通にスポーンしてみます。
SpawnObject001.png
「Owner」指定なしだとこんな感じで配置されました。
SpawnObject000.png
パーシスタントレベルに配置されました。普通ですね。

次に「Spawn Actor of Class」ノードに「Owner」を指定してスポーンしてみます。
SpawnObject003.png
「Owner」に指定したアクターはサブレベルに配置してあります。
結果はこんな感じに。
SpawnObject002.png
サブレベルに配置されました(AddLevelSubというのがサブレベル)

結構使えそうな処理になりそうですね。

| UE4 | 16:07 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 パッドのスティック入力の感度を調整する(Dead Zone)

スティック入力の値を取得するときに遊びとして一定の傾きはクランプされ、
入力がされていなかったと判定する処理がはいっています。
デフォルトだと固いと思った場合に入力の感度を調整する方法です。

「プロジェクト設定」を開き、「エンジン」の「インプット」を選択します。
DeadZone000.png

その中の「Axis Config」にある「Dead Zone」を設定します。
DeadZone001.png
上記デフォルトだと「0.25」になっているため、
スティックの傾きの1/4以下の場合は入力として受け付けない。
といったもののようですね。

この「Dead Zone」は各スティックの軸ごとに存在しています。
DeadZone002.png
「Gamepad_LeftX」「Gamepad_LeftT」「Gamepad_RightX」「Gamepad_RightY」
左スティックと右スティックの上下と左右ごとに設定できる感じですね。

実はこれそのままの実装だと問題があり、
各軸ごとにクランプされているため、上ちょっと左といった入力を行っても
左右がクランプされているため、真っ直ぐ上と認識されてしまいます。
(なんでこんな実装に…)

というわけで疑問に思っていたところ
という感じらしいので
「Dead Zone」の設定は0.0にして、自力で円形クランプしてあげるのが良さそうです。

| UE4 | 14:11 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 データキャッシュの保存場所を変更する(Derived Data)

UE4のデータのキャッシュ保存場所を変更する方法メモです。

こういったツイートを見かけたのでメモです。

「エディタの環境設定」の「一般」の「グローバル」を選択します。
データキャッシュ000

ここにある「Derived Data」で場所を指定します。
データキャッシュ001
ローカルと共有の2つがあるみたいですね。

詳しい内容はこちらが参考になると思います。
いつもお世話になってます!

・UE4 DerviedDataCacheについて
http://unrealengine.hatenablog.com/entry/2016/04/07/210000

| UE4 | 11:40 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT