So, my team and I have been working on our latest project for a couple of weeks now, and we have a player character in game that can interact with objects in game world by walking up to items and pressing left face button (“X” on my xbox controller) detection of whether player is looking at interactable actor is based on a line trace that detects both a) whether player is facing object, and b) how far away player is (based on length of line trace).
This is implemented with an Interactable Objects class blueprint called BP_InteractableActor.
We have since created several blueprints derived (childed to, or extended) from this BP_InteractableActor Class all of which appear to work correctly. I implemented a new one of these children last night, which is a BP_PowderKeg, but I’m having a critical issue. I implemented blueprint and it appears to work properly in game world, but every couple of tests, editor crashes when I am looking at PowderKeg Actor. This crash appears to only be occuring when I look at this actor, but it doesn’t occur all time. I am pretty certain that this must be some kind of bug.
I have attached a link to crash report summary [here.]
I’ve been trying to debug this on my own, but to no avail. Any help is greatly appreciated.
EDIT: Figured a snapshot of line trace implementation would be helpful. This SightLineTrace function is called by a looped timer delegate node OnBegin Play of Player Character blueprint and occurs roughly every 1/100th of a second.
Edit: Reuploaded blueprint image. Also attached a file containing blueprints as COPY files a copy of image, and my full crash log folder from project.
image you attached isn’t showing up for me. Can you try attaching that again?
Please copy information in that window, including Machine ID, and paste it here. If you hit Send, that will help us look it up in our system. It would also be helpful to see logs from project’s \Saved\Logs folder.
Does same problem occur if you move that Blueprint to a new project? It might be helpful to get a look at .uasset for that BP, if you don’t mind zipping it up and attaching it here as well.
For some reason, website is having a hard time whenever I try to update my original post, so I’m just posting here:
Hello , thanks for help. I’ve attached a . of my entire crash log ( crash summary can be viewed here), a copy of png image in this post, and Unreal object text files (.COPY) for each of three blueprints that I believe are involved in this issue.
Hopefully that helps,link text
Thanks. Is this occurring in a packaged game, or while playing in editor? I don’t see any logs in there, just .dmp and .runtime-xml, usually there should be a .log in there (unless it’s from a game’s Logs folder and game was packaged for Shipping).
Just glancing at BP image, I’m guessing it has to do with Trace Complex setting interacting with something in BP you’re doing a trace to. I’ll investigate further. It might be worth disabling that and seeing if same crash occurs.
What kind of template did this project start as? I’d like to drop these assets into a project with similar settings.
This is occurring while playing in editor, With regards to a template, I’m fairly sure we didn’t use one (started with a blank project), but if we did use one, we started with default 1st person. (Sorry I don’t know for sure. My brother set up initial implementation.)
Also, I’ll take a look into Trace Complex checkbox. We kinda need trace complex check for a very specific system in our game. I need to figure out what is causing it because it may be something I can fix by tweaking my mesh.
Also, I did move this stuff into a new project. Currently I’ve been unable to cause it to break in new project.
EDIT: Also, if it may have something to do with a mesh interaction, I can provide mesh if it will help.
Also in process of finding that log file
Edit: Also, just FYI logs folder that I sent you with XML and DMP. I copied folder directly, and there was no .log file in it. Based on what you said, I’m assuming on is supposed to be generated with dump and Xml?
I would actually want to look at .uasset files and all their associated assets, including mesh in question. But since they’re not causing a problem when used in a new project, it might not help me anyway. If you don’t mind, it might be helpful to see whole project.
Are you using binary version of 4.9.2, or have you build from source? Is project a code project, and are these BPs based on custom C++ classes, or is this a purely BP project?
Hm, it’s going to be difficult to tell without engine you’re using, but we’ll try it in 4.9.2 and go from there. If you want to send it privately, best way is to upload it someplace like Google Drive or Dropbox, and then send me a PM on forums. Mine is here:
Unfortunately I’ll be out of office tomorrow and won’t be back until Monday morning. If you’d like, you can also send it to my colleague :
I’ll send him an email giving him heads up, and he can do some of our initial testing in advance until I get back. If he has any questions for you, he’ll ask them here.
Sorry I’ve been really bad with information in all of this… We are using a “custom” version of engine built from source. What I mean by “custom” is this:
We forked latest Allegorithmic Substance build of engine in github, and then merged 4.9.2 changes into Allegorithmic Plugin Build (based on 4.9.0).
Each member of team then cloned this “Hybrid” build and built it from source.
project we are working in is a C++ project that consists mostly of blueprints. Currently we only have two classes written in C++, but hope is that once our prototype flushed out that we will move everything to C++.
I’d definitely like to share whole project, and help you guys find this issue any way I can. However, I’d prefer not to post full project in AnswerHub, is there another good way for me to get you all of project files?
EDIT: Also, A question for future reference, can I provide compressed files in 7zip format?
That will be awesome. I’ll talk to our more senior guy and figure out if there is a way to get you guys our source version of engine, but in theory it should be identical to 4.9.2 with Substance Plugin. I’ll PM a Dropbox link to both of you guys. And await further response. I’m mostly working on assets for project now, but If I I’m messing around in project and I find information that I think might be helpful I’ll post it here. Thanks a ton.
I apologize for delayed response. I am attempting to reproduce your error on my end but thus far have been unsuccessful. Can you post what steps I can take to recreate this on my end with project you sent?
Place BP_PowderKeg blueprint in DevLevel map.
Drive character around level and look at BP_PowderKegActor (look all over surface, and orbit around blueprint). (Try starting PIE and moving straight toward PowderKeg while looking at it).
Move close to actor. For some reason this issue only seems to occur for me when I am up close to actor (at least within interaction range of most games
You may want to turn trace debugging on in player controller to see line traces, but basically idea is that crash is triggered when looking at (tracing across) a specific point on BP_PowderKegActor, although given symmetric nature of mesh and its texture, it’s been difficult to pinpoint where trouble spot is.
From past testing it appears that trouble spot is somewhere on top of mesh near “RIm” of barrel shape.
- Sometimes it doesn’t crash no matter how hard I try to make it. When I end PIE and restart PIE, I often am able to make it crash by repeating process. I’ve never been able to repeat process more than 3 times without forcing it to crash at least once.
I hope that helps. I’m sorry that it’s not best in “reproducibility” department.
I had just blueprinted code for object and I was running up to object to test it when my editor crashed first time. It happens most of time that I get into interact range and start scanning trace over actor.
I hope that helps.
Thanks again so much for looking into this for us.
I was able to reproduce this error and have discovered root cause. Within your custom function “Sword Interact”, you are calling a Set Timer by Function Name node. Time specific functionality should be contained solely to event graph. It appears that calling timers should not be allowed in this instance and is source of your crash. I have entered a bug report, UE-23227, to be assessed by development staff.
As a workaround, move any delay/timer functionality you want to run to a custom event within main event graph. For this particular case, I would call a delay instead of a timer in a custom event and then call explode function.
Awesome, I’ll be linking my team’s JIRA to this page. Thanks so much.
You guys rock!
This is an update on this issue. I am working on same project team as original poster. I implemented suggested workaround; however, issue still persists.
I browsed through code pointed at by stack trace and it appears as though there is some kind of null reference being made inside unrealengine\engine\source\runtime\engine\private\collision\collisionconversions.cpp that reads as follows:
// This function returns single material in all cases other than trimesh or heightfield
if(PxMaterial* PxMat = PShape->getMaterialFromInternalFaceIndex(FaceIndex))
OutResult.PhysMaterial = FPhysxUserData::Get<UPhysicalMaterial>(PxMat->userData); //
// Error thrown here; in static mesh editor for keg mesh Physics asset is set to None.
We are doing a trace to our keg, and when it hits, this section is run it tries to access something that is null. Not entirely sure what kind of work around to look into at moment, but It’ll be thought about more tomorrow.
Note: I have tried several different collision settings on keg mesh and even tried creating and adding a physics material to it to see if problem was resolved. Unfortunately, it appears that either I haven’t fully understood what is going on in this code as my hunches for finding a workaround have mostly failed me at this point.
Thank you very much for your time. If a solution or workaround is found, we would greatly appreciate knowing about it.
Thank you for this information, I have updated bug report to reflect this update.