mordentral / VRExpPluginExample

VRE Example Template
https://www.vreue4.com
MIT License
217 stars 84 forks source link

Build on Quest linker error: #1

Closed MichaelJCole closed 4 years ago

MichaelJCole commented 4 years ago

Hi, I'm getting this error in UE4.25.3 building for Quest. I took this example repo, customized it a bit, and compiled for quest.

I was able to build and run for one level, but not for another (see link error below). On both levels, I was using the Vive_PawnCharacter pawn.

From this example repo, I have some questions:

How I setup the project:

Thanks!

LogPlayLevel:   09-04 16:00:50.217 11814 12185 D UE4     : [2020.09.04-21.00.50:217][  0]LogRHI: Using OpenGL program LRU cache: 0
LogPlayLevel: Error:   09-04 16:00:50.285 11814 11835 D UE4     : [2020.09.04-21.00.50:285][  0]LogStreaming: Error: Couldn't find file for package /Script/SteamVRInputDevice requested by async loading code. NameToLoad: /Script/SteamVRInputDevice
LogPlayLevel: Error:   09-04 16:00:50.285 11814 11835 D UE4     : [2020.09.04-21.00.50:285][  0]LogStreaming: Error: Found 1 dependent packages...
LogPlayLevel: Error:   09-04 16:00:50.285 11814 11835 D UE4     : [2020.09.04-21.00.50:285][  0]LogStreaming: Error:   /Game/VRExpansion/Vive/Testing/GraspingHand/GraspingHand
LogPlayLevel: Error:   09-04 16:00:50.287 11814 11835 D UE4     : [2020.09.04-21.00.50:287][  0]LogStreaming: Error: Couldn't find file for package /Script/SteamVR requested by async loading code. NameToLoad: /Script/SteamVR
LogPlayLevel: Error:   09-04 16:00:50.287 11814 11835 D UE4     : [2020.09.04-21.00.50:287][  0]LogStreaming: Error: Found 1 dependent packages...
LogPlayLevel: Error:   09-04 16:00:50.288 11814 11835 D UE4     : [2020.09.04-21.00.50:288][  0]LogStreaming: Error:   /Game/VRExpansion/Vive/BP_Teleport_Controller
LogPlayLevel: Error:   09-04 16:00:50.551 11814 11835 D UE4     : [2020.09.04-21.00.50:547][  0]LogStreaming: Error: ****DumpDependencies [Dependencies]:
LogPlayLevel: Error:   09-04 16:00:50.552 11814 11835 D UE4     : [2020.09.04-21.00.50:551][  0]LogStreaming: Error:     Export 68 /Game/VRExpansion/Vive/BP_Teleport_Controller.BP_Teleport_Controller_C:SteamVRChaperone_GEN_VARIABLE
LogPlayLevel: Error:   09-04 16:00:50.553 11814 11835 D UE4     : [2020.09.04-21.00.50:553][  0]LogStreaming: Error:     Linker is ../../../KittenDelivery/Content/VRExpansion/Vive/BP_Teleport_Controller.uasset
LogPlayLevel: Error:   09-04 16:00:50.555 11814 11835 D UE4     : [2020.09.04-21.00.50:555][  0]LogStreaming: Error:         Dep S_BEFORE_S Export    31    /Game/VRExpansion/Vive/BP_Teleport_Controller.BP_Teleport_Controller_C     (class BlueprintGeneratedClass)
LogPlayLevel: Error:   09-04 16:00:50.557 11814 11835 D UE4     : [2020.09.04-21.00.50:557][  0]LogStreaming: Error:         Dep S_BEFORE_C Import    25   /Script/SteamVR.SteamVRChaperoneComponent
LogPlayLevel: Error:   09-04 16:00:50.559 11814 11835 D UE4     : [2020.09.04-21.00.50:558][  0]LogStreaming: Error:         Dep S_BEFORE_C Import   214   /Script/SteamVR.Default__SteamVRChaperoneComponent
LogPlayLevel: Error:   09-04 16:00:50.560 11814 11835 D UE4     : [2020.09.04-21.00.50:560][  0]LogStreaming: Error:         Dep C_BEFORE_C Export    31    /Game/VRExpansion/Vive/BP_Teleport_Controller.BP_Teleport_Controller_C     (class BlueprintGeneratedClass)
LogPlayLevel: Error:   09-04 16:00:50.561 11814 11835 D UE4     : [2020.09.04-21.00.50:561][  0]LogStreaming: Error: Missing Dependency, request for /Script/SteamVR.SteamVRChaperoneComponent but it hasn't been created yet.
LogPlayLevel: Error:   09-04 16:00:50.561 11814 11835 D UE4     : [2020.09.04-21.00.50:561][  0]LogStreaming: Error: Could not find class SteamVRChaperoneComponent to create SteamVRChaperone_GEN_VARIABLE
mordentral commented 4 years ago

Yeah I specifically tested 4.25.3 against quest because there was some regression from .2 that had to be fixed.

That issue there is that the teleport controller has the SteamVRChaperoneComponent in it (as its a port of Epics template version which did at the time) and if you turn off the SteamVR module built into the engine that component no longer exists.

You should be able to simply delete it.

Also in the GraspingHand blueprint there is an example of how to pull the finger curl data for steamVR, which also will throw an error if you disable the steamvr module, so you would have to remove that as well.

Vive_Pawn_Character's name comes from developing the template on Vive to begin with and originally intending to make pawns for different setups until it all was able to be merged into a single class, it works for all headsets, assuming that you remove deleted code / components from modules that you turned off...

MichaelJCole commented 4 years ago

Hi @mordentral thanks for your message.

Ok, yes. I made a copy of the controller, deleted the component, and started to refactor the other BP's to use my new controller w/o the Steam component. It was too big a refactor so I gave up. I think a better approach would be to move the steam component to a subclass of BP_Teleport_Controller called maybe BP_Teleport_Controller_SteamVR. Putting a Class variable on the Pawn would let it spawn the appropriate controllers. I have no idea how to submit that as a PR on git :-)

Re: Vive_Pawn_Character, that's amazing, thank you! This project is so helpful to my game. I really appreciate your work.

mordentral commented 4 years ago

it was originally just a port of epics template controller and i wanted it as close to what they had as possible so people would know how to work with it. Ended up being re-written so much that its pointless now, the only thing that the component provides is the room outline though, which isn't used by people anyway, so i'll probably just delete it entirely.