Blog from May, 2020

Well, ok, rhubarb works for linux, they just don't mention that in their README.md. That's good. I tried it out. It works... but I think I'll still invest some time in trying to understand how to use pocketsphinx. Seems like a useful skill to have.

However, to keep moving forward with the Open Movie Project (OMP), I'll see how I can use rhubarb to do lip-synching. There is already a blender plugin, so I need to see how that'll work and what kind of results I can get out of it. I would like to have tighter integration with MB-Lab though, to streamline my workflow.

Here are the tasks I foresee

  1. Create an expression control rig.
    • Once drivers are added to the shape keys the MB-Lab expressions sliders don't work
  2. Create a Phoneme Rig.
    • This will basically control the different mouth shapes.
  3. Create a pose library for the different phonemes.
    • I have to see how that will work with rhubarb
2019/11/26 - Update

Been a while since I updated this blog. This is going to be a long haul project.

I finished a draft of the script. And I wanted someone to go over it. Honestly, it's hard finding someone to collaborate with. I decided to simply higher someone with writing experience to go over the script and polish it. I met one guy and we got to chatting. He had a few good questions, which motivated me to go back and re-examine the story. Sort of go back to the basics. I used the story I had already developed as basis for a new version of the story. I'm planning to spend a couple of days with that writer to fine tune it and make sure it's complete and captivating.

In the meantime, I ran into a really interesting show called, "Undone". It's been developed in a really interesting way. They call it rotoscope animation. Basically they film the actors and then paint over them, and create the rest of the elements in 3D or 2D animation. "Scanner Darkly" was done in the same way I believe. Here is a trailer

After watching that show it got me thinking about creating a new visual style for the show. After going through the animation test I've done, I came to realize the importance of real actors to get the emotions right. Especially, if I'll be using character generation tools like MB-Lab, I won't have the fine control to express the emotions. The tool just doesn't have the rig to do that.

What would be ideal is a mix of real actors and 3D animation. But doing something photo-realistic is simply beyond my means. I'm currently asking myself this question: Is there a visual style which can capture the actors emotions, but allow me to build a grand world without having a billion dollar budget?

Investigating...

Alrighty then... I've reached the end of a milestone. Took a bit longer than I expected, but I got there. I set off to determine what I need in order to actually make an animated short (which turned into a series). I knew that I wouldn't be modelling my characters from scratch, so I wanted to use an open source character generator of some sorts. The ones available were makehuman and MB-Lab. After comparing both, I decided to generate most of my characters with MB-Lab. Not saying I'll never use Makehuman; I will, especially for younger aged characters. For example MB-Lab doesn't generate characters younger than 18 years. However, I decided to concentrate my effort on seeing how to modify MB-Lab to fit my needs. I ended up creating a few additions to MB-Lab which I need:

  1. Face Rig to make it easier to animate facial expressions
  2. Phoneme Rig to make it easier to lip-sync

To do both of the above, I needed to do so some coding. This took quiet a bit of time. You can look through the history in this blog to see what I did. Suffice it to say, it required me to learn how to create blender add-ons, learn how to create drivers for shape keys in blender and a bunch of extra mambo jumbo, to be able to make the face and phoneme rig work.

I also wanted to automate the lip-syncing as much as possible. I looked at existing add-ons to do that. But I decided to create my own: Yet Another Speech Parser (YASP). This has two components. A C program which uses pocketsphinx library to parse audio clips and generate a phoneme description in JSON format. Basically a JSON file describing the phonemes and their timing. I looked at a couple of speech parsing libraries out there, and I settled on pocketsphinx. The second part is a python blender add-on which takes as input the audio file and text transcript of the audio file and creates the animation. This actually worked more or less well. It creates a first pass animation, which I then fine tune. One of the weaknesses of MB-Lab is its lack of finer control over the face expressions. I think Makehuman has a better face rig, but I digress. It is what it is.

Along the way I got side tracked by trying to create an automated face expression tool, which uses an open source library called OpenFace to analyze footage and reflect the facial expressions from real footage on the animated character. I did try to use it, but I found that I can get better facial expressions through animating by hand. It's actually more fun too.

