This is my final result!
This is the breakdown.
This is my final result!
This is the breakdown.
This week I imported all the resources into UE4 and created a project to synthesize all the elements.
For animation resources, I use Abc files to import the effects of cloth simulation into UE4.
In addition, I also obtained a special effects resource pack on the Unreal Mall to achieve some cartoon effects.
Then I used Sequencer in UE4 to make the camera animation and added various elements to the appropriate positions.
When rendering and exporting, I tried MovieRenderQueue in UE4. Compared with direct export using Sequencer, MovieRenderQueue can sample multiple times in each frame to obtain better dynamic blur and smooth lines. Real-time rendering is super fast, I have more than 1,400 frames in total, and the rendering is completed in about an hour.
Finally, I imported the rendered picture sequence into Pr and used Adobe Au’s free sound effect material library. I also purchased some sound effects on the Internet and edited and synthesized them in Pr. The title of the film is the last to think about. In fact, I think the story is very unclear, but it has been post-production and I can’t modify it. In short, I am satisfied with the visual effects.
The special effects in the film were created this week. There is a story where the little prince uses magic to disappear to trick people. Here is the disappearing magic I wanted to show with a particle effect.
There is a new particle system in UE4 called Niagara. The Niagara VFX System is one of two tools you can use to create and adjust visual effects (VFX) inside Unreal Engine 4 (UE4).
Firstly, I created a blank system. Since the character as a whole is going to disappear, the particles should be generated from the character. Here I used a mesh emitter. I exported a separate static pose from Maya to be used as an emitter for the particles.
The generated particles need some movement and variation, and I control the movement mainly through a Curl Noise Force. And a colour curve to control the colour change of the particles.
This is the final result.
This week, the production of the first animation was mainly carried out. The entire animated character sits on the roof of the car, mainly on the character’s expression and yawning movements. What I want to express in the whole paragraph is the boringness of the character at the beginning and the excitement of seeing the police car later, which is mainly manifested in the speed change of the rhythm.
Thanks to the previous binding, the scarf animation can be easily produced. However, there was a problem with the animation of the necklace. Because it was bound by IKSpine, the bending direction of the necklace also needed to be adjusted. Because the early binding lacked some controllers, manual modification took a lot of time here. Fortunately, the animation of the necklace is not complicated, but it is difficult to make naturally.
This is the final animation:
After that, I unbind the jacket and shorts of this animation and simulated it with Ncloth. Mainly refer to Maya’s official fabric presets, using the settings of Heavy Denim.
In addition, Constraint is used to fix the clothes on the body. It should be noted that if the scene is in centimetres, you need to change the nuclear space scale to 0.01 or a smaller value to achieve a more realistic effect.
After determining the production process, I also made other animations in accordance with this process. These are the final results.
I started making animation this week! During this period, I solved the scene problem. I purchased an environmental project in the UE mall, rebuilt the environment in UE, and finally built a usable environment.
Once I have a basic environment, I can make a layout.
I imported the environment into the model bound by Maya and made two layouts, mainly to determine the shots.
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:
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.
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.
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.
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.
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.
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.
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: