A Blender 4.1.1+ addon for importing collision from .zscene and .zobj files.
Previous version for Blender 2.8x: https://github.com/Dragorn421/zelda64-collision-import-blender/tree/blender2.8x
The mesh collision header offset is found automatically in .zscene files with the 0x03 command in the scene header. (but can still be manually specified if needed)
For .zobj files, the header offset must be defined manually in the import options.
Materials are created for each unique collision type. Properties are displayed under the z64 collision panel. Check reduced_info to hide settings set to default values.
I recommend using edit mode and face select mode while having material properties and the z64 collision panel in view.
Screenshot of the import interface:
Screenshot of the Spirit Temple collision with collision settings (in materials) of the child-side exit:
Screenshot of the Royal Tomb collision with colored materials:
Consulted on (around) 2020-08-18
The Collision Mesh Format page of the CloudModding wiki.
The OoT64 decompilation project. (and especially mzxrules' z_bgcheck.c decompilation work)
The Collision part of the zzconvert manual.
After importing some collision, the collision properties can be accessed programatically. A useful application is coloring the materials with your own logic.
The following example sets all materials to a random color solely based on the camera used, also making translucent the ones using the index 3.
import bpy
import random
seed = random.random()
for material in bpy.data.materials:
collision_props = material.z64_import_mesh_collision # ZELDA64_MaterialMeshCollisionProperties
if not collision_props.is_import_material:
continue
polytype_props = collision_props.polytype # ZELDA64_MaterialMeshCollisionPolytypeProperties
color_key = seed, polytype_props.camera
alpha = 0.2 if polytype_props.camera == 3 else 1
rand = random.Random(color_key)
material.diffuse_color = [rand.random() for i in range(3)] + [alpha]
material.specular_intensity = 0
material.roughness = 1This example running on OoT's back alley day scene can result in:



