Skip to content

Custom uHead model bundles

Sierra edited this page Aug 24, 2025 · 39 revisions

This guide is about making uHead models from scratch in the unity project, with this, you will be able to have an insane amount of control over what heads look like, with lots of tools at your disposal.

I'm going to explain the process of importing heads, making animations, making eyes work, making mouths work, and the materials and shaders. This guide is intended to be followed even if you nothing about this at all, for example if you used the template and have no idea how that works either, you can still follow this guide with no trouble. I will explain some things but know that its not necessary.

What you'll need beforehand.

-Eye Decals (https://cdn.discordapp.com/attachments/1065367994886262786/1216093980467396719/Eye_Decals.rar?ex=65ff22c6&is=65ecadc6&hm=b6cadeb3ca698f0cd8bbe46386e2a5d592239a46146aee35411a4dfeaa054535&)

-Gradients such as Gradients_Skin, Gradients_Hair and Gradients_Eye (https://cdn.discordapp.com/attachments/1065367994886262786/1216133912481501304/CharaEye.shader?ex=65ff47f7&is=65ecd2f7&hm=3988c7e5b47c28020fa98360ee4867a330cbf8a6a38c23b3984fc9b2ed94c870&)

Beginning

For this example, we're going to use Panette's head and get rid of her cat eyes to make her normal.

Search up the uHead you're going to use in the AssetTable. The names match the Japanese ones, so looking for someone like Panette would actually be Panetone.

image

Search up the uHead Bundle name in your dump folder.
image

Now we can use this special version of AssetStudio to rip this model

Make sure to press this specific option, otherwise we will not be able to get the necessary animations for the uHead. Tick all the checkboxes in the Scene Hierarchy tab.
image

Since we are adding a new uHead bundle to the game, we need to give the uHead a new model number (_cXX). Make sure to use one that is not already in use by the game.

Now, we can move on to the next part.

Setting up the folder hierarchy

Now, make a new Unity project using the template for Engage mods and add a new head folder for the number of your choosing.
Make sure to respect casing so that the game can pick up the file.

Here is the folder hierarchy for uHeads. We're going to choose to go with uHead_c019 for this case.
image

Drag the FBX file into the Prefabs folder, and don't worry if it looks messed up, this is normal. We need to change some settings for the uHead, these are what the settings will be when you first import it.

image

We'll need to change it to this, please put what I colored red.

image

Navigate to the materials section, and press the following.

image

Navigate to the Rig tab, the settings will appear like this.

image

Change the setting to the image below.

image

Extracting Animations, and the Animation Controllers

We have the generic animations for the head included in the FBX, but now we'll need the specific animations for the head, as well as the things that tell them what animations are which. This part has a good amount of dragging and dropping, so make sure to be careful what you're dragging. We can use the software AssetRipper to extract these things, which can be downloaded here.

https://nightly.link/AssetRipper/AssetRipper/workflows/publish/master/AssetRipper_win_x64.zip (Windows) https://nightly.link/AssetRipper/AssetRipper/workflows/publish/master/AssetRipper_mac_x64.zip (Mac) https://nightly.link/AssetRipper/AssetRipper/workflows/publish/master/AssetRipper_linux_x64.zip (Linux)

When opened, it should look like this.

image Make sure to follow these steps

image

We need to change the version for AssetRipper which can be done here. (Do not worry about the "Static Mesh Separation" checkbox.) image 99

Now click Save, and go to Open File.

image

Lets go back to where we copied our bundle to, and select the Bundle.

image

Click on view loaded files.

image

Select Export all files.

image

Put the output to our Animations Folder.

image

Your output folder should look like this.

image

Now we have our Animation controllers, Override Controllers, and animations for the face at our disposal.

image

Drag The AC_Face and AC_Face.meta Controllers to the project tab here.

image

Do the same with AOC_Facial_c453.overrideController and AOC_Facial_c453.overrideController.meta

image

Now, go to AnimationClip, drag all of the animations to the project tab here. (If you do not have the 000 animations included within the previously imported head fbx, then you should import all of the animations. Otherwise, you would leave out the 000 animations, and use the ones within the head fbx instead.)

image

Drag the uHead_c453Avatar.asset and uHead_c453Avatar.asset.meta files to the project tab here.

image

The Folder should look like this.

image

If you opened the FBX, it should look like this instead.

image

We need to get the model looking little closer to the base game so we can see the animations better. The materials need to be properly assigned; they need to have these shaders. Drag the Albedo and Multi into your Materials folder.

image

image

image

image

Please reference the images below for the Materials. The Albedo and Multi will differ if you use a head other than Panette's, since everyone has a unique Texture.

image image image image

If you changed the uHead materials to use the Albedo and Multi, and/or the correct settings above, then the shader will automatically set the textures for your head to be viewed in the Inspector Tab.

image

Double click on AC_Face, and make sure you are in 'Base Layer'

image image

We need to drag the 000 animations (underlined in red) to their matching entry (underlined in blue). They need to correspond to the naming. There is one exception to this, the "Beaten" entry should use the "Pain" Animation.

image

Now that we've matched them all, we need to go to the LipA layer, and select the corresponding animation for it. Click on the LipA layer

image

Now do the same for LipI, LipU, LipE, and LipO

image

Now that we assigned the 000 Animations, we need to select the Animations that the face has for its own. click on AOC_Facial_c453

image image

We now have to match each animation, with the animations we pulled from AssetRipper.

image

It should look like this.

image

Assigning Proper Avatar in the Scene

Drag your uHead in the Scene

image

Drag the avatar you extracted with assetripper and assign it to the uHead in the scene, and drag AOC_Facial_c453 to the Controller tab, then click Apply Root Motion.

image

If you've done these steps correctly, you can check if the Transforms are correct by selecting an animation that is not c000 (In our case, it's c453) and dragging the object from the scene to it.

image

image

Assigning Scripts for the Eyes

Drag EventCharacterMouthController from the bridge folder in the code Folder from Cobalt onto to uHead in the Scene like this:

image

Drag LookAtIKRotationLimit_Bridge from the bridge folder in the code Folder from Cobalt onto the uHead in the Scene like this:

image

Drag LookAtIK from the RootMotion folder in the code Folder from Cobalt onto the uHead in the Scene like this:

image

The object selected in the scene should look like this: image

Now we'll need to add the eye scripts to the eyes, and adjust the settings. Go here in the uHead object from the scene: image image

Change this value from 0 to 2. Now, navigate to the scene hierarchy, and go here image

Drag them to to Eyes, and put l_eyeball_jnt into element 0, and r_eyeball_jnt eyeball into element 1 like this image

image Now drag the uHead scene object here like above. Your uHead in the scene's settings should look like this. image

Now we have to tweak the settings. The following image is an example of how this specific uHead's values look. You can use UABE to determine what the values of another uHead should be if necessary.

image

Now that the settings are complete, we're right at the finish line! Drag the uHead from the scene into the project tab like this.

image image

Select Original Prefab

Use UABE to extract the material values from the original head, in order to determine how you should setup your material values in Unity.

Make certain that the eye highlight materials' "Color White" field is set to 1,1,1,1 (Fully White), regardless of what the extracted material values say, or else they will look incorrect ingame.

To know more about making Custom Bundles to be used in game, please refer to https://github.com/DivineDragonFanClub/Lythos/wiki/Custom-models-(Unity)

Pat yourself on the back, you completed the guide!

image

image

Clone this wiki locally