JUNE 17 → JUNE 20 – 2024

Tasks

Technical Developments

  • Implemented compass object in scene UI
    • Joris designed and animated a compass featuring a hamsa. After every scene’s completion, this compass would pop-up with an extra ‘finger’ each time. The animation was game-ready and so all I had to do was implement it correctly. (see example below)
  • Implemented mother animation frames
    • This was basically the same thing as the grandma last week, based on the voice over I assigned textures to the mother to create the illusion of animation. (see example below)
  • Implemented bread family animation frames
    • Scene four, also known as the market scene, featured the bread family. A group of breads that were commonly used in the museum and so they had to be in our experience as well. I implemented all frames according to the voice overs to animate them too. (see example below)
  • Added dual language capability for the animation frames
    • One thing I had not thought of when developing the CharacterTextureReplacing script was different languages. Due to the timing being different per voice over, I could not simply use the ones I had made based on the English voice over. So instead, I added a localization ID much like the one used in the AudioManager to accommodate different languages.
    • This meant I also had to redo all the frames I had added already, but luckily I could copy and modify most of them.
  • Implemented all Eden frames
    • Valeria finished all character frames which allowed me to implement the main character, Eden, too.

Double Diamond

My development this week was mostly creating content again, which makes sense seeing it is the end of the dev cycle. However I did get to brainstorm about one new issue, the multiple language support for the animation frames.

Discover

To figure out the best way of tackling this issue I decided to look through my existing scripts and observe how I handled this issue previously. This ultimately lead me to my final solution.

Define

The solution was not that difficult in the end, I had to find a way to ‘bundle’ a language identifier to a set of frames.

Develop

To do this, I simply added a string to the CharacterPose class. This string would then be added to the name at Runtime due to the Awake() function. After this I could simply call script.SetPose(“Pose1” + LocalizationSettings.SelectedLocale.Formatter); to get the correct pose corresponding to the currently selected language. This also works when changing the language during the game and provides an elegant and flexible solution to the problem.

Deliver

As communication with our client was terminated I did not have any deliverables for him this week, I did however keep my team members updated by showing them gifs/videos of my progress.

I also made a release on our GitHub to prepare for the final handover. This was the 1.0.0 version.

Plan

Next week will be the final week of this project. I will hand over the .apk, marker images and source code to an associate of our client. After which I will use the remainder of the week to add any changes I still have the time for as well as working on all final deliverables for IMT&S.


Research

The research I did this week was based around researching my own code to find what solution I had used before and which was best to apply to the problem at hand.


Reflection

The week was very peaceful compared to previous weeks, most of this was due to the fact we did not have the client breathing down our necks. This led to a more comfortable and relaxed feeling among our team and also helped me to tackle more issues this week.

Next to that, I am quite happy with how I handled some problems that arose this week and I am looking forward to the final week.

Media & code

The implemented compass, animation and design done by Joris.
Implemented mom animation frames.
The implemented bread family frames.
My implementation of language dependent animation frames. The language ID is added onto the frame’s name, after which it can be called by SetPose(“POSE” + LanguageID);
protected void Awake()
    {
        for (int i = 0; i < poses.Count; i++)
        {
            poses[i].name = poses[i].name + poses[i].languageID;1
        }
    }

    public void SetPose(string pose)
    {
        textures.Clear();
    }

public class CharacterPose
{
    public string name;
    public string languageID;2
    public List<CharacterSubPose> subPoses;
    [TextArea(3, 10)]
    public string description;
}
  1. The language ID set in the editor gets added to the pose name. ↩︎
  2. The language ID, which is changeable in editor. ↩︎