Log 11: Starting on the Extended Morph Sequence
- Kassandra McCormack
- Nov 28, 2023
- 5 min read
This week I started working on the cinematic, extended, morphing sequence.
First, I had to figure out how to do it at all. At first I thought I could do it with a combination of an animation and some particle systems. The problem with that is that animations can only do bones in a skeleton, not components and cameras in the blueprint outside the skeleton. Then I looked at the cinematic sequencer; that didn't pan out either because it would be locked to the level it was created in, in the position it was created in. Not only did I want to waste time re-creating the morphing sequence for each character in every level I want to make, but the morphing can happen anywhere in the level and that would be impossible with a level sequence. Then, digging a little bit more I stumbled on an experimental (for 3 years apparently, come on Epic!) component: the Actor Sequence Component. This allows the creation of a sequence that is only relative to its owning actor and not a specific level or location in the level. Jackpot!
Originally I wanted a bit of camera work over a simple looping animation, with some particle effects thrown in. But after researching different morphing sequences in Power Rangers history, I realized that while that would be "good enough", it wouldn't be anywhere near engaging, nor would it push me to learn and grow as a designer and developer. So, I decided I needed to make a new animation, one that would cover the whole of the sequence, including the pose at the end. Admittedly during the morph itself the character is mostly still, but I added in some snappy movement to emphasize some of the planned particle effects.

It will look better once everything comes together. If not, when I saved the animation out of the Sequencer I left the two linked so if I need to edit the animation at all I can easily do so.
Once that was done, I started in on the various particle systems I am going to need. Originally I had wanted to do only one or two systems, but I quickly found out that would not work because in order to do so I would need to send custom data between emitters through events. That would require custom C++ work and I already made the challenge to not do that. I wound up creating a total of 5 different Niagara Particle Systems.
The first particle system I worked on included the initial burst of the crystal and the background/what would be seen from the outside.

It may look simple, but I had a couple learning challenges to overcome before I could get to it. It being all one system is just an artifact from my first attempt. If I'm being honest they should probably be separate but, at this point it is more trouble than it is worth. Originally, I had wanted the crystal burst particles to directly spawn the dome particles on their death. But I quickly ran into a problem of getting them from a random burst into a recognizable dome was frustratingly hard and I could not get it to work in a reasonable timeframe. So I set the emitters to pick a random location on a hemisphere, with all emitters having the same defined radius and position of those hemispheres so it looks like its all one thing.
The next problem was getting them to rotate around the central point. You'd think it would be easy with a module literally called "Rotate Around Point" (and I do use that later), but the problem with that is it collapses all the particles into a single point and that point goes around in a circle. Fortunately the fix was quick and relatively easy: there is a node in Scratch Pad called "Rotate Angle on Axis", I plug in an amount I want the given particle to turn by, and it spits out that vector as though it were rotated around the origin around a specific axis (I'm lucky I was able to do this as the particles are rotating around the system's origin).
That's the outside/background for the sequence taken care of, but what about the inside?

These particles are going to spin around the character and cover up the seam where the different meshes are dissolving into each other. It looks fairly simple, simpler than the previous system, and yet it somehow gave me bigger headaches.
The first main problem was highlighted in my dome: the "Rotate Around Point" module collapses the entire emitter into a single point. And I want more particles than that, so I can have a more or less full ring rotating to cover the dissolve seams. After too long fussing with the module, I realized something that should have been obvious: create a clone of the first emitter and just add a rotational offset. Really easy in hindsight.
The second major problem was the tails. There's a simple ribbon trail following the main particles. Unlike the dome (which used the Position Event), these take advantage of the "Spawn Particles from Other Emitter" module. Which should have been easy, the tutorial I looked at made it seem so. But for hours I could not get them to spawn at all. Eventually I figured out it was because the main particles were missing the "Solve Forces and Velocity" module. I hadn't included it because "Rotate Around Point" directly sets the position and doesn't do anything with forces or velocity, but solving for them is apparently necessary for spawning particles from other emitters.
As can be seen, they are still a work in progress, but that's about where I ended the week. I still need to do a couple things: there are the gaps that I need to figure out how to either hide or close, the system blinks on and off due to the system's loop duration so that's going to have to be tuned to the precise duration I need them in the animation, and I need to figure out how to make the system start and stop without just blinking into and out of existence because that's not very theatrically pleasing.
I have a couple other systems I need to make presentable, one to form the armor similar to the Quick Morph, and another that bursts off the armor so it can become colored in correctly (it will make more sense next week when I can hopefully show it off). I'll also need to tweak a couple of materials. And finally bring it all together into the Actor Sequence Component. I've started fussing with it and it looks like I've got a lot more work ahead of me.
Comments