I want to implement a climbing monster system just like in shadow of the colossus, where the monster has certain areas (fur) the player can grab and climb. All I did so far was to put sockets on the monster and attach the player to them, but can’t get the player to move and it’s not accurate. What can I do to achieve this?
Thank you.
you can start by making a pawn that can run on 2 legs, or when a button is held, crawl on the floor with all 4 limbs. every limb in use needs to have IK targets that you can blend into, and climb animations with anim events that decide when to grab or release with each hand, shooting ray traces to check the materials surface type, spawn footprints, play footstep sounds, check if the surface type can be found in a list of climbable surface types, interpolate the rotation of the skeletal mesh towards the surface normal, check if mesh rotation is too steep to climb/walk, set the location of the IK target for the free arm, play the climb animation while blending in that IK, and when the free arm reaches the target, turn off IK for the other hand, then change the location of the pawn’s pivot point, without changing the location of everything else.
the IK targets can be an actor that is spawned like a bullet hole decal, attaching it to the bone of a deforming joint. this might give you sliding problems on organic parts, but might work fine for hard surface parts, and im not sure how you would skin it to the surface of the mesh, unless you can store the UV coordinate, and translate that into the 3D location every frame somehow.
to get swinging to work, you would need to either use a physics constraint on the skeletal mesh, with physical animation, or you could have a second invisible simpler skeletal mesh that holds all your IK targets, and controls your visible mesh like a puppet, and use a physics constraint to attach it to the monster.
with the crazy swinging that a monster climbing game creates, you should probably make the camera part of a separate actor, that averages the pawns position with some other actors on a list of look at targets, then you can move these other actors in front of the player to get the camera looking dynamically. the camera should rotate relative to the gravity direction, you can do this with vector math, or maybe hang the camera rig from a physics constraint.
this is a very complicated system to create.
Thank you! We really need this system on our project, if you are interested on implementing it we can pay up to 300dollars for it.