Saturday, March 6, 2021

Pipeline 1: Jetpack Jones - Flexible Mouth Rig Pt 2

  For the second part of the mouth rig, the blend shape geometry is firstly skinned to all the ribbon bind joints (following keying some animation on each group.)

  Starting by flooding all the weights to the base joint for the whole head, all the vertices around the mouth are then selected and flooded to the lower central ribbon joint. 

  Painting around the mouth, the idea is make sure the movement is soft and that there is no sharp areas. Following this, areas that are not needed are locked and the weights are painted from the central lower joint to the correct joint.

First Binding


Flooded to the Lower Central Joint

Softening the Flood

  When all the weights are assigned and any influenced are removed, the weights are then blended using the Add/smooth option. The weighting amount is dependant on it's placement in the ribbon. Finally, the blended weights are mirrored across to the right side. As I had some very slight inconsistences on one joint, the weights didn't 100% copy. So I went in and did a little manual painting.




Mouth Rig Progress

This part took me several attempts as influence keep appearing across the mouth, causing it to become quite frustrating. But in the end, I managed to get it done. However, A lesson I have learnt to it make sure the geometry is 100% symmetrical on both sides before attempting any skinning in future.

Pipeline 1: Jetpack Jones - Flexible Mouth Rig Pt 1

 Turning off the skin cluster for the head, a duplicate was made to make the mouth rig. We have to make sure the duplicate has no abnormalities as they will become a permeant problem for the blend shapes.

The new head is then moves up 8 in the translate y axis. 

Duplicated head

  Making another duplicate, they are both removed from the parenting chain and one renamed as Mouth_BS_Target_Geo. This is then removed from the view port onto a layer and the newer version moved into it place. 

  Making a selection of two strips of faces in the lips, the rest of the head mesh is deleted. The inner row of faces and the corner is also removed and colours assigned so we know which part is which.

  Renaming them as Upper/Lower_Ribbon_geo and assigning them to layers, some of the edges are removed from the geometry, leaving us with 3 edges on each side. The edges need to be identical on each side. However, there maybe a slight difference on mine.

Ribbon Geo's

  Placing them into a group (Ribbon_Grp) and laying out the UV's, follicles (nHair) was added to each face of the lip geometry. Everything apart from the follicles was removed. Each follicle is named as Fol_L/R/C_Upper/Lower_Ribbon_0X depending on it place.

  At this point, Maya kept crashing on me when I used the hair system. Asking online in the Autodesk help, a solution came by changing the animation from Parrell to DG in the animation tab would stop this(under setting was needed).

Follicles

  After the follicles are done, some bind and control joints was added, Bind joints being placed under the follicles (making parent groups). With the bind joints in, the follicles was removed from the viewport so to reduce clutter.

  Following this, some Control joints was placed (which are larger and coloured Yellow). These was placed onto edges rather then the bind joints, using C to snap them the right place.

Bind and Control Joints

  Applying the corner joints was quite fiddly, which was likely down to how tight and overlapped my geometry is. I know for next time to not have the mouth so overlapped. Once the joints on the left side are set, they was renamed and then mirrored across the the right so to be be in the exact same position.

These joints are then placed into groups: the corners, upper and lower. Then, placed into a overall groups called Ribbon _Jnt_Ctrl_Grp.

Each control joint is then placed into it own group and the pivot placed onto the joint. 

Removing the lower lips via the show option in the view point, the geometry was then bound to the joints (selected joints). Placing animation on all of the groups, the weights was then painted with the paint weight tool.

Blending the Weights

The weights was then blended out to give a smoother transaction when being moved. Once the top lip is done, this is then repeated for lower lip.

Finished Ribbon So Far

Friday, March 5, 2021

Premise - "Sock Stealer" Revamped

   In discussions with my design tutor, Justin, it became clear that my creatures where a little too generic and don't quite fit into the environment. The idea itself was still good, but some tweaking was needed.

  As the environment is to be styled around a young artist girl who is messy, has toys/clothes everywhere and makes things with fabrics, it allowed scope for these creatures to be a part of her imagination. However, its not just young children that think like this, I often think about odd creatures around the house. 

Wild Boar

Sun Bear

Grumpy Dogs

  To start with,  I knew I could use some aspect of the previous ideas, such as the "grumpy and solidary" nature. Doing some research, animals such as wild board , sun bears and a few breeds of dogs hold theses traits. Incorporating these would also help in the "hungry" and hording part of the personality.

Adobe Colour

Colour Pallets, Textures and Home-made Teddies

  In terms of texture and skin, a big change came about here. We discussed the "Sock Stealer" having a some parts of its body that can resemble material, such as the ears. However, I felt that a "patch work/material/knitted" mimic appearance would help it blend more into its surrounding environment and would give more solid reason as to why it eats socks/clothing. Not only to adapt the colour to its own body, but as a energy source. 

  Following this some research was done into home-made teddies and textures. However, pinpointing a colour pallet was causing a bit of a problem. Patchwork can be a bit random, so I decided to look at Adobe Colour and use the "Double Split Complimentary" setting to help.
