This week I’ve been gathering my references, inspiration, and working on some concept art. I’ve been continuing to nail down my design doc to outline my project. I also modeled an early prototype of the claw and started using it to test rigid body physics constraints in UDK. I’ve been spending quite a bit of my time researching UnrealScript, setting up the project directory and my coding environment, and figuring out what exactly is possible and how difficult it will be to do.
Physics
My first attempt at setting up the claw was to import the moving pieces as separate meshes to UDK. I then brought them in as KActors and constrained them together to work correctly mechanically using rigid body constraint actors. Most pieces are connected with RB_HingeActors. I then activated a Thruster on key press to push up on the middle sliding cylinder, constrained along a RB_Prismatic actor to keep it upright. This clamps in the claws. The only meshes that have collision are the claws, so that they can meet and collide with each other in the middle. This method has proved to work well so far, but I still need to figure out how to make the claw spring back into resting position. All of these actors need to be grouped together in the form of a prefab in order to keep everything as one piece, which seems a bit messy to me.
I’m currently looking into Physics Assets, and the PhAT (Physics Asset Tool) in UDK. If the claw is able to be rigged and imported as a Skeletal Mesh with bones and have physics able to act on the bones, this would be much simpler. The claw also needs to be constrained to the sliding mechanism at the top of the machine that moves in the X and Y axes.
Concept Art and Pre-Production
I’ve mocked up a basic idea of how the game will look – an idea for the the style of machine, the colors, and the camera view.
Physics
My first attempt at setting up the claw was to import the moving pieces as separate meshes to UDK. I then brought them in as KActors and constrained them together to work correctly mechanically using rigid body constraint actors. Most pieces are connected with RB_HingeActors. I then activated a Thruster on key press to push up on the middle sliding cylinder, constrained along a RB_Prismatic actor to keep it upright. This clamps in the claws. The only meshes that have collision are the claws, so that they can meet and collide with each other in the middle. This method has proved to work well so far, but I still need to figure out how to make the claw spring back into resting position. All of these actors need to be grouped together in the form of a prefab in order to keep everything as one piece, which seems a bit messy to me.
I’m currently looking into Physics Assets, and the PhAT (Physics Asset Tool) in UDK. If the claw is able to be rigged and imported as a Skeletal Mesh with bones and have physics able to act on the bones, this would be much simpler. The claw also needs to be constrained to the sliding mechanism at the top of the machine that moves in the X and Y axes.
Concept Art and Pre-Production
I’ve mocked up a basic idea of how the game will look – an idea for the the style of machine, the colors, and the camera view.
Here’s a very rough block out of the view of the game in editor!
UnrealScript
This week my focus has been figuring out the functions I need to modify to affect the camera’s constraints. For this game, I want the camera to be mostly fixed in an absolute location. My camera only needs to rotate in Yaw, around the Y axis (left and right.) So far I have used the ClampRotAxisFromBase() function in the CalcCamera() function in the Pawn class to do this.
There’s still a lot to figure out, but editing the camera movement has been a nice introduction into understanding UnrealScript. Looking to next week, my goal will be to figure out how to constrain the pawn on the X and Y axes within the walls of the crane game machine and freeze it in the Z axis so it can’t move up or down. I also want to figure out how to make the camera location and rotation based on the movement of the claw Pawn in the X and Y axes instead of simply fixed.