- The Unreal Engine uses version 4.22.3
 
- Spin Runtime uses 3.7 Beta. Because of the addition of UMG widgets.
 
I have built and tested a simple sample after integration, 
but after allocating memory, the allocation might fail.
<Test case>
- Play spine with umg
 
- Play spine from 3D Actor
 
- Play by adding a spine to the level sequence
 
- Skin change.
 
<call stack>
 	UE4Editor-Core.dll!rml::internal::ExtMemoryPool::initTLS(void)	알 수 없음
 	UE4Editor-Core.dll!scalable_realloc()	알 수 없음
 	UE4Editor-Core.dll!FMallocTBB::Realloc(void * Ptr, unsigned __int64 NewSize, unsigned int Alignment) 줄 134	C++
 	UE4Editor-Core.dll!FMemory::Realloc(void * Original, unsigned __int64 Count, unsigned int Alignment) 줄 52	C++
 	[인라인 프레임] UE4Editor-Engine.dll!TAlignedHeapAllocator<0>::ForAnyElementType::ResizeAllocation(int) 줄 273	C++
 	UE4Editor-Engine.dll!TArray<TStaticMeshVertexUVsDatum<FVector2DHalf>,TAlignedHeapAllocator<0> >::ResizeTo(int NewMax) 줄 2475	C++
 	[인라인 프레임] UE4Editor-Engine.dll!TArray<TStaticMeshVertexUVsDatum<FVector2DHalf>,TAlignedHeapAllocator<0> >::Reserve(int) 줄 2069	C++
 	UE4Editor-Engine.dll!TStaticMeshVertexData<TStaticMeshVertexUVsDatum<FVector2DHalf> >::ResizeBuffer(unsigned int NumVertices, EResizeBufferFlags BufferFlags) 줄 40	C++
 	UE4Editor-Engine.dll!FStaticMeshVertexBuffer::Init(unsigned int InNumVertices, unsigned int InNumTexCoords, bool bNeedsCPUAccess) 줄 52	C++
 	UE4Editor-Engine.dll!FStaticMeshVertexBuffers::InitFromDynamicVertex(FLocalVertexFactory * VertexFactory, TArray<FDynamicMeshVertex,FDefaultAllocator> & Vertices, unsigned int NumTexCoords, unsigned int LightMapIndex) 줄 561	C++
 	UE4Editor-ProceduralMeshComponent.dll!FProceduralMeshSceneProxy::FProceduralMeshSceneProxy(UProceduralMeshComponent * Component) 줄 147	C++
	UE4Editor-ProceduralMeshComponent.dll!UProceduralMeshComponent::CreateSceneProxy() 줄 721	C++
 	UE4Editor-Renderer.dll!FScene::AddPrimitive(UPrimitiveComponent * Primitive) 줄 1146	C++
 	UE4Editor-Engine.dll!UPrimitiveComponent::CreateRenderState_Concurrent() 줄 534	C++
 	UE4Editor-Engine.dll!UActorComponent::RecreateRenderState_Concurrent() 줄 1340	C++
 	UE4Editor-Engine.dll!UActorComponent:😃oDeferredRenderUpdates_Concurrent() 줄 1410	C++
 	UE4Editor-Engine.dll!UWorld::SendAllEndOfFrameUpdates::__l2::<람다>() 줄 1032	C++
 	[인라인 프레임] UE4Editor-Engine.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::FFunctionRefStoragePolicy,void __cdecl(void)>::operator()() 줄 614	C++
 	UE4Editor-Engine.dll!ParallelForWithPreWork(int Num, TFunctionRef<void __cdecl(int)> Body, TFunctionRef<void cdecl(void)> CurrentThreadWorkToDoBeforeHelping, bool bForceSingleThread) 줄 221	C++
 	UE4Editor-Engine.dll!UWorld::SendAllEndOfFrameUpdates() 줄 1047	C++
 	UE4Editor-Engine.dll!UReflectionCaptureComponent::UpdateReflectionCaptureContents(UWorld * WorldToUpdate, const wchar_t * CaptureReason, bool bVerifyOnlyCapturing) 줄 1045	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) 줄 1628	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) 줄 403	C++
 	UE4Editor-Win64-DebugGame.exe!FEngineLoop::Tick() 줄 3967	C++
 	[인라인 프레임] UE4Editor-Win64-DebugGame.exe!EngineTick() 줄 62	C++
 	UE4Editor-Win64-DebugGame.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) 줄 168	C++
 	UE4Editor-Win64-DebugGame.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) 줄 261	C++
 
<watch>
- this	0x0000021b8cd50b80 (Name=0x000002190d06ded4 "SpineSkeletonRenderer")	UProceduralMeshComponent * {UE4Editor-SpinePlugin-Win64-DebugGame.dll!USpineSkeletonRendererComponent}
 
- [USpineSkeletonRendererComponent]	(Name=0x000002190d06ded4 "SpineSkeletonRenderer")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!USpineSkeletonRendererComponent
 
