About this mod
BiteSized is a modular mouth morphtarget framework. It facilitates the creation of modular mods that edit the shape and materials of V's teeth, tongue, and gums, and supports those mods once created. BiteSized supports the creation of mods for both FV and MV.
- Requirements
- Permissions and credits
- Donations
A Modular Mouth Morphtarget Framework
Update 1.1 - February 27th, 2024: Some files have been updated to allow BiteSized-supported mods to actually use normal maps.
- If you use a BiteSized-supported shape mod, check to see if that mod has also been updated.
- If you are the creator of a BiteSized-supported shape mod made with version 1.0 morphtarget resources, you will need to update your mod to include this fix. Doing so is very easy - see the tenth mod image, or the text in the For Mod Creators section below, for more details.
What is BiteSized?
Ever wanted to use a mod for V's teeth together with a mod for V's tongue, only to find they conflict? BiteSized is a system that mod authors can use to prevent those conflicts... and much more.
BiteSized is a framework that is built to facilitate the creation of modular mods that impact the shape and materials of V's teeth, tongue, and gums, and to support the usage of those mods once they are created.
BiteSized also includes a fix for some of MV's more unusual teeth placements; the results of this fix are pictured in mod images 2 through 9.
Why is BiteSized Useful?
Without BiteSized, V's entire mouth is stored in a single morphtarget file. This makes it impossible for multiple modders to easily create compatible mods that impact the shape of V's mouth, even if the mods are designed to alter different portions of the mouth. For example, if Modder A created a set of pointed shark-like teeth for V, and Modder B created a forked tongue for V, it would normally be impossible to use these mods together. In some cases mod creators may be able to work together to create compatibility, but to do so may involve nearly fully remaking the mods.
BiteSized makes it possible for these mods to be created in a way that they are easily and seamlessly compatible, without the need for mod authors to remake the same alterations over again.
BiteSized also makes it easy to create conflict-free, unique-to-V texture and material-altering mods that only impact certain portions of the mouth.
How Do I Use BiteSized? - For Mod Users
If you have arrived at this page because a mod you're interested in lists BiteSized as a requirement, then there is good news: BiteSized is very easy to use! You will need to install the main file, and may need to install up to two additional files.
Which Files Do I Need to Download?
I. You must download BiteSized - Core, this mod's Main File download.
- This contains zz_NLD_BiteSized_Modular_Mouth_Morphs_Core.archive.
- This file makes BiteSized work and acts to support the mods that rely on this framework.
II. If you also use Morphtarget And AnimRig Additions, then you must download the Morphtarget And AnimRig Adds Compatibility Patch Optional File.
- This contains zz_NLD_00_MorphAnimRigAdds_AND_BiteSized_Compatibility.archive.
- Without this file, BiteSized will stop Morphtarget And AnimRig Additions from working.
III. If you do not like the fix made to the placement of some of MV's teeth and you would prefer to keep the vanilla MV teeth placements, you may download the Vanilla MV Shape Override Optional File.
- This contains zz_NLD_BiteSized_0_Modular_Mouth_Morphs_VanillaMVShapeOverride.archive.
- Be aware! If you use this file, you will not be able to use many shape-editing mods made for BiteSized. You will be able to use BiteSized-supported mods which just edit materials, but will likely experience unsightly clipping/floating with any Bite-Sized supported mod that alters the shape of the mouth portions unless that mod is made specifically to work with this override.
How Do I Install It?
- Download the file(s) from this mod that you will be using. You must get the Main File; use the information above to determine if you need either of the Optional Files.
- Unzip the downloaded file(s).
- Place the .archive files in your Cyberpunk 2077/archive/pc/mod folder.
How Do I Uninstall It?
- Delete zz_NLD_BiteSized_Modular_Mouth_Morphs_Core.archive (and zz_NLD_00_MorphAnimRigAdds_AND_BiteSized_Compatibility.archive and zz_NLD_BiteSized_0_Modular_Mouth_Morphs_VanillaMVShapeOverride.archive if they are present) from your Cyberpunk 2077/archive/pc/mod folder.
How Do I Use BiteSized? - For Mod Creators
BiteSized can facilitate the creation of mods which alter the shape and/or materials of specific portions of V's mouth. Depending you what you are looking to achieve, the process differs slightly.
It is important to understand that BiteSized divides the mouth into ten separate morphtargets (as illustrated in the second mod image); each of these separate morphtargets may be edited without impacting or overriding changes made to other sections. Additionally, mods which impact the shape of a given morphtarget should be compatible with mods that impact the materials of that same morphtarget, and vice versa.
Making Modular Texture Mods with BiteSized
BiteSized moves all of the material information for the mouth portions to .mi files. Your BiteSized-supported material mod will work by overriding these .mi files with your own, edited versions. You do not need to, and should not attempt to, edit the .mesh files that BiteSized utilizes.
All of the .mi files utilized by BiteSized are located in the bite_sized/material_instances folder.
The file name for any given .mi file follows the pattern: teeth_[teeth material ###]_[physicalframe][mouth section].mi
The mouth material numbers are drawn from the game files, and are as follows:
001 Default/Organic Teeth
002 Copper Teeth
003 Gold Teeth
006 Pink Teeth
007 Silver Teeth
For example, this means that if you were looking to modify the materials for FV's top canines, specifically for those who selected the silver teeth option in the character creator, you would need to pack your mod with your edited materials in bite_sized/material_instances/teeth_007_pwa_top_canines.mi .
A resource containing the vanilla-mimicking/fallback/placeholder .mi files used by the BiteSized framework is available in the Miscellaneous Files.
Depending on the desired impact of your mod, you may need to modify and include multiple .mi files, however, it is crucial that you only pack .mi files which you have edited for the purposes of your mod into your mod files; if you pack copies of the placeholder .mi files which you have not edited and do not need for the desired effect of your mod, your mod may prevent other BiteSized mods from functioning.
The BiteSized framework core file (zz_NLD_BiteSized_Modular_Mouth_Morphs_Core.archive) contains a fallback set of .mi files which apply the vanilla game materials to the mouth portions. Your BiteSized-supported material mod must be higher in the load order than the BiteSized framework core file, or else your mod will not be applied.
Making Modular Shape Mods with BiteSized
To get started making BiteSized-supported mouth shape mods, you must download the resource morphtargets located in this mod's Miscellaneous Files. These resource morphtargets are already broken down into the distinct separate mouth sections that the BiteSized framework utilizes. Additionally, these resource morphtargets have already been adjusted so that they work with the MV mouth-placement fix that is included in BiteSized.
Be mindful that separate resources are available for those looking to make mods compatible with the MV Vanilla Shape Override Optional File. BiteSized-supported mouth shape mods which are made with the regular morphtarget resources will likely float or clip for mod users who install this Optional File. Similarly, BiteSized-supported mouth shape mods made with the morphtarget resources designed for the vanilla shapes override will likely float or clip for mod users without the Optional File. If you do not intend to make two distinct versions of your mod for MV-playing mod users, it is suggested to solely make your mod for users without the Optional File.
Do not attempt to extract and work with the .morphtarget files contained in the framework's .archive file; they will not export properly without further work. This is because .morphtarget files with edited baseMesh paths do not seem to export with intact armatures.
Editing morphtargets to work with the BiteSized framework is very similar to editing vanilla morphtargets for other purposes, with three important requirements:
- You must use the morphtarget resources provided in this mod's Miscellaneous Files as a starting point for your edits, so that the mouth sections are split consistently across various BiteSized mods.
- You must edit the morphtargets in a way that preserves their ability to morph/change shape. "Broken" morphtargets will likely clip or float relative to other mouth sections.
- You must change the baseMesh file path (editable in WolvenKit) for each .morphtarget that your mod contains to the appropriate, matching mesh file path (see below).
All .morphtarget files used by the BiteSized framework are stored at the original mouth morphtarget file paths, and maintain that same original naming, except that the mouth section labels (as displayed in the second mod image) have been appended to the end of the file name.
The baseMesh file path for each mouth section's .morphtarget is the same as the default, except that the mouth section label (as displayed in the second mod image) must be appended to the end of the referenced .mesh file name.
Thus, for example, if I wished to edit MV's tongue, my edited .morphtarget file would need to be packed as base\characters\head\player_base_heads\player_man_average\ht_000_pma__morphs_tongue.morphtarget , and the baseMesh file path inside of that .morphtarget file would need to be set as base\characters\head\player_base_heads\player_man_average\h0_000_pma_c__basehead\ht_000_pma_c__basehead_tongue.mesh .
Depending on the desired impact of your mod, you may need to modify and include multiple .morphtarget files, however, it is crucial that you only pack .morphtarget files which you have edited for the purposes of your mod into your mod files; if you pack copies of the resource .morphtarget files which you have not edited and do not need for the desired effect of your mod, your mod may prevent other BiteSized mods from functioning.
The BiteSized framework core file (zz_NLD_BiteSized_Modular_Mouth_Morphs_Core.archive) and the optional MV shapes override (zz_NLD_BiteSized_0_Modular_Mouth_Morphs_VanillaMVShapeOverride.archive) contain fallback .morphtarget files. Your BiteSized-supported shape mod must be higher in the load order than these files, or else your mod will not be applied.
Fixing BiteSized (and Other Morphtarget) Normal Map Application
How To Apply The Fix:
The following steps are only required if you created a BiteSized-supported shape mod using the version 1.0 morphtarget resources. If your mod was made using version 1.1 or later resource morphtargets, then this fix has been pre-applied and you do not need to do anything.
- Open the .morphtarget file using WolvenKit.
- Change the baseTextureParamName from Normal to FakeParameterName .
- Save the .morphtarget file.
- Repeat the above steps for all .morphtarget files included in your mod.
More About The Fix:
V's head and face parts are contained in .morphtarget files; this file type contains data which allows these parts to change shape based on selections made in the character creator. Morphtarget files largely rely on a referenced baseMesh for their material data, but also contain a file path for a property called baseTexture, and an associated entry called for a property called baseTextureParamName. It seems that when the baseTextureParamName value is a valid parameter name for the type of material being applied to the head/face part, the baseTexture referenced in the .morphtarget file takes priority over any value assigned to that parameter name in the baseMesh's materials.
Because the baseTexture file path in most vanilla .morphtarget files leads to a smooth normal map, and because the baseTextureParamName value in each vanilla .morphtarget file is Normal, in most cases that a material for which Normal is a valid parameter name is applied to one of V's head/face parts, the normal map defined in the mesh materials will be overridden by a smooth normal map instead.
The fix applied by BiteSized (and in BiteSized-supported mods) functions by changing the baseTextureParamName in the .morphtarget files used by the framework. As long as the new baseTextureParamName value is not a valid parameter name for the material being applied to the head/face part, the baseTexture will not override any properties of the material as it is defined in the mesh.
Regardless of whether you are creating a material or shape mod, you will need to list BiteSized as a requirement/dependency for your mod.
Compatibility
Material/Texture Mods
BiteSized will work with mouth texture mods which simply replace the default mouth textures/mlsetups.
BiteSized is not compatible with any pre-existing mouth texture mod which has been made in a way that keeps it unique to V, or which involves editing the mouth .mesh in order to produce the material change.
Shape Mods
BiteSized is not compatible with pre-existing mods which alter the vanilla mouth .morphtarget.
Other Mods
BiteSized contains edits to V's teeth .app file. It is not compatible with other mods which alter V's teeth .app, except for Morphtarget And AnimRig Additions; if you wish to use these mods together, you must download the Morphtarget And AnimRig Additions Compatibility Patch available in this mod's Optional Files.
Making Things Compatible
When I began putting BiteSized together at the end of last year, very few mods existed for V's mouth. In the time I have been working on assembling the framework, several new and exciting mods have come out. If you are the author of a mouth/teeth/tongue mod that is not compatible with BiteSized and would like any assistance or guidance in making a compatible version, please do not hesitate to reach out - I would very much like to help!
Credits
Thank you, as always, to the devoted individuals and teams responsible for the creation of our community's tools and plug-ins, for their hard work and continual efforts to expand what we can do; without the ability to easily edit .morphtarget files and the materials used on .mesh files, BiteSized would not be able to exist as it does.
And thank you to my friends in The Cyberpunks, for listening to me fuss and adjust and deliberate over-long on certain aspects of this framework, for providing valuable feedback and encouragement, and for giving me a little shove to work on this when I had set it down. Thanks especially to Anrui, for helping me to test the normal map application fix.
If you enjoy this framework and would like to support its creator, you can find me on Ko-fi.