Once I started doing some simple animation, I quickly realized that the MB-Lab Rig isn't very nice. Thankfully, there is an add-on which generates a Rigify rig from the MB-Lab rig. Of course I had to tweak it and change it to work the way I wanted it to. That took a while. But I really like Rigify. It's a nice rig.

It's worth mentioning that I adopted Blender 2.8 while it's still in alpha stage. So I got involved in porting some of the add-ons to Blender 2.80 as well as opening tickets and submitting a couple of python patches. If you fish for my name you'll find me buried somewhere in the commit log.

Once I was at a point where the tools I created were mature enough, I decided to apply them and my skills to create an animated scene. I flip-flopped a bit with this. I started off thinking I'll do an independent short, then I changed my mind and decided to create an existing movie scene. After a bit of thinking I settled on the latter, but which scene should I do? I was first thinking of animating a Captain America Civil War fight scene, and I actually started. I created a run cycle, and then connected that to a car jump, but then I stopped going down that path. I just wasn't that into Marvel movies to justify spending a lot of time animating one of their fight scenes. I finally decided on a Star Trek First Contact scene. I'm a trekkie at heart and I'm not ashamed to say it. I love TNG (that refers to Star Trek: The Next Generation, for you non-trekkies out there). Anyway, I sorta settled on working on that and I got down and dirty with setting up the scene and doing the character animation, etc. Below is a video walk through of the final scene I ended up with.

The TNG scene I animated was training ground to see how I can use the tools I have at hand to create my series. As far as I can tell, these tools are sufficient to create game like animated scenes, sorta like this. The quality isn't gonna be extremely cinematic, but I really just want to get to create my story and do what I love to do, which is story telling and film-making

The next step for me is to start creating the animatics for my script. I'm still toying with the idea of pushing the TNG scene a bit further and creating some proper locations, polishing the lighting and atmosphere. The jury is still up on that.

Still working on the practice animation scene. I'm further along now. One thing I'm starting to realize with that scene is the cuts. There are some unnatural cuts that break up the action of the scene. They were done to insert the reactions of the actors. But when I'm trying to translate that into one continuous scene, the pauses feel unnatural, so I have to keep adding some actions to smooth the transitions.

Been looking at open source Automatic Speech Recognition (ASR) Engines. What I want to do is integrate with an ASR engine so I can run speech audio through it and generate timing information on when words (more particularly phonemes) were spoken. I can then take this information and create a first pass lip-sync animation in ManuelBastioniLab.

I looked at a couple of ASR engines one called "DeepSpeech" and the other called "pocketsphinx". The former is written in C++ and the latter is written in C. Man pocketsphinx is a whole lot easier to understand. And it has the functionality I want. Deepspeech doesn't produce timing information. Well they do, but it's not exposed in the API, which means if I need to use it, I have to take the initiative and expose this information in the API. I actually thought about it, but it's a lot more work than I'm willing to undergo at the moment.

pocketsphinx is used in rhubarb-lip-sync. However this application runs only on windows and macs (as far as I can see) and I'm not a windows user. I have seen the light and abandoned windows. In other words, I need to have something working for linux. I'm cool if I only support linux.

rhubarb-lip-sync is also a generic application designed to work with multiple different application, like after effects. Anyway, the end result for me is to develop an application which works very similarly to rhubarb-lip-sync, but is directly integrated in blender.

We'll see how that goes.

P.S. If you're interested in learning more about pocketsphinx, here is there wiki.

I thought I'd share the updates that I've been doing to the script. I use git to keep track of the different versions, as I find the color coding version is not enough. I do a lot of changes and I'd like to be able to roll back to them. Also git allows me to enter a commit message per change so I know what I changed. Anyway, here is the story update log:


Update Log
commit 2c58c10ebb273f8e45ef13d58abf71b8d530a1c4
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Thu May 21 10:28:13 2020 -0700

    COTR: Polish pass
    
    Cleaned up some language mistakes and some dialogue.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 97965abbbb67a2db59c01ab86b09dde7ec8ab9c3
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sat May 16 15:58:19 2020 -0700

    COTR: Polish pass
    
    I don't want to say this is the final version
    but I think I'm leaning towards making it so.
    I have to call it done at some point
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 50318217b89186c58728bc3e1ced459b5b933d35
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Fri May 15 23:12:40 2020 -0700

    COTR: Rewrite of Act 1 complete
    
    First draft of the rewrite of the first act is complete.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 1d1983b89e40a9551ed3af08757b84badfd0c848
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Wed May 13 21:12:43 2020 -0700

    COTR: First phase of changes
    
    Added a scene where Mary teaches kids
    They get busted for having an illegal school
    They escape.
    Mary meets Jaime and Patrick.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 101994f5bfc476fe1c9a5f94cae047ccc8d98049
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Tue May 12 20:11:59 2020 -0700

    COTR: plan for rewriting the beginning
    
    Minor updates to the plan
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit f89b183d984fde595ae12541754ce3073193df82
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun May 10 15:33:17 2020 -0700

    COTR: Updating the mid section
    
    A plan on changes for the section after the decoration shop
    sequence. Basically, I've drawn Mary as someone who tries to
    educate kids about her tradition and her culture. She views
    education as the way to change the world around her.
    
    Joseph on the other hand feels betrayed by his surroundings.
    He would rather fight the Eitorians than live with them.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 253fcbd15ba4282726032632a12e3d21ecc0d3df
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Tue May 5 16:04:09 2020 -0700

    COTR: Ending change and polishing
    
    Changed the ending to have Mary and Joseph go find their parents.
    Hadrian mourns his father.
    
    Polished language and dialogue
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit f1fa99eaa7ceebbf4730aeebedd5c019e06ef086
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun May 3 12:27:45 2020 -0700

    COTR: Alternate ending
    
    Continuation of a rewrite of Act 3.
    Added another script with an alternate ending.
    In the first ending Mary and Joseph are adopted by Patrick.
    In the alternate ending Mary and Joseph go with Eimar to look
    for their parents.
    
    The alternate ending provides closure on all story lines
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 45112c336bdac0c35d7d8eeec24df9275ca6847b
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sat May 2 20:27:50 2020 -0700

    COTR: Updated Act 3
    
    Extensive changes to Act 3.
    The main purpose is to streamline Mary and Hadrian's storyline.
    And to merge more readily into Joseph's storyline after he leaves
    Patrick and goes to rescue his sister.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 4c03b46f85422e71fc63daf6da116a2f312974e7
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sat May 2 08:14:01 2020 -0700

    COTR: Finalize the end sequence plan
    
    Gave a do over to the ending. The point is to streamline the story
    and to connect all the different elements of the story.
    Possibly, build Hadrian as the main villain of the next installment
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 7a881be37d40f8aa0829180c0ffb4538c307148b
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Thu Apr 30 01:14:14 2020 -0700

    COTR: Plan for changing the end
    
    Added a plan to streamline Mary's storyline.
    Added a tattoo which Mary and Joseph will have.
    We will reveal that this tattoo is given to all the people of their
    town on birth. Hadrian has a faded or burned off one. He doesn't
    remember how he got it. We build up the relationship between
    Hadrian and Mary. Hadrian confides in Mary the secret of him being
    half Stronglandian. But she ends up betraying him to save the baby.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit c92dff39b95d619ec5f1267bd853219842054275
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Wed Apr 29 17:05:37 2020 -0700

    COTR: Polish Pass 9
    
    Another polish pass to clean up language and dialogue.
    
    A plan to change the middle of the story and align
    Mary's storyline with Joseph's
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 13ba18dba35782fefb79da47bc721bc6c4fe9a31
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Mon Apr 27 02:42:56 2020 -0700

    COTR: version 2 of the pinboard
    
    Mainly cause I changed the wrong one and I didn't want to override
    what was there before.
    Both should be very similar. I just use this to check the story with
    the Save the Cat Structure.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 067bbbf8999611b8c599a628932961a3de3cc889
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Mon Apr 27 00:55:21 2020 -0700

    COTR: Some major plot updates
    
    Beside the list of updates mentioned prior, one major change is how the story
    starts. One of the big issues I was having is the introduction of the
    beast/Eimar character. We see him on page 1, and then we don't meet
    him again until page 26. And on page 1 we don't establish anything
    about him. Basically the story now starts with an establishing
    scene between Joseph and Eimar.
    
    We show how they are friends, and then Eimar gets hunted down by
    Eitorian hunters, weaponized and used to attack Patrick and his family.
    This leads to significant conflict between Alfreda and Joseph later on
    when Alfreda wants to kill off Eimar.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 4866b697eb1cd398ac50301598e190033128f63c
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sun Apr 26 07:02:45 2020 -0700

    CORT: Polish pass 8
    
    Started updating the script with my previous comments
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 86a3a7d7b9a1c8916c47bb0bda7883a7b014403a
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Sat Apr 25 12:06:17 2020 -0700

    COTR: Finished the Synopsis
    
    Wrote a synopsis which turned out to be too long and
    probably not very well written. But the up side is that
    I identified a few things I need to update in the script
    
    1. Need to refer to Patrick's family as "The House of Patrick"
    2. Need to refer to Marcus's family as "The House of Marcus"
    3. Patrick exact title is "Sir Patrick the Second"
    4. Joseph and Mary's country is called Strongland
    5. The people of Strongland are called Stronglandians
    5. Patrick and Marcus belong to a country called Eitoria
    6. Patrick's people are called Eitorians.
    7. Mary and Joseph's province is called "Little Strongland"
    8. Update the beast attack scene. The way he's controlled is by
       stabbing him with poison and then when he is confused they
       get him to sniff a person's garments. He then redirects his
       rage and kills those people.
    9. When the guards shoot at the beast they should dip their arrows
       in poison.
    10. Joseph should use the rope trick to disable the chasing guard.
        Thereby, foreshadowing how he will trick the beast.
    11. Update the scene when Joseph wants to return the baby for the
        reward. Mary should want to return the baby to Alfreda. Joseph
        should counter that Alfreda most probably didn't survive the
        attack.
    12. Joseph then remembers the conversation with his sister and
        Alfreda.
    13. We need to add the medallion in the new sequence.
    14. We need to update the sequence when he meets Alfreda. Does it
        still make sense for Joseph to get Mad at Alfreda?
    14. Update the sequence when Joseph goes to Patrick's house. It is
        no longer the case that Alfreda tricked him to go there.
    15. One question we still need to answer is how is Marcus planning
        to put in effect the signed contract. We can make it clear that
        he plans to kill Patrick once he signs the contract and then
        he will spare Jaime and the baby since they'll be of no consequence
        to him. Are we going to need to foreshadow the fact that the leaders
        of Eitorian houses have the right to put to death people who betray
        Eitoria?
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit a7bb317ef70d4a658f20813267416918a08a3e42
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Thu Apr 23 12:03:36 2020 -0700

    COTR: Story synopsis
    
    First draft of the story Synopsis
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit adbb7d41b640d99c4acb6530ac61cfbe61b209f6
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Wed Apr 22 19:24:12 2020 -0700

    COTR: Major Story update
    
    I cut out the following: 1. The sequence between Zakary and Joseph, where
    Joseph steals the money (not necessary) 2. The sequence of Joseph and Mary
    going back to the place where they live (we already established they are
    poor. So there is nothing interesting there) 3. The sequence where they
    meet Alfreda again (Doesn't add anything except exposition) 4. The
    sequence when they run into Marcus and decide to kidnap the baby back (I
    always felt it's just too coincidental and I wasn't comfortable with it.)
    
    This cuts out all that middle chunk. I think it makes the story a lot more
    streamlined. That whole section which I cut out doesn't seem to add much
    to the characters. We already know that Mary is the impulsive but good
    natured kid and looks at the good side of people. While Joseph is
    established as the guy who just wants to survive and take care of his
    sister. Marcus is the bad guy who doesn't like fair skinned folk. Patrick
    and Jaime are the mixed race couple in royalty who are not very well liked
    because of the threat they represent to the ruling class.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 13c6f5b74019c955443ad119d23567b2b716fc6c
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Wed Apr 22 09:00:16 2020 -0700

    COTR: Updates to the scriv file
    
    Updated the sequence when Mary helps out Alfreda and Jaime
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 134317b831341a83528fc678d8fededc7a22798f
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sun Apr 19 20:09:43 2020 -0700

    COTR: Pinup board updates
    
    Updates to the pinup board for posting online
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 94d271cd1f22e6f5cb374d33ed5c0f7c63d79428
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun Apr 19 13:43:43 2020 -0700

    COTR: Polish Pass 7
    
    Some more cleanups. Tune the dialogue. Correct
    some of the languages.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit e75a7de3d1bf95e48a57311d12b29ce19728372c
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun Apr 19 00:44:18 2020 -0700

    COTR: Polish Pass 6
    
    Minor language updates
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 3aec4109194e0b8da95004ec3f67ec6f63625c04
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Thu Apr 16 21:28:40 2020 -0700

    COTR: Blue
    
    Blue revision started
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 4f2ed786adf6adc6189360da5ca2c0880ab13098
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Tue Apr 14 18:55:08 2020 -0700

    COTR: update pinup board
    
    Updated the pinup board with the story details
    
    Added the dramatica books so I don't lose them.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 0aff1a6a6c0b376dddafbc0e6a2916bdd358ac21
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Mon Apr 13 22:28:41 2020 -0700

    COTR: Polish Pass 5
    
    Minor cleanups in language and events.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 0cba17f87331b42f18661ac77873f3903a0684dc
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun Apr 12 18:17:38 2020 -0700

    COTR: Pin Board
    
    Story in Pin Board format.
    Needs Writer's Cafe to view
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 226218fc271e727f66010baf14ef14b630f0eab6
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sun Apr 12 10:18:16 2020 -0700

    COTR: All is lost, Dark night of the soul
    
    Updates to All is lost:
    Joseph seeks out Alfreda, bring the beast to her front door
    They face the beast together.
    Joseph's decision to save the beast backfires and Alfreda dies
    Joseph has to bury her.
    
    Updates to Dark night of the soul
    Along the way Joseph gets lost
    He ends up in the den of some of these beasts
    He loses all hope. Submitting to his inevitable end he faces off
    the beasts
    The main beast comes into the scene and saves him.
    They become friends
    
    --> leads to: Gathering the team
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 2c16cbf5621c421f1319de681dc3616aa6244a9a
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sun Apr 12 08:14:36 2020 -0700

    COTR: Polish Pass 4
    
    Minor corrections
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 328ca64f9f17c57f946526d80f227e96ee511ff7
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Sat Apr 11 18:10:05 2020 -0700

    COTR: Polish Pass 3
    
    Updated various dialogues and shortened the script by 3 pages
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 049f9a8afe172f5dd229eb64e92d0034900d0a0b
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Fri Apr 10 22:17:12 2020 -0700

    COTR: Updated title page
    
    Added story by section.
    Changed the tagline
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit a6548c8577cb078705488f6e0d688fe4628041ed
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Fri Apr 10 22:14:35 2020 -0700

    COTR: Polish pass 2
    
    Addressed Sergey's comments and made some more polishing
    to the script. Mainly language fixes.
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit e94ac577cc57b2ffc9befd72998cd193755b713c
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Tue Apr 7 00:46:08 2020 -0700

    COTR: First polish complete
    
    First polish pass complete.
    Next step: breakup into smaller scripts
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 6d6ca6b8f29c27f219c495e871a996a60c8b5a7b
Author: Amir Shehata <amir.shehata@gmail.com>
Date:   Mon Apr 6 08:19:35 2020 -0700

    COTR: Polishing Pass
    
    Going through my first polishing pass. Some changes
    in dialog
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 51dd9c8271fc0f09a160bd2369d92b423af87cce
Author: Amir Shehata <ashehata@whamcloud.com>
Date:   Sun Apr 5 08:27:45 2020 -0700

    COTR: Updates to the names
    
    Updated the name of the Constable to DUDLEY for easier reference
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 8421cb2628e53410df3edfafb16f729c643e8139
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Sat Apr 4 20:06:22 2020 -0700

    Writing: Updates
    
    V4 of Christmas on The Run
    Trapped - short story idea
    
    Signed-off-by: Amir Shehata <amir.shehata@gmail.com>

commit 7d8dfa24ea8c2a4f98b1f1f9b46411f277e531b1
Author: Amir Shehata <atozchristianproductions@gmail.com>
Date:   Thu Mar 26 21:23:44 2020 -0700

    Initial Commit of Stories

commit 1adaff1006d6862d4ab04ed79f31596ea7988c08
Author: atozchristian <62731192+atozchristian@users.noreply.github.com>
Date:   Thu Mar 26 19:36:47 2020 -0700

    Initial commit



2020/04/19 - Story

I finally have a script. I'm still working on polishing it, but I thought I'd share the storyboard.

So I think I'm drawing to a close on the script. I'm sure there are ways to improve it, but at this point I want to move to doing some pre visualization of the first scene of the script.

I've been debating whether I should hire someone to do a script analysis and suggest areas of improvement. My problem is this type of service is usually a hit and miss service. It would be nice if I have a bunch of people who would be willing to read the script and provide their independent feedback. This would be highly useful, but it's hard finding such an audience. Guess we'll see.

2019/08/16 - Update

Just a quick update. I finally decided on which scene I'll animate for practice, and it's this one. As I work through the scene, I figure out what works for me and what doesn't and how to improve my workflow. Here is what I have so far:

2018 passed pretty quickly. It amazes me how fast time goes. The passage of time has its advantages and disadvantages. One of its advantages is it motivates people to accomplish goals. If I had all the time in the world to get something done, it's likely I won't get it done with any urgency. But I know my time is always running out. A fact which motivates me to work and get things done.

Putting philosophy aside, I think this week has been somewhat beneficial. I worked through the story with Nicole a bit more. I think we're working through the plot holes. I've also figured out something new about the ManuelBastioni Lab. It has a very extensive set of shape keys, which in theory should be a replacement for a facial rig. You know what that means, I'm using it in my proof of concept short. It's superior to Makehuman. The control it gives you over modifying the character is better, the skin shader is better, the weight painting is a lot better, the muscle system and rig are awesome. Only disadvantage is it can't be used to create small children, so I'll need to use Makehuman for that.

The next step is to fit the ManuelBastioni character with some clothes, then we're set to start building the location and moving forward with the 1 minute short. I'm excited. Hopefully, I'll have something completed in the first month of 2019.

I'm disappointed Manuel Bastioni has decided to stop supporting the lab. I understand where he's coming from. No one has showed him any support and it does take a lot of time to get this lab working properly.

I put some time into porting it to 2.80. I have taken some clothing assets from Makehuman, and I'm planning to make them available for the ManuelBastioni Lab. Maybe that'll encourage others to contribute assets, which will be all around useful.

I do think having a facial rig is useful, but I hate weight painting. I need someone to help out with that. Hopefully, we'll be able to get that project completed in 2019.

YAAM seems to be gaining some traction. I put a post on blendernation: https://www.blendernation.com/2018/12/28/free-download-asset-manager-add-on/ Got 45 shares... which ain't bad. And another dev is also working on it, so I think it could get some cool features implemented in 2019, which will make it even more useful.

I also made some small contribution to the Blender add-on code base, mainly around porting add-ons from 2.79 to 2.80. Not too shabby. Looking forward to contributing in more significant ways in the future, if I get an opportunity.

Well, signing off 2018. Happy New Year to all. And hope you accomplish your dreams in 2019.

Yup! Can you believe it? I not only have one script I have an entire season, 10 episodes. Granted each episode is about 3-5 minutes long, but hey, it's a full story. The way I figure it what I wrote can be a Youtube/online season, or it can be a 45 minute pilot episode. Since I'm making it, I'll go with the former.

After months of brooding and moaning and chest beating, I sat down and wrote all 10 episodes in two days. Weird, eh?

Here comes my next dilemma. I want to share it publicly, but like any artist I have some insecurities that it'll get torn to shreds. Of course, there isn't that many people (if any) following this site, but I'm still not sure if I should share it publicly.

Here is what I'm thinking. I'll keep it under wraps for now and I'll share the output of the actual production cycle publicly, including all 3D resources, files, etc.

But I'm looking for feedback, so if you're interested in reading the scripts and providing constructive and detailed criticism ping me here.

2019/05/04 - Where to now?

It's been a while since I updated this blog. I've hit a bit of a lull. Work has been taking all my time. I've been thinking though, where to go from here. There are two directions. I can keep going down the technical path. Try to enhance my facial expressions system. Or I can start revisiting my story. I really want to produce something creative. So I decided to head down the creative road. I'm working on a short film idea that has some potential. Once I have it well formed, I'll share it on here. I still like the direction the story I have outlined here is taking, but I'll take a break from it and explore a slightly different world.

My dad used to tell me write what you know. I never understood what that means. If I only write what I know, I'll write really boring stories. But I think I have modified his advice to something that makes more sense to me. Write the characters you know. The most important aspect of a story is the character. If you analyze any movie you like you'll come to the same conclusion as I did. Characters are what draws you into the story and keeps you glued to the screen or the pages. They are the ones who make you feel something. You relate to them, and you care what happens to them. The challenges and the "plot" is what brings out the personality of the character. They are the events which show what the character is made out of; their courage; their compassion; their fears; their love. And these aspects is what makes the viewer identify with your character.

As a writer the character, I believe, has to come from a personal place. In essence they are a part of you. If you don't write from what you know, the character you write will feel contrived and fake. But if you write from your own experiences, then they might, just might, be relatable. For this reason, I decided to write a character which I have personal experiences with. The world I'm thinking of is not a real world. It's a futuristic world, which I haven't seen done before. The character will leave the world she knows behind and be thrust into the other one with no way back. She will need to navigate this new world and rediscover the purpose she thought she lost.

YAAY... I have something working. Now I know you might think it ain't great animation. But in order to get to great, you need to pass this post first. Keep in mind, this is all automated. In a few clicks, you can get a lip-sync. There are still some improvements I'm planning in two areas. 1) The poses. I need to clean up the poses for each phoneme a bit more. 2) Keyframing. I'm going to introduce a polish step to clean up the keyframes. This step will require some trial and error to figure out a bunch of lip-sync heuristics. As an example, I don't have to turn off a pose completely if it'll morph a few frames later. Things like that, I believe will make it look a bit better.

