FMP 9: Rigging Part3

This week I rigged the car in UE4 and used Control-Rig. Control Rig is a plug-in for creating controllers in UE4. In the traditional process, only the completed animation can be imported into the engine. If you want to modify the animation, you need to re-import the engine after making it in Maya. If you use Control-Rig, you first need to import the skinned car into the engine, and then use Control Rig to create a controller, so that you can make animations in UE with Sequencer.

First create a controller like in Maya, corresponding to the overall movement and the direction of the front wheel rotation.

The control system creates a blueprint similar to that in UE4.

It should be noted that the order of control, the order of XYZ will lead to different results.

This is the final result of car rigging:

FMP 8: Rigging Part2

This week I have bound the scarf and the necklace.

The main reason for binding them separately is the uncontrollable nature of the dynamics simulation. It can take a lot of time but the end result is not good.

For the binding of the scarf, I used the official Maya BonusTools, which has a DynamicJoint function that can simulate bone joints like hair or fabric.

Here I used it to bind the scarf and kept a controller at the root so that I could adjust it later in the animation, while the rest of it would be animated automatically, making it easier to animate.

And for the necklace, I tried a number of approaches. Considering that throughout the animation it is mainly the ring on the necklace that is moving, driving the rest of the necklace. So I created IK Spines at both ends, both ending at the centre of the ring. This allows the chain to move simply by controlling the ring.

Finally, the binding is complete! Now it’s time to animate.

FMP 7: Rigging Part1

When I was making the model material earlier, there was a step in the middle to modify the model that I forgot to explain.

Because I wanted to make sure that the lighting on the face was as smooth as the 2D animation and did not create strange shadows, here I manually adjusted the normals of the model’s face so that it tended to be spherical overall. This way there are no strange shadows in the eyes or mouth.

Original Normal
Modified Face

I am still using adv skeleton5 for this character binding and intend to use his features in more depth. It is better to save time in drawing weights.

First I chose only the body for the positioning of the bones. Here I have kept the model of the shoe to refer to the size of the foot, as I will later remove the internal model and only keep the parts that can be seen.

I then created the controller to skin the character.

This time I used the Deform function in advSkeleton5 to create the SkinCage, by resizing and positioning the SkinCage to match the model as closely as possible and then using CopyWeights to set the weights correctly.

The other objects on the body can then be bound together by copying the skin weight. It doesn’t matter if the weights are inaccurate here, as cloth simulation will be done later on for the jacket and shorts.

Next, it’s time to do the faced Rigging. I have already done this in a previous term, the only thing I need to be aware of is that the game engine is checked when binding because it will be imported into UE4 later.

This completes a basic binding. Afterwards, some special objects have to be bound individually.

FMP 6: Cel Shading in UE4 Part2

This week I am focusing on enhancing the cel-shading effect and I want to add a stroke effect to the model. This is because lines are an important effect in some of the classic cel-shading animation work. In this style of film, the stroke also provides a degree of additional detail.

Here I have taken some of the official UE stroke effects and used postprocessing to stroke the full screen.

This is the node for postprocessing materials. The basic principle is to get the depth information of the screen space to get the front-to-back relationship between objects or the objects themselves. This allows you to determine where to stroke the edges. An additional advantage of using depth information is that when the camera is far away, the stroke can be adapted and a better result can be achieved.

The custom depth in UE4 allows you to control the on/off of the object stroke effect.

In traditional celluloid animation, you can notice that some distant scenes are not stroked. In UE4, the SphereMask node can be used to make the stroke effect fade with distance based on the camera position.

Overall node for post-processing materials:

Comparison of final results.

It can be seen that the model with the stroke effect has more detail.

FMP 5:Cel Shading in UE4 Part1

This week I have been working on setting up materials in UE4. Considering the style of the short film, I wanted to use a cartoon-like rendering style, which has a technical term called Cel Shading. By analysing some established implementations, I decided to use the Lambert lighting model.

In UE4, there is no ready-made lambert lighting model, but the nodes it provides can be used to easily implement the algorithm. Obtain the direction of the light source through the blueprint, and then calculate with the surface normal of the object to realize the lambert lighting model.

Lambert

