+1

Issues packaging unreal 4.15 personal license and building from source

gbernal 7 years ago updated by john Michael 2 months ago 6

Hi,


I'm trying to package my project since my school project is a multiplayer VR, I have to package it for LAN to work but every time it gives me Error Unknown error

LogRenderer: Reallocating scene render targets to support 1208x380 NumSamples 1 (Frame:2).

NeoFur: Generating buffers start
NeoFur: Generating buffers complete: 3.330302 ms
LogStats: FPlatformStackWalk::StackWalkAndDump - 0.034 s
LogOutputDevice:Error: === Handled ensure: ===
LogOutputDevice:Error: Ensure condition failed: false [File:D:\Build\++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\Engine\Private\PrimitiveSceneProxy.cpp] [Line: 599]
LogOutputDevice:Error: PrimitiveComponent tried to render with Material MI_NeoFur_Complex_TEST, which was not present in the component's GetUsedMaterials results
LogOutputDevice:Error: Owner: Sphere_2, Resource: None
LogOutputDevice:Error: Stack:
LogOutputDevice:Error: UE4Editor-Core.dll!0x0000000060A595D6
LogOutputDevice:Error: UE4Editor-Core.dll!0x0000000060809B72
LogOutputDevice:Error: UE4Editor-Core.dll!0x000000006081B656
LogOutputDevice:Error: UE4Editor-Engine.dll!0x00000000592FCA9D
LogOutputDevice:Error: UE4Editor-Engine.dll!0x00000000592AA2C1
LogOutputDevice:Error: UE4Editor-NeoFur.dll!0x000000004DBE60FA
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053E9C1E7
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053E74CE8
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053EA9189
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053AFBE8E
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053EC6712
LogOutputDevice:Error: UE4Editor-Renderer.dll!0x0000000053E908BE
LogOutputDevice:Error: UE4Editor-Core.dll!0x00000000606DD83D
LogOutputDevice:Error: UE4Editor-Core.dll!0x00000000606DDC5D
LogOutputDevice:Error: UE4Editor-RenderCore.dll!0x000000007D9A0397
LogOutputDevice:Error: UE4Editor-RenderCore.dll!0x000000007D9A1486
LogOutputDevice:Error: UE4Editor-Core.dll!0x0000000060A6A3C8
LogOutputDevice:Error: UE4Editor-Core.dll!0x0000000060A64C69
LogOutputDevice:Error: KERNEL32.DLL!0x00000000A5598364
LogOutputDevice:Error: ntdll.dll!0x00000000A7D570D1
LogStats: SubmitErrorReport - 0.000 s
LogStats: SendNewReport - 0.119 s
LogStats: FDebug::EnsureFailed - 0.153 s


When trying to build the project with Neofur Source I followed this instruction http://neoglyphic.userecho.com/topics/15-compiling-from-source/

I get projectName could not be compiled. Try to rebuild from source manually

I have followed this instructions



Any help is appreciated

This was a problem with the first 4.15 build of NeoFur, try upgrading to the latest build (currently 2.1.404). Unfortunately, I think the NeoFur source code is much older than 2.1.404, so you may have to use the compiled build for the time being.

Hello Sean,

This is a bit old but I am running into the same problem. However, using the precompiled version is not an option for me. Any chance that you can point me to the fix for this?

Best regards,

Damir H.

I can provide you with a fix; I fixed this in my source build, but please note while it seems to work perfectly, it might be different than what Neoglyphic did.


It turns out in 4.15, Epic has a new requirement for components that render in the editor. The editor needs to query the used materials via a new function (GetUsedMaterials), and because this isn't implemented in older versions of NeoFur, it crashes. So what I did was override that function and add all used materials for a fur component to it, and it works great. Here is what I did:


Add this to NeoFurComponent.h:

virtual void GetUsedMaterials(TArray<UMaterialInterface*>& OutMaterials, bool bGetDebugMaterials = false) const override;


Add this to NeoFurComponent.cpp:

void UNeoFurComponent::GetUsedMaterials(TArray<UMaterialInterface*>& OutMaterials, bool bGetDebugMaterials) const
{
    if(Material)  
    {    
        OutMaterials.Add(Material);  
    }

    if(FurAsset)  
    {      
        for(FSkeletalMaterial& GrowthMeshMaterial : FurAsset->SkeletalMesh->Materials)      
        {        
            OutMaterials.Add(GrowthMeshMaterial.MaterialInterface);      
        }  
    }
}

I only handle character skeletal meshes since that's what I need, if you use NeoFur on static meshes you can add another loop that gets the static mesh materials. And also, I assume there is always a mesh with materials, so it might crash if that's not true.


Hope this helps.


-Sean

Hey Sean,


Thanks, this is an acceptable workaround for now until the NeoFur source code is updated.


Best regards,

Damir H.

Thank you, that did it!

I really like the way that you have expressed yourself. There is a lot to be admired from this post. You might want to click onThe Union Mark Wahlberg Green Jacket