I ran into several crashes related to the layered blend per bone node. To reproduce this (I am using a github build of UE 4.4.1):
- In an Anim Graph, add a new layered blend per bone node.
- Right click on it and add a blend pin.
- Copy and paste that node.
- The newly copied node now has a base pose, and a blend weights 0. It no longer has a blend pose 0. This will cause a problem later.
- Right click on the new node and add a blend pin.
- Right click on the 2nd blend weight and try to remove it. The Editor will now crash at this point, without any sort of error message or log entry.
I initially ran into this when trying to copy and paste one of these nodes from one animation blueprint to another. But, it also happens within the same animation blueprint.
For extra fun. If you stop at stage 4 and save your asset/project, it will assert if you try to run a debug build in the debugger at line 14 in AnimNode_LayeredBoneBlend.cpp. It runs fine in a development editor build at least, so you can fix the anim graph by deleting and recreating the troublesome node.
The crash call stack for that looks like:
UE4Editor-Core-Win64-Debug.dll!FDebug::AssertFailed(const char * Expr=0x000007fee77e6a68, const char * File=0x000007fee77e9300, int Line=14, const wchar_t * Format=0x000007fee77e7e44, ...) Line 173 C++
> UE4Editor-Engine-Win64-Debug.dll!FAnimNode_LayeredBoneBlend::Initialize(const FAnimationInitializeContext & Context={...}) Line 17 C++
UE4Editor-Engine-Win64-Debug.dll!FPoseLinkBase::Initialize(const FAnimationInitializeContext & Context={...}) Line 38 C++
UE4Editor-Engine-Win64-Debug.dll!FAnimNode_Slot::Initialize(const FAnimationInitializeContext & Context={...}) Line 14 C++
UE4Editor-Engine-Win64-Debug.dll!FPoseLinkBase::Initialize(const FAnimationInitializeContext & Context={...}) Line 38 C++
UE4Editor-Engine-Win64-Debug.dll!FAnimNode_Root::Initialize(const FAnimationInitializeContext & Context={...}) Line 16 C++
UE4Editor-Engine-Win64-Debug.dll!UAnimInstance::InitializeAnimation() Line 294 C++
UE4Editor-Engine-Win64-Debug.dll!USkeletalMeshComponent::InitializeAnimScriptInstance(bool bForceReinit=true) Line 248 C++
UE4Editor-Engine-Win64-Debug.dll!USkeletalMeshComponent::InitAnim(bool bForceReinit=true) Line 224 C++
UE4Editor-Engine-Win64-Debug.dll!USkeletalMeshComponent::SetAnimInstanceClass(UClass * NewClass=0x000000000fe50f00) Line 1180 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FAnimBlueprintThumbnailScene::SetAnimBlueprint(UAnimBlueprint * InBlueprint=0x000000000d8ebb00) Line 787 C++
UE4Editor-UnrealEd-Win64-Debug.dll!UAnimBlueprintThumbnailRenderer::Draw(UObject * Object=0x000000000d8ebb00, int X=0, int Y=0, unsigned int Width=256, unsigned int Height=256, FRenderTarget * RenderTarget=0x0000000016bf3188, FCanvas * Canvas=0x0000000000639f10) Line 25 C++
UE4Editor-UnrealEd-Win64-Debug.dll!ThumbnailTools::RenderThumbnail(UObject * InObject=0x000000000d8ebb00, const unsigned int InImageWidth=256, const unsigned int InImageHeight=256, ThumbnailTools::EThumbnailTextureFlushMode::Type InFlushMode=NeverFlush, FTextureRenderTargetResource * InTextureRenderTargetResource=0x0000000016bf3120, FObjectThumbnail * OutThumbnail=0x0000000000000000) Line 3487 C++
UE4Editor-UnrealEd-Win64-Debug.dll!FAssetThumbnailPool::Tick(float DeltaTime=0.0593504906) Line 876 C++
UE4Editor-ContentBrowser-Win64-Debug.dll!SAssetView::Tick(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 906 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 249 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-SlateCore-Win64-Debug.dll!SWidget::TickWidgetsRecursively(const FGeometry & AllottedGeometry={...}, const double InCurrentTime=16791376.649830770, const float InDeltaTime=0.0593504906) Line 257 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::TickWindowAndChildren(TSharedRef<SWindow,0> WindowToTick={...}) Line 561 C++
UE4Editor-Slate-Win64-Debug.dll!FSlateApplication::Tick() Line 898 C++
UE4Editor-Win64-Debug.exe!FEngineLoop::Tick() Line 2115 C++
UE4Editor-Win64-Debug.exe!EngineTick() Line 54 C++
UE4Editor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine=0x00000000007e3a56, HINSTANCE__ * hInInstance=0x000000013fe70000, HINSTANCE__ * hPrevInstance=0x0000000000000000, int nCmdShow=10) Line 136 C++
UE4Editor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance=0x000000013fe70000, HINSTANCE__ * hPrevInstance=0x0000000000000000, char * __formal=0x00000000007e45b6, int nCmdShow=10) Line 190 C++
UE4Editor-Win64-Debug.exe!__tmainCRTStartup() Line 528 C
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown