Before rendering, I set up some basic lighting with each animation. For the Voice-over animation, I created a scene to mimic a TV interview, adjusting the camera close to Mimi’s face as she speaks. With the other two animations, I added cameras that would showcase the entire model and it’s motions. Once this was done, I rendered all my animations and edited in the voice lines for my final sequence.
The main aspect that I learnt were the importance of applying animation principles into 3D. I also learnt different techniques that helped with the planning as well as the conception of dynamic movements as well as teaching me the rigging process despite taking up the most time in the development process.
In the future, however, I would like to refine my animations. For the running and dance animation, it could be improved with the help of graph editing and further adjustments to the timing in order for her movements to appear more life like because especially in the dancing animation, certain movements feel too delicate. Another issue were weight painting errors such as clothes clipping and especially with the hands as they were dislocated from their wrists, causing the arms to look unnatural.
Therefore, in the future, I’d like to continue practicing and refining my skills in this medium and also enhance my first set of sequences in the process.
This week, we heavily focused on finishing the game as well as adding certain, small features that would help new players be able to navigate through the office levels.
Whilst my tasks, at this point were relatively complete. There were still some areas that needed work on – especially when it came to the script.
We asked a couple of individuals to playtest our game and provide some feedback. One of the main pieces of feedback given were the lack of hints throughout the game. Kuba and I had discussed the possibility of adding hints into our game last week, however we were unsure how to tackle this without making the key cards location too obvious.
Originally we had an idea to potentially add an audio queue to the keycard, so the closer the player was to the item, the louder the sound gets. However, for players that want to take their time reading exploring the narrative, this could become incredibly grating really quickly which could ultimately lead to them rushing through the game and having an overall unpleasant experience, leading to a lack of replayability. On the other hand, this could lead normal players to rush through the game without looking at any of the items and therefore feeling underwhelmed or confused by the experience.
I also came across a similar issue when looking back at last week’s post. The fact that players may not either have the time or the patience to look through different items in order to find the keycard, especially since the game’s relatively fast pace. It slows down the game’s pacing and could take the player out of the experience. So in order to counteract these issues and concerns, we added special dialogue for levels that require a keycard to access the next stage or an area in the level.
After completing the script, I finished off the project by completing my tasks in the hack n plan and logging in the hours completed throughout the project’s development.
As a short conclusion to this project, the game underwent some major changes from it’s initial planning and prototype stages mainly either due to time constraints, over ambition or simply stylistic choices.
Nevertheless, working with Kuba and Damien, even on a small project such as this, has taught me that communication is vital as well as keeping a consistent schedule. I felt, as a concept artist and writer, this was an important learning curve to undergo especially when communicating and receiving feedback from my group.
Throughout development, this has also helped me keep motivated as getting positive feedback as well as critique positively impacted our game today. It’s very polished in comparison to it’s prototype counterpart. The game, overall, turned out to be a unique piece that, as a group, we can’t wait to develop further as well as the universe surrounding it.
The run cycle took the longest amount of time due to the different moving parts, the changing directions of the limbs and the timing.
This was, however, the best sequence to start off with because this introduced me to the basics of animation.
I blocked out the key poses from the reference, starting off with anticipation, with the character floating down, adding in a squash and stretch in the action by having her land and jump back up again in preparation of the run.
The many key poses for this sequence was due to the clear difference in animation between the sources. The video source is from an 80’s anime – therefore there are lot of extra frames to provide a smooth action cycle. This meant it was best to use the stepped animation technique. However, this also means that the movement can be precise and it’s a good learning tool for positioning as well as experimenting with the straight ahead actio
This took the longest because of the limbs having to consistently move in time with one another. This also created arcs within the sequence as the limbs would slow in and out of position.
I had also started to notice issues with the weight painting as the gloves start to clip upon movement. I tried to fix this issue – without re-altering the model.
There where restrictions to chest movements, which prevented the model from twirling around. So this section had to be scrapped and replaced.
Once I finished making the first cycle of frames – I was able to duplicate them throughout the sequence. The blockout, timing and motion were the most important part with adding in-between frames making the movements slower but smoother. Then I went into the graph editor and translated the graphs to produce stepped animation.
Whilst the stepped animation does simulate that 2D style, the sequence became blocky and unnatural despite the use of extra frames.
Whereas in the interpolation version, the movements were still snappy but they were able to produce a much smoother outcome. I adjusted the timing with the legs and added neck movements as secondary actions to make the animation dynamic.
Animation 2: Dancing
I started with a simple block out of a couple of key poses rather than making all of them from the reference. This process is known as Pose to Pose method as this sequence won’t use the stepping animation style. This helps speed up the animation process as I don’t have to block out the hand gestures or neck movements till much later on.
The main focus is the coordinated movements. Whilst the character isn’t constantly moving, each limb moves at different times. For instance, the legs would slow in and out of movements whilst the arms would consistently create large arcs.
After blocking out the dance sequence, I adjusted the timing and added in-between frames to produce smoother movements. I also added in neck and hand gestures as secondary actions.
The only issue with this sequence however was the jump when it came to moving the controls. So instead, I added a small squash and stretch to the jump.
Animation 3: Voice-Overs
My final animation sets out to overcome the challenge of animating voice lines. Because of this, I don’t plan to make a overly dynamic sequence – instead this will be used to show blendshape capabilities.
In 2D animation, I’ve had previous experience in animating voice lines using the standard mouth guides as shown here:
However, I was also planning to experiment with a different variant of lipsyncing – mainly used in a lot of anime to simulate speaking. I used this video as a reference for this technique.
However, whilst I’m trying to imitate an anime style, if I were to only translate this method into 3D, it could possibly create stiff movements and therefore it’d be difficult to understand the character’s speech if we were to take out the voice lines.
So I decided to combine both methods together. I had a limited amount of blendshapes mainly due to the lack of flexibility in the models retapology but this meant I can experiment with different mouth shapes to create even more blendshapes possibilities.
So before I started animating the mouth, I worked on adding secondary actions by blocking out some movements with subtle queues in her body language. This allows her to become much more expressive, further adding to her appeal.
After finishing the blockout, I started to animate the facial expressions and mouth movements. So I used the straight ahead method to mimic the spoken lines. Her speech also slow in and out within the animation depending on the word’s duration.
Finally, I adjusted the timing of the different lines to sync the Mimi’s body movements along with adding her facial expressions into the final rendition, slowly becoming more apparent and her face moves away from the camera.
This week heavily focused on finalizing any extra, smaller tasks as well as completing my main goals for the game. Writing up a script took up the most amount of time due to the amount of interactables that I wanted to add into the game. As a group, we have also acknowledged that, even if we didn’t have enough time to include all the dialogue into our project, the script would be able to give us an idea on how to move forward narratively or when we decide to further develop the game in the future.
Whilst making the script, I also decided to fully finish creating the enemy sprites for the game once again following the deterioration system I have mentioned in prior. This week, we have also decided to cut down the amount of levels for our game now going for only 6 levels rather than 8 due to further time constraints.
Writing up the Script
As I continued working on the script, I decided to add small notes for our programmer throughout as I split the script into 6 levels – each with their own set of unique items our main character could collect or read through.
I have also included two small cutscenes into the game – one being the elevator scene where the main character realises he’s stuck in the office building. This is the moment where his main goal of finding the stairs is presented to the player.
Another cutscene follows shortly afterwards, introducing the monsters to the player through the characters first encounter with them. This also plays as short tutorial which provides a small hint on how to deal with the monsters within the game.
He’s just as clueless as the player but as you pick up and read more information from certain items, the player can start to piece together what happened to the office.
Whilst these items are optional pieces and don’t necessarily provide large amounts of hints in terms of keycard locations it does further explore he narrative as well as expand the world building that surrounds the game whilst also not giving away too much information about the cause of the ‘outbreak’.
This sort of narrative exploration also draws in a niche player demographic as it allows them to come up with their own conclusions for the story and also gives them an opportunity to analyse the office further. This week, in total I’ve made 7 pages worth of dialogue for the game and this will be fully implemented by the end of next week.
Finally, here’s the script to review if you’d like to see the different dialogue and cutscenes added to the game.
Over the last two weeks of work, I’ve been working on creating more enemy sprites whilst working on my main tasks. As mentioned in previous posts, I plan to make 6 different enemies for the game. Now with this cutback, however, this means that (potentially) a new enemy is introduced in each level. This system means that not only are the visual decay of the monsters still present within each floor but also means that it serves as a subtle visual indicator for the player, showing how much progress they’ve made throughout the game.
These are all the enemy sprites that have been made for the game, some design changes had to be made due to the 16px aesthetic limitations. However, the decay is clearly present within each mutation. I tried to stay close to the enemy designs as I possibly could especially when it came to colour schemes.
In terms of the movement for these enemies, I decided to only make forward and backward facing sprites as they appear more threatening. They were also a lot easier to animate given the time constraints. Once again this style of maneuver is also heavily inspired by Faith’s design as they move in a very aggressive and intimidating fashion.
The decision to only make forward and backward facing enemies also comes from our test enemy as shown above. They’re much more taller and faster than the player but their movements are also obscured by the ‘blink’ screen. This compromise saved quite a bit of time during development as well as create some horrifically unnatural movement
Upon our final week of development, we will discuss the results of playtesting and some final touches being added to the game, including rewriting certain bits of dialogue and trying to add hints for keycards that will be directly conveyed to the player.
Implementing FK’s are vastly different to the IK’s. FK do not have any conventional handles unlike IK. FKallows us to move certain parts of the joints rather than as a collective IK, it gave more control during animationand it was a potential fix for the elbow snapping issue.
So I implemented the FK’s into each limb by adding parent constraints and controls onto each joint as shown here.
A system called the IK/FK switch was implemented.
But whilst I was experimenting with this change, I still wasn’t able to find a solution to the ‘elbow-snapping’ problem.
Once I implemented this system, I noticed another issue which directly affected the spine and the right arm’s FK.
So I had to remake the spine curve, readjusting the positioning back onto the root joint.
I was able to remake my hand controls with ease. The hands also improved, although the thumb would still stick out.
I was able to fix the ‘elbow snapping’ problem by adding extra controls that were directly connected to the elbow. This allowed me to control the elbows positioning using the control’s pole vector attatchment.
These major changes have allowed me to start the animation pipeline as my rig was now fully ready to be used within the workspace.
With more of the mechanics being implemented, this week’s main focus is to prioritize creating more assets that are not only visually appealing but practical for the game’s development.
As mentioned in the prior post, we have made the decision to cut the boss battle from the game. This is due to time constraints within the project, especially considering we have two weeks left until our projects set deadline (04/05/2023).
We had discussed in a meeting and concluded that making a boss would require special move sets in order for the player to identify the enemy and both our programmer, Kuba and I would need to design and program an unique monster which would also delay our development schedule.
Making Detailed Sprites
When researching similar RPG-esque art styles and game mechanics, I found that a lot of older / indie games will use either descriptive text or showcase a detailed image in order to show the item that’s been picked up.
(Show examples of items being picked up – Omori and Corpse Party)
Since my main goal as an artist is to also make assets visually accessible for new and experienced players, I decided to create a sheet of detailed sprites that would pop up quickly whenever our main character picks up an item.
Before making a decision on a style we could use for these sprites, I requested feedback from my team members.
Similar to the portrait workflow, I recreated these items in a much lower resolution in order to fit the game’s asethetic.
By making detailed sprites, this also allows Damien, our level designer to focus on making floor plans rather than making unique sprites for each item as this could potentially slow down development.
In addition to this, making unique sprites for items will not only appear a couple of times throughout the levels but will also be obscured by the overall darkness of the game, making the game incredibly frustrating as there would be no indication on the location of different important items. It’s not a longterm solution especially since our game heavily relies on maintaining eyesight.
So in order to replace these unique sprites, I also made a sprite that is known as the ‘item sparkle’, used in primarily RPG games to indicate an items location, especially in horror. I also created two variants of this ‘sparkle’ – these being an ordinary interactable item and a keycard ‘sparkle’.
To demonstrate the difference between these interactables to the player, we have decided to add them into the first floor which serves primarily as a tutorial for new players. This also makes sure that players have an easier time finding these items once they traverse down lower floors as these sparkles are much easier to recognize through the darkening screen. We are also, now able to let our character interact with desk items such as computers without making special assets for pieces of dialogue.
As mentioned previously, these interactable items also come with a snippet of dialogue. Usually in smaller RPG games, they’ll simply what the player has collected. However, since I wanted our main character to be recognizable, I needed to add depth to his personality through dialogue whilst still keeping his speech to a minimum as intended.
So before writing up the dialogue, I had created a UI text box for our portrait and dialogue to reside in, big enough to fit enough text but small enough to still see the environment. Once, again these mechanics are also inspired by heavy dialogue games such as Stardew Valley.
Afterwards, I started writing some test dialogue for the tutorial level – mainly certain interactables around the office that gives him a more level headed but lighthearted approach to his night whilst giving parts of his daily life, making him feel more like a person than a vessel the player controls.
When writing his main character, even when his dialogue is limited and the game is relatively small, I try to plan out his personality by starting off the script with a couple of notes.
Whilst these paticular notes may not appear in the script for the final game, This helps me write his speech patterns as well as serving as a reminder whenever his dialogue seems “out of character”. In this case, we had agreed to make his character lighthearted but quiet and stoic around others. This means, for his character, him making small comments with certain items would fit his personality.
Next week, as I finish the dialogue for the small tutorial level, I will now focus on finishing up the script as well as making extra enemies for each level.
I skinned the model, allowing me to now experiment the joints and the IK handles with the model. This process made it easier to spot any potential mistakes during the IK’s implementation.
Adding in Controls
I added controls by starting at the feet. It becomes easier to animate the model as rather than selecting specific joints or IK handles, therefore being a less destructive method of animating by allowing me to deform the model without permanently contorting the rig.
I started with creating foot controls to learn the basic process.
I added point constraints to the IK and Orient Constraints to the foot and leg joints – this means that when moving the foot controls you can move the legs which will cause her dress to move due to her dress bones being connected to the pelvis. This helped prevent clipping issues.
I added point and orient constraints to both the hand joints and IK handles. This allowed me to rotate the wrist joints, and move the arm joints. The issues with elbow snapping were still prevalent – this would not become a priority until I started doing test animations.
I started working on the spine by adding a spine curve and a Spline IK handle.
After adding the Hip Controls, I made some chest and neck controls to priorities full control of the spine in several areas. I added an ability where the chest would only be able to roll when rotated. Whereas with the Neck, I added some parent constraints to create a connection between the control and the head joints themselves.
I found it incredibly difficult to work with the chest and hip controls because ,at the time, the neck was the only control that was able to work once implemented.
The hips and chest would never move her body properly with no twists or rolls as well as the spline IK only affecting her chest upwards. I tried to solve this issue by adding extra point constraints however it only caused the arms to be further influenced by the spine (as shown here).
These are the automatic weight painting before the main changes that I added to the neck joint. This was so I could test the head movements.
Before – Fingers and Hands Weight Painting
Before – Dress, legs and Clavicles Weight Painting
Before – Results of Deformation
Weight painting results
After working with the weight painting, I was able to come up with fixed results.
Adding Set Keys to Fingers
I worked on finishing the set keys for the fingers. Here, this was to not only experiment with animating with set keys rather than controls but this allowed flexibility when animating the fingers as I was able to adjust the finger joints and their movement. I decided to demonstrate flexing the finger joints by curling the fingers into a fist.
As a temporary fix I discovered that I could limit the set key for the thumb in order for the joint to bend fully. This added some limitations with the use of set keys for the fingers, but was able to work fairly well.
I started to experiment with Blendshapes as I wanted her to express different emotions through speech and movements. The blendshapes were limited to speech, however, realising the importance of having these different expressions I created different expressions using the soft select tool.
To begin the rigging process, I started off by working from the bottom and adding joints to the legs with each bone having center orientation. Once I made one leg however, I was able to duplicate the joints onto the opposite side. This helped incredibly to keep joints consistent with one another and this was the same method I used for the arms.
After finishing the legs, however I experimented with the IK handles by adding them to the leg joints. This was to mainly learn more about IK’s and their function within the skeleton. I learnt that with these handles, they allow the joint chain to move in one fluid action. This meant that, in the future, this would make posing the character much easier to accomplish.
Afterwards, I worked on adding the spine joints by using locators and creating three seperate joints for the back, chest and neck.
After adding in the root and spine, I added in the pelvic joints, connecting the root to the legs. Once the pelvis was created, I started making different dress bones, separated in different areas of the dress. This allowed the dress to move along with the legs and pelvis.
Once I finished working with the legs and dress, I moved onto the Clavicle area, slowly making the arm joints along the way on each side. Due to the different positioning of the model’s fingers, I was able to replicate the arm joints onto the other-side but each finger had to be done separately to avoid any rig breaks. Afterwards, with a similar process to the legs, I made the IK handles for the arms. In this case, the arm’s IK’s allowed the elbows to bend.
Finally I adjusted some spinal and neck placements within the rig since I learnt that, in the skinning process, placement and orientation for the joints could potentially break the model and it’s weight painting if done incorrectly.
Full Orthagraphic View of Rig
After adjusting the skeleton and IK handles, I went to plan ahead for the next steps being the controls. Here is a showcase of the skeleton in orthographic view.
3rd April – 6th April (Easter Break Documentation)
For the last couple of days, I worked on refining and researching character portraits for the project. Here are a couple of examples of portraits that have been made:
For making expressions, I referenced Stardew Valley portraits to show the character’s wide range of expressions.
Since we planned for the character’s dialogue to be limited, I only created a couple of expressions that would align with his dialogue. This is because, as a group, we felt as if dialogue in a horror game could quickly lose it’s charm if used extensively; especially if our main, fundamental goal was to create fear for our audience through tension.
Much like in films, a lot of the time no dialogue in certain scenes would help convey emotion far better as it gives the audience an opportunity to come up with their own conclusions and thoughts within each interaction.
This week, we have also decided to scrap the insanity component in the blink mechanic. This was due to development time being incredibly limited and by adding an insanity component it means designing 15 unique sprites for each stage which we didn’t have enough time for. However, with this cut, it means I can focus more time in developing unique sprites for each floor. I still kept the previous designs and decided to create a new system for the enemy sprites.
This system is called: Deterioration. Once again, purely a visual system but this time, the further you down with each floor, the more deteriorated the monsters get.
I plan to make 8 / 9 sprites for each floor including a boss sprite for the ending. However, in this stage of development, we are unsure whether or not we’d be able to make a boss for the game because, in terms of my role, it would mean making unique animations for movement and attacks as well as creating special patterns for the boss to adhere to. This would take up a large slot in our development schedule and we will have a conclusion for this decision by the next dev log.
I set out two options at the planning stage. For the first option, I tried to animate my model made for character design based around her carefree but curious personality and her life as a ghost. Or I could make a model based on Mimi during her idol career and animate her dynamic motions.
I decided to go for Mimi as an idol because Makis’ model Retapology and UV would have caused a lot of problems in the animation pipeline.
I’ve never had any experience in 3D animation but I wanted to learn and practice the fundamentals to my full potential. So I took on the challenge of making dynamic animations such as lip syncing or stylized movement like running or walking . This contrasts Maki’s vulnerable and careful character traits. As a ghost, her movements and interactions would also be limited so I was unsure how to translate this into 3D animation.
So, I chose Mimi because her character would fit the challenges and goals I set up at the beginning of the project. As she is an idol, I’m not restricted in actions or movements. She is able to express a lot more and I had some basic ideas for her animations.
I will provide context to Mimi’s character – to give more understanding to the meaning behind my ideas.
Mimi is an Idol – a Japanese singer from the late 80’s known for her singing and her performances. She also serves as Maki’s counterpart and is known to be elegant in her movements and speech.
Her character was inspired by an anime idol character called Haruka Kiritani (Hatsune Miku: Project Sekai). Both are professional and perfect singers and their interaction with the audience – they’re incredibly melancholic characters as they realize that being an idol isn’t what they thought it’d be.
I wanted to reflect those two sides in my sequences – the part where Mimi shows her professional side that’s energetic and fun. Whilst her real feelings are solemn and quiet.
Research and Planning
I began to research different idol performances, from various mediums. Here are a couple of examples.
The first two examples come from two games. One shows a virtual performance with a fixed camera whilst the other is a mini game with dynamic poses and varying camera movements. These sequences were motion captured (mo-capped) by real performers, allowing for these movements to be as life like as possible.
As these movements were realistic they served as strong stepping stones for using the rotoscoping method – this method requires tracing over key poses to simulate smooth movements. This animation technique is primarily used for 2D animation however for the references, this will be a strong starting point.
My final reference comes from an live idol performance. I mainly used this example to study different poses and movements.
Voice lines was the main focus of the third animation as I was interested to see how 3D mouth movements differentiated from 2D.
My main inspiration and the reference I will be using comes from Bee and Puppycat, a show about growing up whilst leaving that idealistic view on life to become an adult which suits Mimi’s themes of isolation but acceptance of reality as well.
Mimi has to pretend to be elegant and professional in front of the camera to please her fans, although in reality she’s tired, homesick and alone. Therefore, she’s left wondering… what am I feeling? It’s a mix of confusion and sadness that reflects her character.
For the final reference, I had some different ideas for what I wanted to do. One of them, being a run cycle or potentially an introduction scene for Mimi.
These are the two references:
I chose the run cycle from the first reference since I was also interested in experimenting with stepped animation, similar to Spiderman: Into the Spiderverse’s style. This would also be a great opportunity to experiment framing and Maya’s graphing system later on.
I decided to test out the roto-scoping method to collect key poses using Sync Sketch – a website that allowed me to trace over videos so that I could have these poses prepared for the animation.
For the final reference video I decided to make a short video demonstrating the mouth shapes.