The PrepareModelsForAtavism class in C# provides functionality to prepare models for use in Atavism MMO game engine. It can be used to process a folder containing prefabs with skinned mesh renderers and prepare them for Atavism by creating separate meshes and mesh renderers.
API Documentation
PrepareModelsForAtavism is a script that prepares 3D models for use in the Atavism game engine. The script processes a given folder, locates prefabs containing SkinnedMeshRenderer components, and creates and saves either new Mesh or SkinnedMeshRenderer components based on the SkinnedMeshRenderer data.
Public Variables
PrepareModelsForAtavism has several public variables that can be set in the Unity Editor:
folderToProcess– A UnityObjectthat references the folder containing the prefabs to be processed.folderToSaveModelsTo– A UnityObjectthat references the folder to save the processed models as prefabs.folderToSaveMeshesTo– A UnityObjectthat references the folder to saveMeshcomponents for the processed models.gameObjectToProcess– AGameObjectthat serves as the parent object for newMeshcomponents whenmakeSkinnedMeshis false.gameObjectSkinnedMeshRenderer– AGameObjectthat serves as the reference object for finding bones and creating newSkinnedMeshRenderercomponents.rootBone– ATransformthat serves as the root bone for newSkinnedMeshRenderercomponents.
Public Methods
ProcessFolder(bool makeSkinnedMesh = false)
Processes the prefabs in folderToProcess and creates either new Mesh components or new SkinnedMeshRenderer components for each SkinnedMeshRenderer component found. If makeSkinnedMesh is false, new Mesh components are created and saved as prefabs. If makeSkinnedMesh is true, new SkinnedMeshRenderer components are created and added to the gameObjectToProcess.
CopyBonesFrom(SkinnedMeshRenderer target, SkinnedMeshRenderer source)
Copies the bone weights from a source SkinnedMeshRenderer to a target SkinnedMeshRenderer.
CopyBonesFrom(SkinnedMeshRenderer target, SkinnedMeshRenderer source, string[] boneNames)
Copies specific bone weights from a source SkinnedMeshRenderer to a target SkinnedMeshRenderer.
FindDeepChild(string aName)
Returns the Transform with the given name, found by a breadth-first search starting from the gameObjectSkinnedMeshRenderer.
ChangeBody(GameObject targetBody)
Swaps the SkinnedMeshRenderer on the gameObjectSkinnedMeshRenderer with the SkinnedMeshRenderer on the given GameObject.
Private Methods
PrepareModelsForAtavism also has several private methods that are not intended for external use:
AddParent(string BoneName, HierarchyDict BoneHierarchy, BoneTransformDict AllBones, GameObject DummyParent)Unparent(Transform Parent, GameObject DummyParent)createParentChild(string objectName)createMesh(Mesh mesh, string name)saveMesh(Mesh mesh, string name)createMeshFilter(GameObject thisObject, Mesh mesh)createSkinnedMeshRenderer(GameObject parentObject, Mesh mesh, SkinnedMeshRenderer skin)createMeshRenderer(GameObject thisObject)saveModel(GameObject thisObject)cleanupModels(GameObject thisObject)Start()Update()