Basic Environment Idea

  With these things all set, the following ideas came around. I feel this is much better and that there is some direction to the project. It's going to be interesting to see if the texturing and modelling is doable, but this is what this project is about.  

  Referring one one of my artist influences, Shihab Aldeen, has made me feel that using outlines is fine for this style of design.

New "Sock Stealer" Sketches

"Sock Stealer" Design 1

   There is still a long way to go in the project, but now it's starting to like it's moving along. In terms of the amount of creatures in my project, I have decided to keep to just two. I feel it's more important to have less and to be capable to fully commit to the work load then overstretch myself, therefore resulting in a bad job.  Finally, I need to think of a names for these guys.

Pipeline 1: Jetpack Jones - Adding Facial Controls

 Cleaning up the outliner first, all the components (apart from the eyes) are placed into the "Geo_Grp" in the Master Group. 

 For the jaw control, a "taco" nurb is removed form the control group an snapped to the end jaw joint. This is then resized and rotated slightly (using the side view) so it stands out in the outliner, removing any transformations once happy. 

  Snapping the pivot to the jaw_rotation_jnt, a parent constraint is used to allow rotation.

Jaw Control

  The "taco" nurb is then duplicated twice and placed in conjunction with the two neck joints, flattening out the curve (using the CV's) to give a better appearance. The nurbs needs a little rotation and moving around to make sure they don't cause the clavicle controls any issues. Once satisfied with the placement, both controls pivots placed onto the joints and a parent constraint was used.

Neck Controls

The neck_01 control is then parented under the neck_02 control.

 For the lower heads squash and stretch ability, another half circle nurb was placed around the mid-point of the ears and the pivot snapped to the lower_head_jnt. The jaw control was then placed under this new control, which in turn was parented under the second neck control. This allows the jaw to move with the rest of the head.

Lower Squash and Stretch

Added Jaw Control Rotation

  There also needs to be a control for the upper heads squash and stretch. Using a  circle that has be modified to curve with the skull (using the CV), the pivot was placed onto the upper_head_jnt and parented. 

This is then parented under the neck_02 control and new hierarchy placed under the Chest control.

Upper Head Squash and Stretch

Upper Head Control Rotation 

  Switching on the centres of the eyes using the display handles ( via display in the attributes), this will help with setting the aim constraint.

  Snapping a nurb circle to the centre of the left eye and then bringing it forward in Z, the circle need to be rotated and resized to fit around the eye in the view port. Once happy with the size, it is then duplicated and placed to fit around the right eye (grouped and scale - 1). 

  Another Nurb Circle is placed around these two eye controls to create a mask effect and a parent constraint is utilized (the two smaller circles under the mask nurb).

Eye Controls

  Grouping the corresponding eyeballs and corneas, a aim constraint is placed between the eye controls and groups.

The aim vectors attributes in the "aim constraint options" need to be 0, 0, 1. This changes the plane aim from X to Z.

  Following this, the eyes groups are placed together and renamed as the "eye_master grp". The controls are placed into their own group called "eye_follow_grp". The eye master group is then placed into the the "Geo_grp" and connected to the upper_head_jnt using a parent and scale constraint.   

  For the eye controls, these is placed under the world_control so they move with the character.

  The option of moving the eye controls via the head is created by parent constraining the eye_follow_group to the head_base_jnt. A channel was then added so to be able to switch between the head moving the controls and having the ability to move them manually.

  Adding a Enum to the control, a channel called eye_follow with a on/off option is placed. The channel is then connect to the constraint via the connection editor. 

Eye Controls

Eye Follow Enum Channel

  A "face camera" is then placed on to the eye control, the focal length is change to 70 (creating a flat view) and it is then parented under the master_eye_ctrl. Locking the camera, we make sure it is then hidden from the viewport.

  The eye controls are then moved backwards to be behind the camera (using the CV's) so as to not obscure any facial shots. 

Adding a Camera

Facial Camera Shot


For all the new controls, limit are placed and unneeded channels are locked/hidden.

  So to be able to turn off the eye rig, a new star nurb control was placed to the front of the World_Ctrl and parented under the Master_Ctrl. Another enum was placed into the channel box called "Facial_Ctrls" with a On/Off option and a set driven key was used to make it operational. The original star nurb control was renamed as "Body_Ctrls" so to stop any confusion.

The Progress so Far

  Finally, the rotate options for the jaw control was brought back. This will allow more extreme variations of animation in the face.

Wednesday, March 3, 2021

Premise - First Rough Storyboard

  I have now done a rough storyboard for both characters and a small interaction scene. As this project is mainly aimed at character design, rigging and texturing, having a elaborate animation is not essential. However, I felt that a having small interaction after the singular dioramas would show how these characters would interact in their world. 

  This is very rough and has a lot of room for improvement. I'm hoping after a tutorial tomorrow, a little more clarity will come forth on where to go from here.

  Following these short sequences, the character/set turnarounds will follow.  

In terms of animating styles, I'm wondering whether to start these short sequences at a 2D drawing (like a hand drawing/ illustration) and then become 3D. This is still a area to be explored. 







 

Tuesday, March 2, 2021

Texturing Lesson Pt 5 - Learning Substance Painter

 Moving into substance painter, the goal is to learn to do some basic texturing straight onto a the maps of our model and then replug them back into Maya.

  Firstly in Maya, we smoothed the geometry of book (Catwall-Clark and subdivisions of 2) and placed new Blinn's on both the book and the wood. Both of these was combined together to be one model and then exported out as a .obj file. 

  Moving into Substance Painter, a new file was created with PBR Metallic Roughness (Algorithmic) as a base, the exported obj file selected and the document size set to 2048. 

  Once imported, multiple maps where baked for both objects and these was used to help create new textures. Once happy, they was then exported and plugged into Maya (via Standard Surface.) The "Height" was utilized via the Displacement node, whilst others where placed into the Base Colour channel, Metalness, and Roughness. 

  The Colour channel could be kept to RGB but the others needed the following settings:

- Colour space = Raw

- Ignore Colour space rules = On

- Alpha is luminance = On


  In the Geo nodes, the following settings was required to make sure the maps worked correctly:

Arnold - Subdivision = Catwall-Clarke

Height = 0.2

Scaler Zero = 0.5

Bounds Padding = 1

Maya Node Texturing

Working in Substance Painter
Substance Painter Finished Outcome 

Premise - "Sock Stealer" First Rough Storyboard

  As I now have a rough idea of how the creatures are going to look, I decided to try an do a rough storyboard. Working from the "Sock-Stealer" first, a small scenario was made of to show it's interaction with a bedroom diorama.

  As my project is mainly aimed at character design, modelling and rigging, having an extensive animation is not essential. Therefore, these will be short snippets of their movements and behaviours, leading up to answering some "odd phenomenon" questions. In this case: "Why Do Socks Go Missing?"

  There will be more variations of these storyboards to try a capture the creatures behaviours correctly, but this a start. 


Monday, March 1, 2021

Pipeline 1: Jetpack Jones - Facial Weights Binding and Blending

 To start the facial rigging, the current head and it components current binding needed to be unparented. Doing this turns back on the "Inherits transforms" for the head and makes the components float in the outliner. This makes need transforms information on the components so its best to make sure they are clean.

  Starting the skeletal structure for the head, a new joint chain is added for the "jaw rotation". This was measured with curves ranging from the eye, ears and bottom of the head. When renaming, they are a  central control so the suffix c_ was used. 

Measuring with Nurb Curves

  Following this, a new joint is added above the second neck joint with the "Add Joint" tool. Removing the parenting chain between the head joints, the new joint was duplicated two more time and placed slightly apart.  These was renamed as upper/lower/base joints. The jaw_rotation joint was parented to the lower joint and then all parented together as so:

upper joint - lower joint - base joint

base joint chain - neck joint 2

Added Joints
  The skin was then bound to the selected joints in the following order:

neck joint + neck joint 2 + jaw rotation joint + lower joint and lastly the upper joint


  Starting by flooding everything to the lower head joint, some animation was added to show how the weights are working. The weights was then painted to the correct areas using the grow selection and smoothing options.

Flooded to the Jaw Rotation Joint
Weights Blended
Mirrored
Blending in the Paint Weight Tool
  Using the mirroring and flooding options on a low value helped to make the weights flex better.

  Following this, some animation was placed to the neck joints and the weights was painted/ blended. I found this part quite difficult to get right and there seems to be a slight pinch in the mesh at the back of the head. Although I want to smooth this out, I feel it was best to take this a learning curve and keep going. Moving the mesh when bound will cause a lot of problems later on. 

Neck - Pre Blended
Neck - Backwards Post Blend
Neck - Forward Post Blend
  There is some collapse in the front of the neck when going forwards, this is due to some odd twisting in my geometry. Again, this is a lesson to move forward with. 

 For the stretch in the top of the head, all the weight above the nose was flooded to the upper head joint and then gently blended outwards to stop any odd stretching. 

Blended Upper Head

  To finish the facial wrights, all the component's was brought back into the viewport and the weights copied over from the head after the initial binding. This  allow the components to stretch the same way as the head.

  Some areas around the bottom of the head band needed some further weighting as there was deforming when stretching.

Binding the Components
Weighted Components

Major - Submission Post: Final Animation, Reflective Statement and Links

Final Reflective Statement When starting the Major Project, there was still quite a lot of work left over from Minor for the planned final...