- UProceduralMeshComponent	(Name=0x000002190d06ded4 "SpineSkeletonRenderer")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!UProceduralMeshComponent
 
- NormalBlendMaterial	0x0000021978a20100 (Name=0x0000021960e0227c "SpineUnlitNormalMaterial")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!UMaterialInterface * {UE4Editor-Engine.dll!UMaterial}
 
- AdditiveBlendMaterial	0x000002197cfda080 (Name=0x0000021960e0221c "SpineUnlitAdditiveMaterial")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!UMaterialInterface * {UE4Editor-Engine.dll!UMaterial}
 
- MultiplyBlendMaterial	0x000002197cfd8100 (Name=0x0000021960e0224c "SpineUnlitMultiplyMaterial")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!UMaterialInterface * {UE4Editor-Engine.dll!UMaterial}
 
- ScreenBlendMaterial	0x000002197cfc2080 (Name=0x0000021960e022ac "SpineUnlitScreenMaterial")	UE4Editor-SpinePlugin-Win64-DebugGame.dll!UMaterialInterface * {UE4Editor-Engine.dll!UMaterial}
 
- atlasNormalBlendMaterials	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TArray<UMaterialInstanceDynamic *,FDefaultAllocator>
 
- pageToNormalBlendMaterial	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TMap<spine::AtlasPage *,UMaterialInstanceDynamic *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<spine::AtlasPage *,UMaterialInstanceDynamic *,0> >
 
- atlasAdditiveBlendMaterials	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TArray<UMaterialInstanceDynamic *,FDefaultAllocator>
 
- pageToAdditiveBlendMaterial	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TMap<spine::AtlasPage *,UMaterialInstanceDynamic *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<spine::AtlasPage *,UMaterialInstanceDynamic *,0> >
 
- atlasMultiplyBlendMaterials	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TArray<UMaterialInstanceDynamic *,FDefaultAllocator>
 
- pageToMultiplyBlendMaterial	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TMap<spine::AtlasPage *,UMaterialInstanceDynamic *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<spine::AtlasPage *,UMaterialInstanceDynamic *,0> >
 
- atlasScreenBlendMaterials	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TArray<UMaterialInstanceDynamic *,FDefaultAllocator>
 
- pageToScreenBlendMaterial	Num=1	UE4Editor-SpinePlugin-Win64-DebugGame.dll!TMap<spine::AtlasPage *,UMaterialInstanceDynamic *,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<spine::AtlasPage *,UMaterialInstanceDynamic *,0> >
		DepthOffset	0.100000001	float 
- TextureParameterName	0x000002197264e21c "SpriteTexture"	UE4Editor-SpinePlugin-Win64-DebugGame.dll!FName
 
- Color	{R=1.00000000 G=1.00000000 B=1.00000000 ...}	UE4Editor-SpinePlugin-Win64-DebugGame.dll!FLinearColor
		bCreateCollision	false	bool 
- worldVertices	{_size=0 _capacity=2048 _buffer=0x0000021a1a5a14c0 {-17.0780182} }	UE4Editor-SpinePlugin-Win64-DebugGame.dll!spine::Vector<float>
 
- clipper	{triangulator={convexPolygons={_size=0 _capacity=0 _buffer=0x0000000000000000 {???} } _convexPolygonsIndices=...} ...}	UE4Editor-SpinePlugin-Win64-DebugGame.dll!spine::SkeletonClipping
 
- UMeshComponent	(Name=0x000002190d06ded4 "SpineSkeletonRenderer")	UMeshComponent
 
- UPrimitiveComponent	(Name=0x000002190d06ded4 "SpineSkeletonRenderer")	UPrimitiveComponent
 
- OverrideMaterials	Num=1	TArray<UMaterialInterface *,FDefaultAllocator>
 
- MaterialParameterCache	{Pairs=Empty }	TSortedMap<FName,UMeshComponent::FMaterialParameterCache,FDefaultAllocator,TLess<FName> >
		bEnableMaterialParameterCaching	false	bool
		bCachedMaterialParameterIndicesAreDirty	true	bool 
- IInterface_CollisionDataProvider	{...}	IInterface_CollisionDataProvider
		bUseComplexAsSimpleCollision	true	bool
		bUseAsyncCooking	false	bool 
- ProcMeshBodySetup	0x0000021923759000 (Name=0x0000021938125074 "BodySetup"_0)	UBodySetup * {UE4Editor-Engine.dll!UBodySetup}
 
- ProcMeshSections	Num=1	TArray<FProcMeshSection,FDefaultAllocator>
 
- CollisionConvexElems	Empty	TArray<FKConvexElem,FDefaultAllocator>
 
- LocalBounds	{Origin={X=4.87440491 Y=1.05000007 Z=171.654266 } BoxExtent={X=132.183334 Y=1.05000007 Z=178.352768 } ...}	FBoxSphereBounds
 
- AsyncBodySetupQueue	Empty	TArray<UBodySetup *,FDefaultAllocator>