質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

Q&A

解決済

1回答

1790閲覧

デバッグや空のアクタに関して。

退会済みユーザー

退会済みユーザー

総合スコア0

UE4

UE4はUnreal Engine(アンリアルエンジン)の第4世代です。 UEは、Epic Gamesより開発されたゲームエンジンです。

0グッド

0クリップ

投稿2019/07/10 16:41

前提・実現したいこと

基本的な文法のノードから勉強したいと思い試しているのですが、
UE4でテストコード(ブループリント)をデバッグするには、どういった方法があるのでしょうか?
ご教示お願いします。

質問1。
Unityで言う所のDebug.Log的な出力はprint stringノードになるのでしょうか?

質問2。
print stringなのですが、出力すると、画面の下の方から文字が消えていきます。
これはもしかして、順に「1,2,3」と出力すると
3
2
1
と出力されるということでしょうか?
このような出力を組みたいのですが、どういったノードを組めばよいですか?
Qキー押下で変数をインクリメントして出力みたいなことがしたいです。

質問3。
print stringは有限な時間で消えてしまいますか?
Durationで出力時間を設定できるみたいですが、画面から消えないようにすることは無理ということでしょうか?
出力時間を長くすればよいだけかもしれませんが、ログとして残り続けることはできないのかなと思いました。

質問4。
レベル上に配置してある空のアクタのクラスブループリントで下記、試したことのノードを組んだのですが、
Qキーを押しても画面に何もログが出力されませんでした。
ちなみに、Sequenceノードがどういう挙動をするのか試したかったです
(Sequenceノードの挙動を知るのに、このようなノードの組み方で問題ありませんか?)。
しかし、同じノードをレベルブループリントで実行したら出力されました。
レベル上に配置してある「クラスブループリントが付いた空のアクタ」は、
Unityで言う所のシーン上に配置してある「スクリプトコンポーネントの付いた空のゲームオブジェクト」のイメージを
していたのですが、違いますか?
なぜ、レベル上に配置してある空のアクタのブループリントが実行されないのでしょうか?

試したこと

イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問1。
Unityで言う所のDebug.Log的な出力はprint stringノードになるのでしょうか?

print stringノードやprint textノードが同等機能を持つものになります。
ちょっと気色が違いますが、3D空間上に表示するDebug Draw Stringなどのノードもあります。

質問2。
print stringなのですが、出力すると、画面の下の方から文字が消えていきます。

基本的にprint stringした内容が一番上に追記されていく形なので一番上が新しいもので下に行くに連れて古い内容になっていきます。

質問3。
print stringは有限な時間で消えてしまいますか?

確実な情報ではないですがBP(ブループリント)上では表示時間を無限にすることはできなかったと記憶しています。
UnrealC++上からはできたはずです。
永続的に画面上に情報を表示したいのであれば(それがデバッグ目的であっても)UMGを使うのが良いでしょう

質問4。

レベル上に配置してある空のアクタのクラスブループリントで下記、試したことのノードを組んだのですが、
Qキーを押しても画面に何もログが出力されませんでした。

これはUnityと異なる所で、基本的に空のアクタはデフォルトではユーザーのキー入力を受け付けません。
配置したアクタを選択し、Auto Receive InputPlayer 0にしてみてください。
そうすることでそのアクタがキー入力を受け付けるようになります。
ただそうすることでQキーの操作がそのアクタに乗っ取られてしまうため他のアクタがQの入力を検知することができなくなってしまいます。
そういった場合の対処はQキーのEventノードをクリックし詳細パネルから Consume Inputのチェックを外してください

投稿2019/07/10 18:10

MMashiro

総合スコア2378

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/07/12 15:05

ご回答ありがとうございます。 print textノードやDebug Draw Stringノードなども試してみました。 なるほど、UnityのDebug.Logと違って、内容が一番上に追記されていく形なのですね。 永続表示ではUMGを使うとよいのですね。 Auto Receive InputをPlayer 0にして試してみて、キー入力を受け付けるのが確認できました。 ありがとうございます。 >基本的に空のアクタはデフォルトではユーザーのキー入力を受け付けません。 こちらをご教示いただいて思い出したのですが、 「Pawnを継承しているクラスのブループリントか、  レベルブループリントでないと、入力値をとれない」という自分のメモがありました。 試しに、今度はモードパネルから「空のポーン」を配置して、ブループリントを作成して、 Qキーでprint stringの入力受付を試してみたのですが、反応がありませんでした。 入力値をとるポーンでも、Auto Receive InputをPlayer 0に設定しなければならないのかなと思い、その設定もしてみたのですが、やはり反応がありませんでした。 既にレベル上にある空のアクタのAuto Receive InputはDisabledに設定してあります。 ポーンはこの他に入力を受け付けるのに必要な設定がありますか?
MMashiro

2019/07/12 16:00

ちょっとその件に関しては、エンジンのソースコードのほうを追わないとなんとも言えない内容っぽいです。 基本的にPawnを親クラスに持つBP(Character等も)でキー入力を受け付けたい場合はAuto Receive InputではなくAuto Possess PlayerをPlayer 0に設定して プレイヤーキャラクター自体をそのBPにしてしまうのが一番手っ取り早いと思います。
退会済みユーザー

退会済みユーザー

2019/07/13 10:17

ご回答ありがとうございます。 Auto Possess PlayerをPlayer 0に設定してキー入力を受け付けられることを確認致しました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問