x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

BluePrintの配列について

BluePrintをActorで作成し、 alt text

それを別のBluePrintで配列(クラスポインタ?)として宣言し、 Addした時に 中身がNoneの状態になります。

alt text

AddしたBluePrint内の変数(この場合LinePos)にアクセスできませんし、 関数(例えばAddTrans)を呼び出す箇所をステップ実行で通過しても アクセス出来なかったとログが出ます。

AddはC++の「new」ではなく、メモリを確保するようなものなのでしょうか? よろしくお願い致します。

Product Version: Not Selected
Tags:
配列.png (64.5 kB)
配列2.png (88.3 kB)
more ▼

asked Apr 13 '14 at 04:58 PM in Japanese

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

10 answers: sort voted first

実際に見ないと少し分かりにくいですが、確かにその流れだと配列に追加されるはずです。SpawnActorで失敗しているかな?SpawnActorのReturn Valueをログして、RailLineのインスタンスがちゃんと生成されているかを確認してみてください。

又はSpawn Even if Collidingにチェックを入れて、結果が同じかどうかを確認してみてください。もしかしてコリジョンの関係で生成されていないかもしれません。

more ▼

answered Apr 15 '14 at 02:40 AM

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

返信ありがとうございます。 調べましたところ、Spawn Even if Collidingに関係なく、Actorは返しているようなのですが、 alt text Add関数に返ってきた値を渡しても配列に追加されていないようです。 この構文ではマズいのでしょうか… ひとまず投稿致します。 よろしくお願いします。

配列4.png (105.3 kB)
more ▼

answered Apr 16 '14 at 02:18 PM

avatar image

jinushi
1 3 5 7

avatar image Shun Sasaki STAFF Apr 17 '14 at 05:58 PM

私の環境で試したところ、問題なく配列に追加されました。スクリーンショットを見ても、おかしなところはなさそうですが。。。 alt text

↓の画像のように、SpawnしたActorの名前を画面に出力してみたらどうなるでしょうか? alt text

正しくSpawnされていれば、「RailLine0」のような文字がViewport左上に出るはずです。

spawn.png (107.0 kB)
spawn2.png (48.8 kB)
(comments are locked)
10|2000 characters needed characters left
Viewable by all users

返信ありがとうございます。 スクリーンショットと同じようにGet Display Nameで名前を取得したところ、 文字列は空っぽの状態(NULL)でした。

MyActor_Cは、Variablesに定義する他は、 Addするまでに何かされていますでしょうか?

よろしくお願い致します。

more ▼

answered Apr 19 '14 at 08:12 AM

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

SpawnActorが失敗しているらしく、ステップ実行を行ってもSpawnしたいActorの中身をトレースできませんでした。 モデルか何かを設定しないとダメなのでしょうか?

more ▼

answered Apr 19 '14 at 03:19 PM

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

直近のログです。

0:06のはBluePrintをいじってる最中に落ちました。 0:15のはステップ実行でSpawnActor通過後に停止させました。 よろしくお願いします。

link text

dump568973888.zip (167.8 kB)
more ▼

answered Apr 19 '14 at 03:24 PM

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

すみません、すっかり見逃してました。 SpawnActorに失敗した際に、ログウィンドウに何がログは出ていないでしょうか?

ログウィンドウはメニューのWindow->OutputLogから表示できます。 Spawnに失敗したときには、よくここに出るログになぜ失敗したのかが表示されるのですが。。。

more ▼

answered Apr 24 '14 at 09:04 AM

avatar image

Shun Sasaki STAFF
253 11 9 12

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

SpawnActorを行います。 表示されるメッセージは以下になります。

LogSpawn:Warning: SpawnActor failed because we are running a ConstructionScript (RailLine_C) LogBlueprintDebug:Warning: Hit breakpoint on node 'K2Node_SpawnActorFromClass', from offset 615 LogBlueprintDebug: Script call stack: Function /Game/D/BP/Rail.rail_C:UserConstructionScript Function /Game/D/BP/Rail.rail_C:SetUp Function /Game/D/BP/Rail.rail_C:CreateRailLine

ConstructionでSpawnしちゃダメ…?

more ▼

answered Apr 24 '14 at 01:25 PM

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

なるほど、ConstructionScript!

今試そうとしたら、Ver 4.0.2ではそもそもConstructionScriptにSpawnActorFromClassを置くことが出来ませんでした。 ぱっと思いつく解決方法は次の2つです。

  1. ActorをSpawnするのではなく、そのActorのComponentとして追加する

  2. EventGraphのEvent Begin Playに処理を移動する

1はいろいろと処理を変更しなくてはいけないので、2で問題ないようでしたらこちらの方が良いと思います。

more ▼

answered Apr 25 '14 at 01:52 AM

avatar image

Shun Sasaki STAFF
253 11 9 12

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

そうですね。ConstructionScriptでSpawnActorを使えません。なぜかというと、ブループリントを移動したり、変数を変えたりする度にConstructionScriptが再度計算されますので、そこでActorをSpawnすると、アクターがすごい数に増えてしまいます。

ConstructionScriptでブループリントを追加したいなら、AddChildActorComponentのノードを使ってみてください。ChildActorがエンジン側で管理されますので、アクターがバカな数になる問題はありません。

more ▼

answered Apr 25 '14 at 07:51 AM

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

ありがとうございます。 2の方法で作成致します。

more ▼

answered Apr 25 '14 at 03:38 PM

avatar image

jinushi
1 3 5 7

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question