ソケットからアクタを出現させるbpが動作しない。

UE4 Answerhubに質問させていただくのは初めてなので、失礼・不足な点等があったらごめんなさい。

私は現在、UE4.19にて入門書?である「Unreal Engine 4で極めるゲーム開発」という書籍を片手に1から勉強している者(つまり初学者)なのですが、その最中に本の示すとおりに行ってみたもののエラーが返ってきて動作しないブループリントに出くわし、いろいろ自分で調べてみたものの答えらしいものは出てこなかったので質問させていただきたいと思います。

まず、躓いたのは以下のような関数のBPを組んでいた時です。

コンパイルはエラーもなく、キチンと緑のチェックマークが表示されたのですが、実際にプレイを押して「コイン」を1枚以上持っている状態で当関数を呼び出すキーを押してみると枚数が1枚も減らず、ログにはエラーが表示されるようになってしまいました。
エラーメッセージは

ブループリントランタイムエラー: Attempted to access PNPickupCoinActor_C_0 via property CallFunc_FinishSpawningActor_ReturnValue, but PNPickupCoinActor_C_0 is pending kill from function: ‘DropCoin’ from node: Set Simulate Physics in graph: DropCoin in object: PNPlayerPawn with description: Attempted to access PNPickupCoinActor_C_0 via property CallFunc_FinishSpawningActor_ReturnValue, but PNPickupCoinActor_C_0 is pending kill
が2回、
ブループリントランタイムエラー: Accessed None from function: ‘DropCoin’ from node: Set Simulate Physics in graph: DropCoin in object: PNPlayerPawn with description: Accessed None

ブループリントランタイムエラー: Accessed None from function: ‘DropCoin’ from node: Add Impulse in graph: DropCoin in object: PNPlayerPawn with description: Accessed None

がそれぞれ1回ずつ表示されておりました(以下画像参照)。

何か足りない情報等あれば補足しますので、教えてくださると嬉しいです。
よろしくおねがいします。

ちなみに、SpawnActorのノードにピンを繋がなければ枚数だけ減ります。なので、おそらく右半分のどこかがいけないのだとは思うのですが……

同じところで躓いたものの試行錯誤の末に解決できました。

結論から言えば、ソケットの設定位置がプレイヤーに近すぎるがゆえに生じるエラーでした。プレイヤーの頭上にあるソケット位置を大きく上にずらしてみたり、あるいは左右にずらしてみれば、それだけでうまくいくでしょう。ソケット位置がプレイヤーに近すぎると、消滅すべきコインアクターが発生とともに取得されてしまっている(あるいはそもそも発生がうまくいかない)がために、破壊すべきオブジェクトを破壊できない pending kill のエラーが表示されるというはこびなのだと思われます。,

1 Like