Simple Character Data Asset VFX modding

Guide on how I made the "Electric Color Pack" mod using Character Effect data assets, includes the source files needed to add to the project , assets I packaged and some helper scripts

Uploader avatar
By Remix
Submitted at August 22, 2024 Updated at August 25, 2024
Simple Character Data Asset VFX modding
Simple Character Data Asset VFX modding

    This guide goes over the process of how I made my " Devil Jin with Angel Jin's VFX + Story Rage Art " and " Electric Color Pack " mods, how you make similar mods and a bit more.

    Prerequisites

    Custom Unreal Engine 5Custom Unreal Engine 5 My Polaris ProjectMy Polaris Project FmodelFmodel Setting Up JsonAsAsset in the projectSetting Up JsonAsAsset in the project .Net Version 8.0.Net Version 8.0 Asp.Net 8.0?Asp.Net 8.0?

    Guide

    Video follow along by CDDT RebornVideo follow along by CDDT Reborn

    First Launch

    First launch up the project in the Prerequisites above and you should be greeted with: Click "Open Settings" and you should see: To setup JsonAsAsset See Here: See Here: Here's what mine looks like: After you've done that, go to "Edit" in the top-left --> Project Settings and Search for "chunks" and make sure "Generate Chunks" is checked

    Electric Explanation

    This is what the project should look like. From here I'll walk you through how to change a character's electric color and what I'm doing. For this example I'll do Devil Jin's Navigate to Effect ---> Polariswork ---> Character ---> for Devil Jin go to SWL , for other characters see the "Character Abbreviatons" herehere You should see this: Double-click on DA_CharacterEffect_SWL

    Devil Jin's Data Asset

    This is the data asset for Devil Jin, it has indexes and values at those indexes. The particle assets at each index is of type NiagaraSystem. NiagaraSystem dummy assets for all the Mishimas are included in the project. We only need dummy versions as we can just change the reference in this data asset to instead point/reference another one and in game the other one will be loaded.

    Dummy Niagara System

    Below is an example dummy Niagara System

    Example Electric Swap

    To clarify lets do an example where I change Devil Jin's electric to Kazuya's: Since I know from testing that the NiagaraSystems with the name "saifu" in them are for electrics. so lets search that up in the data asset As you can see there are four matches at Key/Index 15,16,17 and 18. Lets change them to instead be Kazuya's electric. So we just need to change each of the particle assets to Kazuya's version. Since each of the assets have a number at the end, 01,02,03,04 change each respective one to Kazuya's, so NS_EF_Swl_Saifu01 to NS_EF_Grl_Saifu01, and NS_EF_Swl_Saifu02 to NS_EF_Grl_Saifu02 and so on Assign a Chunk ID to the asset, save and package the mod Put the files of the Chunk ID you assigned into Polaris/Content/Paks/Mods and append 0_P to the end of their file names like so:

    Testing in game

    Lets launch up the game and see if it worked Nice! If you followed along, hopefully it worked for you too.

    Other Characters

    Prerequisites/Extra Files

    FmodelFmodel Copy Helper (Useful for Dummy Niagara Systems) Copy Helper (Useful for Dummy Niagara Systems)

    Since the project just contains the Character Effect Data Assets and dummy Niagara Systems for the Mishimas If you want to do more you'll need to know how to add your own. Make sure you've moved your mods out of anywhere in the paks folder including subfolders

    Fmodel

    Open up Fmodel and Naviagte to Polaris--> Content --> Effect --> Polariswork --> Character . Here you'll see many different character abbrevations, see herehere to find the character you're looking for. Click on your character's abbrevation folder and click the Packages tab Click on the file with the prefix DA_ and export it as a json If you see nothing when you click on the Data asset like so: Restart Fmodel and try again, you may have to try multiple times over. Here's all of DA_CharacterEffect Jsons exportedHere's all of DA_CharacterEffect Jsons exported If you need them, just place them in your Fmodel export folder

    Back to the project

    Go back to your project and make the folders you found the data asset in, so for SWL it would be Effect/Polariswork/Character/swl . Then go to the top where it says JA and hover over it, then hover over the "Command line application" tab and click on Execute JsonAsAssetApi (Exe) Then hover over it again and click on "JsonAsAsset" Naviagte to the JSON we exported, like so: The DA should be created but if you search in the Output log "LogUObjectGlobals: Warning: Failed to find object" and you'll see many warnings. This is because you don't have the Niagara System assets that its looking for in the Data asset, this is a problem , so lets create them.

    Example Creation

    For this example I'll be doing the Data Asset and NiagaraSystem for cml I'll be using the "Copy Helper" in the "Prerequisites/Extra Files" to make this faster. Skip ahead to the "Skipped Copy Helper" section if you aren't

    Copy Helper

    Copy the whole Output Log when you search "LogUObjectGlobals: Warning: Failed to find object" in it and put it into a txt file, like So: Then run the "Copy Helper.py" script, you'll need both the "pyperclip" and "keyboard" packages, so install them with pip/a package manager. At first you'll be prompted to enter the Text file directory, which is just the path of the text file Then it'll ask for a search string, what this will do is copy the string after the search string to the clipboard so you can paste it So go back to the text file you created and you'll see many paths, since we want to get the name of the Niagara Systems to quickly create them we want the search string to be the string before the name. But the paths of some of the NIagara Systems can and most likely will be different, as shown below: So we'll do the NiagaraSystems in the same path first, so in my example the files in /Game/Effect/Polariswork/Character/cml/NiagaraSystem/ , so I'll set that as the search string So the first Niagara System at that path is copied to the clipboard. Lets go to the path (remember that Game is the Content folder in Unreal) in Unreal engine and right-click --> FX --> Niagara System and create an empty system Paste in the name copied If we press the Caps lock button the next Niagara System will be copied to clipboard. (You can change this keybind in the python script) If while selected on the first Niagara System we press "Ctrl + D" we can dupilcate it, and then rename it by pasting in the new copied name. We can then quickly create the Niagara Systems by pressing "Caps Lock" --> "Ctrl + D" --> "Ctrl + V" and repeat. Repeat the process, changing the Search string for each path, for example our first search string was "/Game/Effect/Polariswork/Character/cml/NiagaraSystem/ " , however I also need to make NiagaraSystems in "/Game/Effect/Polariswork/Character/cml/NiagaraSystem/Demo" and "/Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/" so I'll use the Copy Helper python script and make the Niagara System assets at those paths. After you're done Delete the DA_CharacterEffect asset that we imported using JsonAsAsset earlier and clear the output log, then re-import it. Once again search in the output log "LogUObjectGlobals: Warning: Failed to find object" and if you don't see any paths in there then you've successfully imported the data asset. If you do see some paths, for example " /Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/NS_EF_CmlRage_06SlashHit02.NS_EF_CmlRage_06SlashHit02', create the Niagara Systems, in this example I would need to go to Content/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/ and create a Niagara System with the name "NS_EF_CmlRage_06SlashHit02"

    Macro

    There is a macro recorder file in the copy helper folder, it automates the CTRL+D, CTRL+V , Caps lock part of the creation. You follow the same steps as before but when you have your first Niagara System, select it and run the macro from Macro Recorder.

    Skipped Copy Helper

    If you skipped the Copy helper section and want/have to do it manually, what you have to do is create the Niagara Systems at each of the paths specificed, so if in the output log it says "LogUObjectGlobals: Warning: Failed to find object 'Object /Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/NS_EF_CmlRage_06SlashHit01.NS_EF_CmlRage_06SlashHit01' LogUObjectGlobals: Warning: Failed to find object 'Object None.' LogUObjectGlobals: Warning: Failed to find object 'Object /Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/NS_EF_CmlRage_06SlashHit02.NS_EF_CmlRage_06SlashHit02'" You need to create a Niagara System called "NS_EF_CmlRage_06SlashHit01" at "/Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/" (Remembering that the Game folder is called Content in Unreal) and a Niagara System called "NS_EF_CmlRage_06SlashHit02" at "/Game/Effect/Kyabetsuwork/Character/cml/NiagaraSystem/" . Make sure to create all of the Niagara Systems. Once done clear the output log and delete the imported DA_CharacterEffect that we imported using JsonAsAsset and re-import it, then search the output log with "LogUObjectGlobals: Warning: Failed to find object" and make sure there's nothing you missed.

    Changing the Data Asset

    Now you can open the Data Asset and change the effects to whatever you want, like we did in the "Example Electric Swap" section

    Outro

    That's pretty much it, its just looking at Fmodel seeing what NiagaraSystem you want to use from another character and changing the DA_CharacterEffect to use it. For most of the Angel Jin + Special Rage art mod its just doing that, looking at their differences and merging them. And for the Electric Color mod it was even eaiser, as shown above. Message me anything you make, I'm always interested If you run into an issues message me here or I'm in the Modding Zaibatsu server under the same name

    Credits

    • Koenji
    • peek6
    • CDDTreborn