Of course at the end, it'll require some manual clean up to really polish it.

I'm also planning on adding some emotional meta data. This information will translate into corresponding facial expressions and head movements. I'm thinking the input will be a wave clip and an XML file, which would include the transcript and emotional meta information, sorta like this

<transcript>

<panic>We have to get out of here</panic>

<sad>but with a broken leg he can't come with us</sad>

</transcript>

Anyway, still thinking on it.

It's a lot of work, especially when I have to learn how to interface with the Blender Python API. It's a lot of visits to the API documentation, and looking at existing add-ons to understand how they did things. Not to mention a lot of trial and error... But I'm getting there.

I'll have it done by Christmas 2018... It'll be my Christmas gift for myself! And for whoever wants an asset manager.

I decided what to call it...

YAAM: Yet Another Asset Manager

I think it's kinda clever... yet not completely original :) It's a spin off YAML: Yet Another Markup Language.

2018/12/17 - Asset Manager

As I was working through my pipeline, I ran in the first obstacle. I need an asset manager built into blender. An asset manager is a key piece of the pipeline needed to stay organized. Otherwise, I'll be forgetting where everything is.

I looked around. I found one, called Asset Flinger. I looked through it and it looked cool. But it had two problems: 1) it only worked with .obj files and 2) It only works for Blender 2.79. I'm building my entire pipeline around Blender 2.80. So I decided to convert it to blender 2.80. After converting it, I decided to spring forward and actually write my own Asset Manager, which I can use for the open movie. The idea is I should be able to work with different types of assets; obj, 3ds, blend, images, materials, etc.

I forked the Asset Flinger repository. The 2.80 compatible add-on is available here.

To be honest I found one for 2.80 on blender market for $40, but I decided against buying it. I want to build my own. I'm now 100% in Software Development mode.

I had only dabbled with blender add-ons, but nothing serious. Writing this add-on has been educational for sure. It's been 3 days working on it. I got the interface there and currently working on the functionality. Here is a PDF of my design document. And below are a couple of screen shots. Once I have it complete I'll upload the code on github.

Although I started with the Asset Flinger code, what I'm writing is its own add-on. I'll create a new repository for my Asset Manager. Felt like I should clarify this, since the images below carry the name "Asset Flinger", but the final add-on will not be named that.