Relationship between perceptual speed and focal length

When I was a student at Gnomon learning virtual production with Dane Smith, Dane proposed an interesting theory in class: How do focal lengths change perceptual speed? It kept me up at night, the next day I rigged my car and did some fun tests.

THE RIG

Specifications

All tests are shot with the same cruise speed of 30mph, at 50mm, 135mm, and 300mm. As the video shows, at 50mm we experience the most perceptual speed when shooting towards the direction of travel (front view). From a lensing point of view, the longer focal length seems to squeeze space while providing a longer distance for reference substance, thus the same speed/distance of travel doesn't feel that much in the camera.

When it is perpendicular to the movement(side view), we feel the most speed at 300mm compared to 50mm. I'm assuming it is because a longer focal length restricts the field of view so that it gives less space for an object/or pixels to travel, resulting in a feeling of moving faster. (need tests need to be done on this)

As for rearview - perpendicular to the opposite direction of travel, 50mm appears to provide the fastest feeling of speed. I guess this is the same "space squeeze" effect.

Then, I shot some footage on 60fps, the results are almost identical. I also cropped the footage to mimic the FOV test, again, resulting in the same relationship between FOV and perceptual speed.

 

Test Videos

(Had no gimbal available at the time, sorry about the shakiness)

24fps-front view

24fps-rear view

24fps-side view

24fps-FOV

59.94fps side view


 

 

Use ShapesXR As A Virtual Production Previs Tool


 

 

Bug: Metahuman crashes in Editor

Recently, I’ve been working on pre-vis for the short film Suffocate. When building the San Francisco Chinatown scene, I wanted to use the character “Shu“ as a reference which I made a while ago when Metahumans just came out.

Shu - Metahuman

Shu - Metahuman

Importing the metahuman into UE4.7 was easy. But the engine keeps crashing when dragging the BP file into the scene. See Diagnostics here:

Application version 4.27.1-0
 ... built from changelist 17735300
OS version 10.16.0.57906
Running 1 x64 processors
Exception was " #0 at 0x7ffe9454aab8"
Source context from ""
<SOURCE START>
<SOURCE END>
<CALLSTACK START>
__pthread_kill Address = 0x7fff202ff946 (filename not found) [in libsystem_kernel.dylib]
Unknown() Address = 0x7fff20283411 (filename not found) [in libsystem_c.dylib]
Unknown() Address = 0x7fff202827e8 (filename not found) [in libsystem_c.dylib]
Unknown() Address = 0x7fff285afec4 (filename not found) [in Metal]
Unknown() Address = 0x7fff2859e446 (filename not found) [in Metal]
Unknown() Address = 0x7fff285981ec (filename not found) [in Metal]
Unknown() Address = 0x7fff2859283b (filename not found) [in Metal]
Unknown() Address = 0x7fff28592789 (filename not found) [in Metal]
Unknown() Address = 0x18653006b (filename not found) [in AGXMetal13_3]
Unknown() Address = 0x18651c3c3 (filename not found) [in AGXMetal13_3]
mtlpp::Device::NewComputePipelineState(mtlpp::ComputePipelineDescriptor const&, mtlpp::PipelineOption, ns::AutoReleased<mtlpp::ComputePipelineReflection>*, ns::AutoReleased<ns::Error>*) Address = 0x185c310b0 (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalComputeShader::GetPipeline() Address = 0x185d68406 (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalStateCache::SetComputePipelineState(FMetalCommandEncoder&) Address = 0x185d09c4c (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalRenderPass::PrepareToAsyncDispatch() Address = 0x185cfd0ff (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalRenderPass::Dispatch(unsigned int, unsigned int, unsigned int) Address = 0x185cfcb2b (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalRHICommandContext::RHIDispatchComputeShader(unsigned int, unsigned int, unsigned int) Address = 0x185c6b5a3 (filename not found) [in UE4Editor-MetalRHI.dylib]
FRHICommand<FRHICommandDispatchComputeShader, FRHICommandDispatchComputeShaderString>::ExecuteAndDestruct(FRHICommandListBase&, FRHICommandListDebugContext&) Address = 0x11e4393f2 (filename not found) [in UE4Editor-RenderCore.dylib]
FRHICommandListExecutor::ExecuteInner_DoExecute(FRHICommandListBase&) Address = 0x11ef064fb (filename not found) [in UE4Editor-RHI.dylib]
FExecuteRHIThreadTask::DoTask(ENamedThreads::Type, TRefCountPtr<FGraphEvent> const&) Address = 0x11ef71827 (filename not found) [in UE4Editor-RHI.dylib]
TGraphTask<FExecuteRHIThreadTask>::ExecuteTask(TArray<FBaseGraphTask*, TSizedDefaultAllocator<32> >&, ENamedThreads::Type) Address = 0x11ef70e6c (filename not found) [in UE4Editor-RHI.dylib]
FNamedTaskThread::ProcessTasksNamedThread(int, bool) Address = 0x10c96f949 (filename not found) [in UE4Editor-Core.dylib]
FNamedTaskThread::ProcessTasksUntilQuit(int) Address = 0x10c96dd90 (filename not found) [in UE4Editor-Core.dylib]
FRHIThread::Run() Address = 0x11e423336 (filename not found) [in UE4Editor-RenderCore.dylib]
FRunnableThreadPThread::Run() Address = 0x10ca9d988 (filename not found) [in UE4Editor-Core.dylib]
FRunnableThreadPThread::_ThreadProc(void*) Address = 0x10ca0eaf4 (filename not found) [in UE4Editor-Core.dylib]
_pthread_start Address = 0x7fff2032e954 (filename not found) [in libsystem_pthread.dylib]
thread_start Address = 0x7fff2032a4a7 (filename not found) [in libsystem_pthread.dylib]
<CALLSTACK END>

The problem got solved in the end by turning off a Simulator in Hair_SPixiefhead ArchetypeBinding. This works for now, but there is have to be a more well-rounded solution.


 

 

Live Link UE4.6 connection issues Virtual Camera Setup

Tested Equipment: Macbook Pro - M1 Chip - OS Bigsur, PC - Windows 10, iPhone

Following the documentation, I first couldn’t establish a connection by using Live Link. Repeated error code: time out. This happened on both PC and Mac. A couple of things that need attention when troubleshooting:

  • On a PC, make sure that the network is set on public.

  • On a Mac, add the UE application to your firewall list.

  • Make sure to have all settings DONE before pressing connect button on Live Link

Remaining Issues:

  • Rendering issue

    • At this point, the sequencer renders out an entirely irrelevant video.

  • Constant Live Link disconnection

    • Possible solution: Turn off router's load balancing on a PC.

      • How to Access Your Wi-Fi Router's Settings - https://www.pcmag.com/how-to/how-to-access-your-wi-fi-routers-settings

      • How Does Internet Load Balancing Work? - https://www.availtechsolutions.com/blog/internet-load-balance

Handheld Shot on Virtual Camera in Unreal Engine Environment

For more information about virtual camera: Virtual Camera Actor Quick Start documentation here