UDKSkeletalMeshComponent FOV interpolation issue

I’ve noticed an issue with UDKSkeletalMeshComponents when setting a FOV on the mesh itself (which I think is the only extended functionality it offers over SkeletalMeshComponent).

The issue is that when you interpolate the camera FOV, it makes the UDKSkeletalMeshComponent wobble.

This video shows the wobble (on the players weapon and the floating arms which is just simply an actor with a UDKSkeletalMeshComponent attached):

You have to look carefully to see it, but it is very distracting, given that it happens when aiming down sights where I’m interpolating the FOV for the zoom-in.

If i set the FOV value to 0.0 on the UDKSkeletalMeshComponent, then the wobble doesn’t happen.

Does anyone know any way around this, or why this wobble may be happening?

I see that the UT example uses FOV on their first person arms. Not sure if there is a zoom-in in that game where this issue would present itself there.


1 Like

Can’t say for sure why that’s happening. I’ve never really delved into FPS programming. When you say you set the FOV on the mesh, is that like a foreground mesh issue that acts independently from the camera FOV? If you only lerp the camera FOV, or you only lerp the mesh FOV, or you jump immediately from zoom-in to zoom-out with no interpolation, does the wobble still happen?

Edit: Also, can you draw some info on the HUD’s canvas during PostRender()? Display the location of the camera and the location of a socket on the mesh, and see if the socket is moving, and specifically if it is moving relative to the camera. I don’t know what that will tell you, but maybe if the socket really is moving, you can correct it by setting the SkelControlLimb.EffectorLocation manually in UScript.

The wobble occurs on the UDKSkeletalMeshComponent during interpolating the camera FOV only if it has it’s own FOV set to anything other than 0. I’m guess this is because it disables it’s own independent FOV it it’s set to zero.

It still occurs when if the mesh is not attached to anything and just placed in the world.

It has DepthPriorityGroup=SDPG_Foreground. Haven’t tested it without this, but i doubt it would have any affect.

I guess I don’t understand why a skeletal mesh component would need its own field of view. We’re talking about camera zoom, right? A narrower field of view is zoomed in, and a wider field of view is zoomed out. It seems like that would only be relevant on the camera. Why does a skeletal mesh component have its own FOV? What happens if you just don’t change the mesh’s FOV?

To simulated raising a weapon up close to the player’s view to aim down sights, without geometry clipping into the view by bringing the model in too close. Rendering characters in your hud. Lots of reasons one might want such controls.