But at this time, we can notice that the current result is not good. The shadow part is completely black, which will lose a lot of details. Although in some old comics, the shadow part is pure black, but in this story, I don’t need such a strong contrast. I hope the colour is lighter and lighter, here is a new lighting model, half-lambert, the principle is similar to the lambert model, first used in the Half-Life game to improve the details of the shadows, In fact, this method calculated the result of the lambert lighting model *0.5+0.5. After such a calculation, the original value of 1 is still 1, and the original value of 0 becomes 0.5, which means that the picture is brightened.

Half-Lambert

Next, the shadows can be manipulated using the step function, which is available in UE4 as the floor function and the ceil function. Here I used the ceil function because I didn’t want the shadows to be pure black. This produces a clearer junction between light and dark.

But on some object surfaces, such as faces I don’t want the shadow edges to be so sharp. So here I use another commonly used method, ramp map mapping. The sharpness of the edges can be controlled by manually generating a ramp map.

Overall material nodes:

In the end, I decided to use the second method for the eyes and face and the first method for the rest of the objects. However, I felt that some detail was missing in the final result, so I recreated the mapping again. This time instead of just solid colours, I added some textural effects, such as adding some fibre texture to the clothes and exported the normal maps.

Here is the current result:

FMP 4: Texture

This week I have been unfolding UVs on the model and importing them into Substance Painter for mapping.

The UV unfolding was done in Maya, which is relatively simple and does not require a strict UV orientation. Because the model is mainly a solid colour, the UVs were simply split.

But here I used a trick, I unfolded some small parts of the UVs on the same sheet, so that I could make fewer materials, such as buttons and trousers, crowns and tops.

I need to give the materials a name in Maya before importing them into SP so that each UV is displayed correctly in SP and to avoid overlap problems.

In SP, I first baked the model’s texture to obtain information such as normal, ambient Occlusion, thickness, etc. This will be useful when creating textures.

The UV unfolding was done in Maya, which is relatively simple and does not require a strict UV orientation. Because the model is mainly a solid colour, the UVs were simply split.

But here I used a little trick, I unfolded some small parts of the UVs on the same sheet, so that I could make fewer materials, such as buttons and trousers, crowns and tops.

I need to give the materials a name in Maya before importing them into SP so that each UV is displayed correctly in SP and to avoid overlap problems.

In SP, I first baked the model’s texture to obtain information such as normal, ambient Occlusion, thickness, etc. This will be useful when creating textures.

This is the result of a colour scheme recreated from the character designs:

Generally, the next process is to bind the character. However, considering that the character will then be rendered in a real-time engine like UE4, I should first go to UE4 and set up the materials so that I don’t need to change the model. I should also make sure that the model will not be modified before I rig it.

FMP 3: Modeling Part2

This week I created clothes and props based on the body.

Clothes are mainly made using MD, Marvelous Designer.

First of all, the production of close-fitting clothes, a tank top and a pair of leggings. Because these two clothes are relatively tight, and subsequently do not need to go to these two parts of the fabric simulation. So only some of the edges will be wrinkled.

Then freeze these two parts and use them only as collision bodies to make other clothes, so that it will not affect their own shape.

The shape of the shorts is a bit too big here, but it’s okay, it can be adjusted later.

The jacket is similar to a casual suit. And because I hope the character’s clothes are stolen from him, so it does not fit, the jacket will be a bit on the large side. It doesn’t matter if the simulation results in a lot of wrinkles because I want to do a fabric simulation for the shorts and the jacket later.

I exported the clothes from MD to Maya. Here I need to pay attention to the fact that the model exported from MD is poorly wired, and some of the face pieces are not sewn together. Drawing on my experience from last semester’s collaborative project, I re-topologized the model using ZB and manually merged the facepiece vertices, which was a real pain to do.

Next, I made the scarf. Here I simply sculpted the outline in ZBrush and then exported it using Zremesher topology. Considering that the scarf needs to be animated afterwards, I reworked his topology in Maya to facilitate subsequent binding.

Then came the little prince’s necklace. Here I used the curve base in Maya. First, draw a curve, adjust his control points, so that its trajectory is like a necklace. Then use a triangle to select the curve for extrusion. The rest of the necklace was modelled using a circle.

The crown was made using the pipe geometry in Maya to reduce the number of vertices and adjust the vertices position. To avoid the corners being too stiff, chamfers were added at the edges.

For the final shoe, I downloaded the free model from Sketchfab. I adjusted the number of faces and some details.

This is the final model: