This session contains information about my contributions in terms of Scripting. It encompasses my work with the character animations as well as with the scripting sequences in the first area of level 4.
To jump straight to a specific topic, click on the buttons below!
CHARACTER BLUEPRINT - ANIMATIONS
Along the entirety of Gravitas, I collaborated with artists, other designers, and programmers to incorporate the main character’s animations (gauntlet/arm animations). In regarding that, my tasks were:
Import and tweak gauntlet animations:
Especially in the beginning, artists did not have much knowledge on importing animations into the engine. So, I helped them to setup skeletal meshes for proper import, along with its materials. In addition, I tweaked the animation values for gameplay adjustment, synchronizing them with the Gravity Field Spawning and blending them between states (hands up, hands down, etc.). That kind of adjustment was key to give the right 'feeling' to our main mechanic - shooting gravity fields - as it gives instant feedback in response to player's action.
Incorporate animations to the actual character:
On top of importing the actual animations, I worked with programmers and another department teammate to add them to the main character blueprint. We created variables to indicate the character’s current animating state, blending the animations according to these variables and to player’s input.
Play Up idle animation: sample of the character’s event-based animation system – “ResetUpAnimation” resets the logic sequence responsible for raising the gauntlet (character’s arm) to its up position. Such sequence plays either when players shoot or when they use the ‘ghost’ field (preview feature). This way, the nodes check, after a short delay, which action is performed, keeping the gauntlet in the upper position (Idle_Up animation state) in case of the former. “PlayDownAnimation” brings the gauntlet down, which means players can shoot or use the preview feature again (enabled by firing “ResetUpAnimation” event).
LEVEL 4 (AREA 1) - SCRIPTED SEQUENCES
As part of the development of the 4th level ("Surprise"), I worked on two scripted sequences for the first area:
The level intro, the "surprise" consists of the moment players approach the viewing room and get scared by the Wreck-a-hedron breaking the room’s glass. Building this sequence consisted of two major steps:
 Positioning the Wrecking Box properly and disabling physics: I had to position the Wreck-a-Hedron game object, while adjusting its cable length, so it could have a proper height. That was necessary to it could not only be able to break the glass panel in the beginning, but also be accessible and provide access to different platforms in the room. The disabled physics guarantees that the box will only swing at the right moment.
 Enabling physics and adding an extra impulse: to swing the box and break the glass. The moment players get to a certain distance int the viewing room, a trigger detects the main character and activate the Wrecking Box (set "Push the Box" flag to true). On top of enabling Physics, the sequence adds a force to the swinging object, adding to it enough impulse to break the panel.
Blueprints presented in this section are the result of collaborative work of many team players. Programmers and designers worked together to bring them to full functionality. Kudos for Anthony Fleshner, Henry Dai and Alex Shilts!
“Welcome to my destructionist phase” is when players approach the panel in area 1’s goal and, by pressing the button, release the wrecking box, shattering the glass into tiny pieces the moment it collides with the bottom glass panel. This is the transition to the second area. In terms of scripting, this sequence consisted of:
The Curator detects player's action: when the player presses the button in area 1's goal, the Curator's logic detects it, triggering the "Release Wrecking Ball" sequence of "Wreck-a-Hedron"'s blueprint.
Wreck-a-hedron releasing sequence sequence: once players press the button in area 1's goal, the level blueprint triggers the event "ReleaseWreckingBall" in the Wreck-a-hedron blueprint. The sequence plays an animation where four grips holding the box open up (purple commentary box), waiting until its end to detach the cube from the cable (green commentary box). After enabling the cube's Physics properties, in order to keep its right motion, its linear velocity is set to follow the "Sphere", a parent object to which the cube was connected so far (yellow commentary box).
The system handles the platform opening sequence in a different blueprint, depicted in details in the next section:
BLUEPRINT: WRECKING PLATFORM
As mentioned before, there is a platform holding the box in the Wreck-a-Hedron object. Such platform is another blueprint, with its own set of variables, which are responsible for controlling the "open grip" animation.
I was responsible for taking each of the assets and assembling the "Wrecking Box Platform" (aka Wrecking Platform) together. That included scripting its open grip "animation", adding the sound assets provided by our Lead Level Designer, as well as, integrating the blueprint with the Wreck-a-Hedron. I decided to approach it as a different blueprint, so I could test without changing the original Wrecking Box. This way, although I had a little extra effort to merge the platform back into its original target, other teammates were able to work with the Wrecking Box and other related game elements, without having to either wait for my task or even worry about whether it would break the blueprint.
Open Grip Function: on top of setting a flag that signalizes each of the platform grips to start their animation, this function plays a mechanical sound at each of those grips, providing audio feedback for players.
Animation Sequence: this sequence actually consists of a gradual rotation by each of the platform four grips. Once the function enables the "StartRotation" flag, these grips rotate over every tick, during a specific time, creating the necessary visual feedback.