chrysaora 🎐 @chrysaoravioli.bsky.social · 12/10/2026At the beginning of an attack, the targeting process is... 1. Is Hard Lock enabled? Return target. 2. Else, try Soft Lock. Return target. 3. If no target, rotate attack towards input direction. 4. If no input direction, rotate attack towards character forward direction. 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 12/10/2026Rough prototype that combines UE's Targeting System, Motion Warping, and GAS to allow for Bayonetta-style hard & soft lock. Hard lock activates via held input. If hard lock isn't active, then soft lock will make a new targeting request at the start of an attack. 120 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 10/10/2026Jokes aside, mostly studying and experimenting with UE's Targeting System and Motion Warping. Current naive solution gets me pretty close to Bayo's solution, with input direction having the most weight, allowing the character to automatically rotate towards the target at the start of each attack. 030 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 04/10/2026Integrated attack fragments into the rework. Also starting to try out a crude implementation of hit stop and hit reaction system. Might also need to start investigating targeting & add some succcccccc. I can't really change rotation direction without resetting to neutral, so it feels really bad rn. 020 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 28/09/2026Here's the current combo chart for the demo. All I have to do is type a valid string. The Data Table will automatically handle interpret these strings and add the corresponding fragments to the row. 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 28/09/2026Demo of PPPPP and P_P. Basic Bayo 1 anim states such as held & released transitions, limited time looped anims, and pause combos have been re-implemented with the new fragment system. Good enough for now, so next up is reworking hitboxes to use the fragment system. 101 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 28/09/2026Montage Transition handling is also improved. Image 1: Last year, hard-coded montage transition states that need to execute in a specific order. Image 2: Today, a "fragment" system. Fragments can be set to ignore other fragments with a certain tag, avoiding hard-coded restrictions within the GA. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/09/2026This Global Task handles the opening and closing of input listening. This is triggered via a bound delegate from the PlayerController. This is certainly better than the naive method I used when I first started learning UE5 in 2024. And nowhere as questionable as my GameplayEffect variant last year. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/09/2026New attempt at creating a Bayonetta dial combo input handler via StateTree. There's two states. You're either dialing a new combo or you're passing inputs for the current combo. Global Tasks can work in parallel to set various flags. These listen to various bound events from the player controller. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 21/09/2026I'm trying to more closely adhere to creating things that only benefit my prototype. Otherwise, I'll get distracted creating solutions for problems that I don't even have yet (i.e. Mass Projectiles). Not to say it's wasted time, but I'd like to have something fun to show by the end of the year. 😅 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 21/09/2026Hopping back into this. You might be thinking, "haven't you already made this before?". This was an idea that I saw on Devin Sherry's channel several months ago, in which a single ability has relevant combo parameters passed in at runtime. This avoids having to create an ability per combo string. 120 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/09/2026I was more impressed with GPULM being near identical to PT. Once I figure out how to increase indirect shadow strength, it's a good place to draw a line in the sand and say "good enough". 001 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/09/2026Out of the box, I'm kinda impressed the HW Lumen is "closer" to Cycles. Ignoring tonemapper, the bounce lighting and shadowing is maybe too much, but it's still good at default settings. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/09/2026Studying GI in UE5.8. Images are Blender Cycles, UE5.8 Path Tracing, Lumen, CPULM, and GPULM. Fairly happy with GPULM nearly matching PT in bounce lighting & shadows. Not too sure how to increase the bounced shadow strength, as it still falls a tad short of Cycles. Not bad for a first try though. 120 0
Reposted by chrysaora 🎐shelly ♡ @shellyshellos.bsky.social · 08/09/2026The E-liter 4K charge time has been increased to 4k frames 1019855 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 20/08/2026About 3 weeks in and Mass has demonstrated much more flexibility than the system I had created from earlier this year. Still need to figure out Mass to Actor and Actor to Mass interactions, but it's really easy to add new functionality when needed. Super lightweight too. 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 20/08/2026Current progress of bullet hell rework in UE5's Mass. - Basic movement + broadphase collision detection for static objects. - Sparse static collision is now pre-calculated and loaded in at runtime. - Bullets now use AABB intersects. - Niagara visualization for bullets, with a little jank flickering. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 10/08/2026My visualization also has a workaround for Niagara's SetNiagaraArrayPosition. The built-in function has a sequential for loop for converting FVector to FVector3f. I've written a more specific implementation for my processor. This removes the extra loop and allows the conversion to be parallelized. 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 10/08/2026Here's a look at some of the processor times. Lifetime Processor is almost ~0.3ms. Simple Movement Processor is ~1ms. "ExampleProcessor" (my temp visualization method) is ~0.5ms. Lots of ParallelForEachEntityChunk going on, which is a hugely beneficial. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 10/08/2026Now with temporary visual fragment provided by Niagara. Same 131k+ bullets, all simulated via Mass. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 09/08/2026A more extreme stress test involving 131,584 bullets, with ported movement code. Image 1 (Projectile Hell): ~2.20ms of parallel work. Image 2 (Mass): ~1ms of parallel work. About 50% faster, which is great in the event I need a player to dodge 100k projectiles. 😀 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 07/08/2026Made it to Floor 400. Enemies are starting to get tanky again so gonna have to do some math to figure out how to get those numbers up again. 😔 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 04/08/2026Meanwhile, using Mass, it's only 0.024ms. That's 94% faster than my personal solution and it's not even a packaged build! Safe to say that I'll be doing a full rewrite in Mass because holy moly, that's spicy. I can't wait to develop it further and see it blaze through 100k bullets without a sweat. 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 04/08/2026In my own personal "Projectile Hell" plugin, this is about 0.380ms of work. For 11k bullets in parallel, it's certainly not bad. The only downside is that there are gaps between the execution of each bullet's task list. While it's only 300ns, this adds up as more and more bullets are added... 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 04/08/2026With the announcement of UE6, I became more interested in ECS and decided to study Mass to see if it was more performant than my personal bullet hell solution. For this test, 64 bullets with a lifetime of 30 seconds are spawned every 5 frames, causing 11520 bullets to be present after a while... 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 02/08/2026Came across a Mappy cover yesterday that translates really well to guitar and banjo. youtu.be/mumavHTij5s?...youtu.beMappy (Banjo & Guitarra)YouTube video by Fedeitor 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/07/2026Some positives for a balanced diet. - Updated ink shader is really good. Totally stealing ideas for my own projects - It's very focused on combat, so if you loved the fighting portions of Side Order, you'll love it here - Weapon aesthetics are sick - I want to learn Cello - Shiver 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/07/2026Exterminating the Salmonids to preserve the current squid/octo lifestyle is already established as incredibly shady in Salmon Run. Raiders continues this trend, by allowing us to plunder their ancestral treasures. 😄 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/07/2026As for level aesthetics, the dev interview mentioned that they had to scale it back, as it felt like we were invading the Salmonid's home. While it would've portrayed us as "the bad guys", it certainly would've been more interesting than the random, featureless islands that we currently traverse. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/07/2026Level design is also disappointing and continues the downward trend that was noticeable in 3. There are so many arbitrary and interchangeable cubes and ramps, but with a different background. Occasionally, steeper slopes appear in arenas but it feels like the team still played it too safe. 120 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 27/07/2026Rare yap opinion, but Splatoon Raiders is a very mixed 5/10 game for me. I'm personally not a big fan of "numbers-go-up" kind of game. While builds are not new to the series, this pushes it to an extreme where numbers supercede mechanical skill. It makes fights near mindless and repetitive. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/07/2026This idea of using "fragments" is mostly from looking at Epic's Mass, Mover, and Lyra's inventory systems. Finding it very handy since it allows you to chuck different types of data into a single container. Of course, the main challenge is how to process different types within a single container... 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/07/2026A little more progress on the Data Driven Combos rework. Now, it automatically adds attack data. Taking advantage of TInstancedStructs to create "fragments", allowing for a variety of structs to be added to a container as long as they conform to the base type. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 14/07/2026Montage Transition data de-coupling is halfway there. Currently, I have all of the Immediate Transitions front-end and back-end created. The good thing is that if I decided to add additional transitions in the future, it should be as simple as creating another Data Asset and mapping name->struct. 000 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 14/07/2026Quick Editor Utility I whipped up in BP (can't believe Sweeney wants to get rid of this). Automatically extracts Montage Sections and adds the corresponding # of rows to the Data Table. Also allows me to fill out various string parameters before submitting changes. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 13/07/2026I really should focus on cranking out this wack gameplay prototype, but I always find myself drifting towards foundational things. As always, gives me a lot of respect for the systems featured in other games. So much stuff is taken for granted that it's absolutely humbling. 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 13/07/2026Translating human-readable strings into internally defined CPU-friendly parameters is achieved through FTableRowBase's OnDataTableChanged. For example, whenever I change a row's Combo Input, it automatically creates and stores its hashed variant. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 13/07/2026In addition, I plan on reworking the Data Table. Image 1 is more type safe but not as human readable or "future-proof". Image 2 is a WIP, more similar to PG's method. While infinitely flexible (FString fields), it requires a lot more work to translate this into CPU-friendly internal parameters. 100 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 13/07/2026Low-level nerd shit incoming. WIP ideas for the Data Driven Combo. Code on the left was from 6 months ago, featuring hard-coded state transitions which isn't truly "data driven". The right should achieve this, allowing designer to create new montage listeners, hopefully without too much hassle. 120 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 07/07/2026The idea is that a combo ability should have an easily modifiable string (ex. PPKP) for the human, while the computer converts it to a single uint64 value using bitshifting (ex. PPKP = 01 01 10 01 = 89). Still lots of work to do, but it seems better than the hacky FString appending from last year. 020 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 07/07/2026Many years late, but I finally understand some of the concepts that were in my undergrad Digital Logic class. One problem that I've been trying to solve is a data-driven way to handle combo inputs that are human-readable and computer friendly. 120 0
Reposted by chrysaora 🎐SpaghetMeNot @spaghetmenot.bsky.social · 02/07/2026normalMagic 2.0 is here 🥳 #b3d 14615144 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 02/07/2026My Spotify algorithm blessed me with this extremely chill city pop song about Yokohama. It's great. Makes me want to lay down on the grass and stare at clouds for hours. If only it wasn't 90+ degrees outside... youtu.be/srWzq-Xc-Wg?...youtu.beharachan - YokohamaYouTube video by HarachanVEVO 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 25/06/2026DMC5 on Steam Deck is noticeably better than Switch 2's handheld experience. Even though Steam Deck is 800p, it's native res and ends up being much more crisp even in motion, especially on the OLED screen. However, I do appreciate Switch's digital inputs, which leads to less hand strain. 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 21/06/2026As an extra, today I learned that UE5.6+ introduced the ATTRIBUTE_ACCESSORS_BASIC macro for Attribute Sets. Super convenient because you don't have to define the ATTRIBUTE_ACCESSORS macro anymore. It's basically wrapped into this new macro, cutting down on a little boilerplate. 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 21/06/2026My idea is that when a movement mode is granted, it also grants the corresponding attribute set and initializer to the Ability System Component. Of course, this system is now reliant on GAS for runtime parameter modification, but since it's a pretty good framework, I'm fine with this dependency. 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 21/06/2026Demo for adding movement modes dynamically and movement modifiers. Mover's movement modifiers were a bit problematic, so I ended up using GAS attribute sets instead. Both implementations had to read from some shared file anyways, so why not use GAS which comes with attribute modification for free? 110 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/06/2026Here are the pawn and moving platform's movement modes. Looks pretty similar to Mover. It might be a waste of time to rewrite it, but the main benefit is a more legible implementation. The idea is to combine the best parts of CMC (contained movement pipeline) and Mover (modular movement modes). 010 0
chrysaora 🎐 @chrysaoravioli.bsky.social · 19/06/2026Almost at the two week mark of this Modular Movement project and I finally have something to show. Both this pawn and moving platform are using the same Movement Component, but with different modular movement modes slotted in. Pretty easy to add new modes whenever I want! 120 0