Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Asset Forge

Create your own 3D models and 2D sprites! · By Kenney

Camera Controls

A topic by GSamuel created Jan 28, 2018 Views: 290 Replies: 7
Viewing posts 1 to 6
(2 edits) (+3)

I'm using Asset Forge to create bigger buildings. With the current camera controls it becomes very hard to have exact control over the camera. Because the pivot point is always on the ground, it is imposible to look in buildings with multiple floors and if you succeed in positioning the camera in the building, you can only look down. (because the pivot point of the camera is on the ground)

When I change the camera angle I want the camera to pivot around it's own location instead of pivoting around a point on the ground. (When you are editing high buildings and the pivot is on the ground the camera moves very fast.) And you can't look up when in a higher room, because the floor is always in the way.

When I select a block: When i scroll, I want to zoom in and out on the block I selected. When I have a block selected, When i change the camera angle with the right mouse button, I want the camera to still look at the object I have selected. (pivot around the selected object)

Conclusion: Let me change the camera pivot.

A shortcut to set the camera pivot point on the object you are looking at and rotating the camera to look to this object would be very neat! (Like in Unity pressing F in the scene view)


literally the only reason i don't use this more

Can I ask what you are using as an alternative? This issue alone is really ruining this program for me.

nothing comes close to the speed/utility of this. controls are the main problem. atm i draw or use autodesk fusion, but with enough time and a pc that i cant throw out the window asset forge  would be better.

(1 edit)

Definitely need a 1st-person fly camera "ASDF+QE" - like what's used in Minecraft when flying.  Unity uses this when right-click is held.  Magicavoxel implements this perfectly, giving the option to toggle between Orbit and Free cameras.   Just please keep the pitch control linked to the camera's X axis.  Programs that allow true free cameras are just dizzying.

A recommendation for the current orbit camera:  hold the middle-mouse button and move mouse to move the camera target left/right/up/down relative to the camera's current angle"Quaternion".  This would allow the target to lift and drop, so this tool could be used better for structures with roofs.  Lastly, in orbit mode, could use  the same 1st-person controls to control the camera's target, while the right-button still orbits the target.  Again, this is how Magicavoxel does this and it is the best control scheme I've ever used.

Update with some simple code:

Code for panning the orbit camera:

   // If the middle mouse button is held down
   if (Input.GetMouseButton(2))
       // Get pan speed (distance between camera and camera target divided by 25)
       float panSpeed = Vector3.Distance(cameraTarget.transform.position, mainCamera.transform.position) / 25;
       // Pan camera, based on mouse movement, relative to the direction the camera is facing
       cameraTarget.transform.Translate(mainCamera.transform.right * -Input.GetAxis("Mouse X") * panSpeed);
       cameraTarget.transform.Translate(mainCamera.transform.up * -Input.GetAxis("Mouse Y") * panSpeed, Space.World);    }

Of course cameraTarget is the parent of the camera. I imagine you have the camera orbiting around it.  mainCamera is pretty obvious =)

The panning code is fairly standard, but I never liked the scale in speed of most panning cameras, so I did a straight-forward pan-speed increase the further the camera is zoomed out.

I addition  a set of traditional top/bottom/left/right/front/rear views on hotkeys would be useful. It's a bit cumbersome having to constantly fiddle with the view just to figure out if elements are correctly aligning or not.

+1 replicate the controls in most 3d software like blender, including an ALT key modifier for moving the camera around with the mouse