Atavism Toolbox

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 Unity Object that references the folder containing the prefabs to be processed.
  • folderToSaveModelsTo – A Unity Object that references the folder to save the processed models as prefabs.
  • folderToSaveMeshesTo – A Unity Object that references the folder to save Mesh components for the processed models.
  • gameObjectToProcess – A GameObject that serves as the parent object for new Mesh components when makeSkinnedMesh is false.
  • gameObjectSkinnedMeshRenderer – A GameObject that serves as the reference object for finding bones and creating new SkinnedMeshRenderer components.
  • rootBone – A Transform that serves as the root bone for new SkinnedMeshRenderer components.

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()