Download

Several questions about camera control, physics, and gravity

Preface:
I’m very new to UDK, this is my first project and my preliminary searches seem to indicate that my goal is harder than I assumed it would be. I welcome any advice or tutorials that apply to any aspect of this post. I have been and am actively searching for more information, but I don’t want to dive into either solution only to discover a bunch of unexpected problems forcing me to redo a lot of work. Ideally I would like to do this entirely with blueprints and plugins, but if I have to work with C++ I will pursue that as well as a last resort.

My goal:
instead of moving a pawn directly, the player tilts the environment and the pawn interacts with the environment according to its physics and gravity.

The solutions I’m currently considering:
a) The level geometry is going to be very simple (floating platforms in a skybox), so several brushes and/or meshes are grouped together and rotated simultaneously. Reading about this approach, I have seen people suggest that it’s inadvisable to rotate the entire level, but I’m not sure if this is still true when a level might be <1000 brushes/meshes on average.

b) Rig the camera to create the illusion that the level is tilting and apply force to simulate gravity or use a plugin to change the global gravity. My issues with this option are: it seems cumbersome and would require a lot of camera kludges; might create fiddly, unexpected, or broken physics; and it would make it difficult or impossible to have stationary props outside of the immediate level as points of reference that are unaffected by the camera.

My questions:

  • Is rotating a small group of brushes/meshes (or possibly even a single mesh) going to be taxing, or would that be more of a problem with rotating a huge highly detailed level?
  • What are the shortcomings of either solution that I haven’t considered?
  • Are there other solutions for achieving my desired goal?
  • How do I create a “default” state that either the level or the camera (depending on how I implement the tilt) elastically returns to when not receiving input?

Any help would be greatly appreciated.