Opened a copy of my project in the 4.5 preview build, I can play in editor fine, but when I hit escape the entire IDE just locks up and has to be exited from task manager.
I’ve tried this 3 times and it’s consistently the case with my project. It DOES NOT happen when doing a new 3rd person template project in 4.5, and it DOES NOT happen when opening other older projects (for example, when opening a blank 3rd person template created in 4.2)
MORE INFO: The crash does not happen when I simulate. It DOES happen when I simulate with an instance of MyCharacter BP placed in the level (not possessed, obv). It DOES crash when MyCharacter BP is modified to have no AnimBP (set to use a single anim Asset of none). The crash is evidently being caused by MyCharacter BP.
EVEN MORE INFO: If I wait about 5 minutes AFTER the crash occurs, UE will eventually return an “Infinite Loop Detected in Blueprint: MCSkeletalMesh Anim Blueprint”. Okay, so that must be the problem, right? Except the Anim BP compiles TOTALLY FINE and doesn’t report any infinite loop errors!
MY SUSPICION is that this is caused by an error in the new BP dependency checks. I use an Interface BP to pass data back and forth between the Player BP and the Anim BP, and they cross communicate… e.g. the Anim BP gets an from the Interface BP called in the character BP, plays an anim, and uses a Notify in that Anim to pass an event back to the Character BP using the Interface BP. This works TOTALLY FINE and produces no errors in any other version of the editor (up to and including 4.4.3), but it seems to be causing issues here…?
I do not have .DMP files, but I do have some log files. This is the most recent one (generated today, same crash). It doesn’t really seem to contain anything of note; again, the game opens PIE fine, it’s only on exiting it that I get an (eventual) infinite loop error that locks up the system.
(can’t attach the log so I’ve copied its contents to a text file) link text
DxDiag reports no problems found, which I wouldn’t expect it to (again, nothing has changed at all about this project or my machine aside from installing 4.5 preview)
Actually, this might be more helpful! I decided to let the game idle in its frozen exit state while I went to get coffee, so it would actually pop up the “infinite loop detected” error.
The log produced by THAT session at least shows the infinite loop error. Log number 2
Remember though: I can play in editor fine. You can see the “shot shot shot hit hit hit” debug print strings from me playing the game just fine. The crash happens only when I try to EXIT the PIE session. Of relevance is that there is no LOOP of any kind in my anim BP; there is neither a portion of the BP where the execution path loops back on itself (i.e. a manual loop) or an auto loop node (like a ForLoop or a ForEachLoop) anywhere in that entire BP. And if there was, one would expect that the runaway loop (1,000,000 operations?) would show up sometime DURING play, which is when it’s happened for me in the past, rather than only upon EXITING play. right?
Now, here’s where things get REALLY interesting, and this is what leads me to believe the problem has something to do with the Interface BPs and BP dependency checks which have changed in the move to 4.5
Just as a “let’s see”, I went ahead and deleted EVERYTHING in my AnimBP. The event graph is literally BLANK (I mean it says Right-Click To Add Nodes blank), and the Anim Graph is just a single “Idle” anim connected directly to the output pin. I deleted everything else and recompiled (which, by the way, took an inordinate amount of time, like minutes of time, and I have no idea why).
I try to PIE and it works (albeit with no player animation), and when I exit… Another lock-up, another “Infinite Loop Detected” error!
How can there be an infinite loop in a graph which is literally empty? It performs zero operations, that makes no sense!
Here’s the log from THAT session (note: the infinite loop error isn’t showing up because after 10 minutes UE was using like 5GB of memory so I force quit it before it could finally return the warning message, but it’s the same progression of symptoms)
Force deleting the animBP (And replacing it with a reference to a functional animBP for another character) results in this message:
AnimBlueprint /Game/ML/MC/Blueprints/CharacterAnim.CharacterAnim is in use.
Running the editor with ‘-NoLoadStartupPackages’ may help if the object is loaded at startup.
External referencers of AnimBlueprint /Game/ML/MC/Blueprints/CharacterAnim.CharacterAnim:
Function /Game/ML/MC/Blueprints/MyCharacter.MyCharacter_C:ExecuteUbergraph_MyCharacter (1)
Shortest reachability from root to AnimBlueprint /Game/ML/MC/Blueprints/CharacterAnim.CharacterAnim:
AnimBlueprint /Game/ML/MC/Blueprints/CharacterAnim.CharacterAnim [target] (standalone)
One or more assets were partially consolidated, yet still cannot be deleted for some reason. It is highly recommended that you restart the editor without saving any of the assets or packages.
Potentially Affected Packages:
Then, if I PIE and exit, I get the same lock-up, despite the relevant BP no longer existing.
If I do a FORCE DELETE on the AnimBP, I still get the lock-up… and now I have to reimport my project because that AnimBP is gone
Our devs looked through your logs and without a project with a reproducible bug, we aren’t sure of the cause. Would you be willing to private message me a link on the forums to download your project? Dropbox or Googledrive is preferred.
Second issue of infinite loop when grab is expected to be a sort of input handling issue. It seems while holding the the enemy, it still is triggering grabbing enemy. I added a quick check if I’m carrying enemy after pressed", it doesn’t loop anymore.
We’re working on improving this process/detection better.
AHA! I see what the problem is! Note the “Switch on (bad enum)”; Switch On EEndPlayReason is no longer working the same because in 4.5 you added a 5th value to that Enum (Quit) which deprecated the old node!
This is what it should look like, screengrabbed from the character BP in 4.4.3
This explains why it worked before; in 4.5, the Switch On has been changed. I verified that by replacing the “bad enum” with a newer copy of EEndPlayReason, this works.
As for the grab loop, that definitely shouldn’t happen. I verify all my attacks with print strings and I only get one “Grab!” note when I execute it successfully in 4.4.3… I have no idea what would have changed.
EDIT: The reason this seems to happen is that grabs are triggered by a BeginOverlap event. Evidently, in 4.5, whether or not an overlap “begins” versus continuing on is handled differently. The bool check fixes it, though. Also, the particle collision problem can be resolved by changing the particle collision channel, saving, and changing it back. I guess it defaults to something weird since the change over. So at this point I’m on-track to work with 4.5! Thanks so much!