# BeginPlayが2度処理されるのは何故？

**URL:** <https://forums.unrealengine.com/t/beginplay-2/490042>\
**Category:** Community & Industry Discussion\
**Tags:** beginplay, unreal-engine, question\
**Created:** [October 20, 2021, 6:48am UTC](https://forums.unrealengine.com/t/beginplay-2/490042 "2021-10-20T06:48:24Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![MGPC228](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MGPC228](https://forums.unrealengine.com/u/MGPC228)\
**Post date:** [October 20, 2021, 6:48am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/1 "2021-10-20T06:48:24Z")

</div>

初質問です。よろしくお願いします。

レベルブループリントに書いた｢イベントBeginPlay｣の処理がいつの間にか2度行われるようになり、  
｢Add to Viewport｣したウィジェットが2重になってしまって困っています。

｢イベントBeginPlay｣は一度だけ呼び出されるはずですが何が原因で起こっていいるのでしょうか？

画像は処理を簡潔化してテストしているところです。

 ![350646-hello.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/c/c/c/ccc2a8333e5967baca6c36d08274fd655f75a555.jpeg)

---

<div class="post-metadata">

**Author:** ![LunaNelis](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/lunanelis/32/1194690_2.png) [@LunaNelis](https://forums.unrealengine.com/u/LunaNelis)\
**Post date:** [October 20, 2021, 7:22am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/2 "2021-10-20T07:22:00Z")

</div>

画像と状態から察するに、WidgetをAddtoViewportしているActorが２つ存在している。というのが濃厚かと思われます。

画像で言うところのEscapeLoomのActorがいくつ存在するか、確認してみることをお勧めします。

確認方法としては、GetAllActorofClass関数でクラスを指定して、帰ってきた配列のLengthノードで数を調べるなどがあります。

他の状況はわからないため確実な解決策とはなりませんが、ワールドにすでに置かれているのにSpawnActorで生成したりすることでこういった状況になる場合があります。

---

<div class="post-metadata">

**Author:** ![LunaNelis](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/lunanelis/32/1194690_2.png) [@LunaNelis](https://forums.unrealengine.com/u/LunaNelis)\
**Post date:** [October 20, 2021, 7:26am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/3 "2021-10-20T07:26:44Z")

</div>

補足です。

GetDisplayNameノードを使うことで、そのActorの固有名を取得できます。

以下の画像のように繋いで、もし違う名前が表示されたのであれば同じActorが２つ存在しているのはほぼ間違いないと思われます。

![350629-1.png](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/0/f/20f44bd7a07d2e8019d46eeee5913d8194da56a6.png)

ActorName

ActorName\_2

のようなログが出るはず。

---

<div class="post-metadata">

**Author:** ![Anonymous\_e1c8644cf67ec3c555f1861e5cb9108c](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Anonymous\_e1c8644cf67ec3c555f1861e5cb9108c](https://forums.unrealengine.com/u/Anonymous_e1c8644cf67ec3c555f1861e5cb9108c)\
**Post date:** [October 20, 2021, 7:40am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/4 "2021-10-20T07:40:13Z")

</div>

レベルブループリントで生じている問題のようですので、actorが原因の可能性は低そうです。  
actorのBeginPlayイベントが複数回発生している場合は、LunaNelisさんの仰っているような原因がありがちですが、レベルブループリントでは通常ありえない挙動です。  
もしプロジェクト固有で生じている場合はバグの可能性があります。

---

<div class="post-metadata">

**Author:** ![MGPC228](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MGPC228](https://forums.unrealengine.com/u/MGPC228)\
**Post date:** [October 20, 2021, 8:15am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/5 "2021-10-20T08:15:04Z")

</div>

返信ありがとうございます。  
uponHaveFunさんのおっしゃる通りアクターではなくレベルBPなのですが、  
LunaNelisさんのご教授通りノードを繋いでみたところ、｢EscapeLoom14｣｢FirstPersonExampleMap8｣と表示されました。  
末尾の数字は何の数字かわかりませんが、どうやら古いレベル｢FirstPersonExampleMap8｣※別名保存で元は消去済みで存在しない　が原因の様に思います。

プロジェクトフォルダ内にも｢FirstPersonExampleMap｣はどこにも存在していないので、uponHaveFunさんのおっしゃる通りバグなのでしょか？それか私自身の操作に問題があったのでしょうか？

 ![350661-self.jpg](https://d3kjluh73b9h9o.cloudfront.net/original/4X/8/1/5/8156c78e88a94158f639ff5a45f5c250ddede932.jpeg)

---

<div class="post-metadata">

**Author:** ![Anonymous\_e1c8644cf67ec3c555f1861e5cb9108c](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Anonymous\_e1c8644cf67ec3c555f1861e5cb9108c](https://forums.unrealengine.com/u/Anonymous_e1c8644cf67ec3c555f1861e5cb9108c)\
**Post date:** [October 20, 2021, 8:34am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/6 "2021-10-20T08:34:54Z")

</div>

Escape\_Loomはプロジェクト設定のデフォルトマップまたはスタートアップマップに設定されているマップでしょうか？  
でしたら、プロジェクト設定で上記設定を1度クリアした後、再度Escape\_Loomに設定し直し、プロジェクトを再起動したらどうなりますでしょうか。  
プロジェクトのGameInstance設定などでも、複製したものを別名保存した場合にこのような”設定のし直し”が必要になるケースがあります。

---

<div class="post-metadata">

**Author:** ![T\_Sumisaki](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@T\_Sumisaki](https://forums.unrealengine.com/u/T_Sumisaki)\
**Post date:** [October 20, 2021, 8:51am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/7 "2021-10-20T08:51:23Z")

</div>

昔からまれにある現象で、umapの定義が何らかの影響で壊れるのか、初期化時にLevelScriptActorのInstanceが複数生成されることがあるようです  
AnswerHubでもForumでもそこそこの件数の相談が上がっています  
観測範囲上では原因はつかめていないようで、もし再現性があるようであればバグ報告してみてください

* * *

以下、対症療法を提示します  
手元では以下の手順で事象を解決できています

- 対象のLevelのLevelBlueprintを開き、 `ClassSettings` の `GenerateAbstractClass` をONにする
- 一度コンパイルする
- 対象のLevelをリロード（再度オープン）する
- `GenerateAbstractClass` をOFFに戻し、コンパイルする

---

<div class="post-metadata">

**Author:** ![MGPC228](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MGPC228](https://forums.unrealengine.com/u/MGPC228)\
**Post date:** [October 21, 2021, 12:11am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/8 "2021-10-21T00:11:52Z")

</div>

回答ありがとうございます。  
この方法で無事解決いたしました。

昔からある現象だったのですね…問題の探し方が分からず回答頂き助かりました。

---

<div class="post-metadata">

**Author:** ![MGPC228](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MGPC228](https://forums.unrealengine.com/u/MGPC228)\
**Post date:** [October 21, 2021, 12:16am UTC](https://forums.unrealengine.com/t/beginplay-2/490042/9 "2021-10-21T00:16:03Z")

</div>

上記の方法試してみましたが解決できませんでした…  
別の方法で解決する事が出来ました。  
回答ありがとうございます、たすかりました。
