Effects and narrative programmer
In this project I have added and kept up to date the particle system that I developed together with Aleix. You can check the particle system on the Factory Engin3D page
Cilinder shape
I was asked from the art department to add a new type of spawn in the form of Cylinder. This spawn is similar to the cone-shaped spawn, but you can also modify the size of the lower circus.
To achieve this spawn shape I create a random point inside a circle and the direction of the particle is determined by the projection of the point in the spawn circle to the second circle.
The size of both circles and the distance between them can be defined from the Inspector.
The problem I had when adding this new spawn shape was calculating the direction using both circles and at the end I managed to get the projection of the spawn point in the second circle.
Local space
Another suggestion was to add the option of moving the particles in local space instead of in global space
With this option we were able to add some special particle effects that have to be attached to other game objects that are moving thru the scene
One of the biggest problem I had with this particle option was applying the rotation of the gameobject, specially when combining the local space with some spawn shapes.
We wanted to add an effect when doing dash with alita and in some attacks. For these purposes we could not use the particle system since the results were not satisfactory.
We decided to add the trail effect and I was in charge of developing it.
The component of trail is a component that leaves a trail behind the gameobject to which it is tied and has the properties of time of life, minimum distance and orientation.
When the gameobject that has a trail component attached moves a distance higher than the min distance defined in the inspector the component crates new geometry creating a plane behind the gameobject.
The trail is a strip o vertex (2 vertex per plane) and I draw the plane using the 2 current vertex and the next 2 vertex until there are no more vertex. I also add a texture to the trail, this texture stretches and compresses automatically depending on the length of the trail.
This was one of the most difficult things in the trail component and I had to create a custom shader to achieve this effect.
The trail uses a texture, you can change the color and use a shader created specifically for the component
Using Sandra Alvarez's Decal Distem, I have helped Aleix Gabarró with the implementation of decal of skills by doing the rotation of the decal towards the mouse
On the map there are moving elements whose movement is previously defined, as doors when passing level and barriers that close the road.
In order to perform all these scripted movements create a component which allows you to select the objectives of a gameobject and from scripting launch the event when necessary.
On the other hand if what we want is that an entity that moves from one point to another we just have to place the entity in the position where it will start and place another gameobject in the position where we want it to end.
The last thing that we have to take into account is to place a trigger in the position that we want the cinematic to start when Alita passes over it.
With this system of cinematics the black bars will fall automatically at the beginning of the kinematics and leave at the end of the.
We can see these cinematics at all levels and help guide and give more information to the player.