3D Model
Supported Object types: 3d. Attach this component where needed. An Object can contain multiple named instances of this component.
Use Object components to understand definitions and instance overrides.
A 3D Model component renders a model resource with local placement, material, and animation settings. Collision requires separate physics configuration.
Defaults below are normalized factory values from the component schema. Object presets, dimension, project units, and Scene overrides can supply different starting values. “Not stored” means the path is optional or runtime-derived. Read the property description to interpret it. Blank resource references assign no resource.
Writable means exposed for property writes through Logic. A No entry can still be editable in the Object Editor; runtime-only values cannot be authored. World-space lengths use metres, screen-space lengths use pixels, and rotations use degrees unless stated otherwise. The current loader refuses pixel-era projects. Use Units and Coordinates when comparing values.
| Property and path | Type | Factory default | Behavior | Writable |
|---|---|---|---|---|
| Resource (resource) | thing:model | “” | Model resource rendered by this component. Blank renders no model. | No |
| Visible (visible) | boolean | true | Whether this model draws. Does not disable its Collider or Logic. | Yes |
| Cast Shadows (castShadows) | boolean | true | Whether the model casts shadows where the scene lighting supports them. | Yes |
| Receive Shadows (receiveShadows) | boolean | true | Whether the model receives shadows from the active scene lights. | Yes |
| Shadow Policy: Cast Maps (shadowPolicy.castMaps) | boolean | Not stored; see behavior | Whether this model can cast shadow-map shadows. The light and renderer must also enable that technique. | Yes |
| Shadow Policy: Cast Volumes (shadowPolicy.castVolumes) | boolean | Not stored; see behavior | Whether this model can cast shadow-volume shadows. Requires compatible model geometry and lighting. | Yes |
| Shadow Policy: Receive (shadowPolicy.receive) | boolean | Not stored; see behavior | Whether this model receives shadows under the explicit shadow policy. | Yes |
| Material (material) | thing:material | “” | Material resource overriding the model material. Blank keeps the model’s own material. | No |
| Animator (animator) | thing:animator | “” | Animator resource controlling model animation. Requires compatible model clips. | No |
| Face Movement (faceMovement) | boolean | Not stored; see behavior | Whether model facing follows movement. An absent setting means enabled; false keeps the authored instance angle while moving. | Yes |
| Local Position (transform.position) | vec3 | {“x”:0,“y”:0,“z”:0} | Component-local position. Measured from the fixed Object origin. Current world-space coordinates use metres; screen-space coordinates use pixels. The project coordinate convention determines axis direction. | Yes |
| Local Position X (transform.position.x) | number | 0 | Component-local position on X. Measured from the fixed Object origin. Current world-space coordinates use metres; screen-space coordinates use pixels. The project coordinate convention determines axis direction. | Yes |
| Local Position Y (transform.position.y) | number | 0 | Component-local position on Y. Measured from the fixed Object origin. Current world-space coordinates use metres; screen-space coordinates use pixels. The project coordinate convention determines axis direction. | Yes |
| Local Position Z (transform.position.z) | number | 0 | Component-local position on Z. Measured from the fixed Object origin. Current world-space coordinates use metres; screen-space coordinates use pixels. The project coordinate convention determines axis direction. | Yes |
| Local Size (transform.size) | vec3 | {“x”:1,“y”:1,“z”:1} | Component-local extent. Current world-space dimensions use metres; screen-space dimensions use pixels. Visual size and collision size are separate. | Yes |
| Width (transform.size.x) | number | 1 | Component-local extent on X. Current world-space dimensions use metres; screen-space dimensions use pixels. Visual size and collision size are separate. | Yes |
| Height (transform.size.y) | number | 1 | Component-local extent on Y. Current world-space dimensions use metres; screen-space dimensions use pixels. Visual size and collision size are separate. | Yes |
| Depth (transform.size.z) | number | 1 | Component-local extent on Z. Current world-space dimensions use metres; screen-space dimensions use pixels. Visual size and collision size are separate. | Yes |
| Local Rotation (transform.rotation) | vec3 | {“x”:0,“y”:0,“z”:0} | Component-local rotation, in degrees. 2D uses Z rotation; 3D uses the project axis convention. | Yes |
| Local Rotation X (transform.rotation.x) | number | 0 | Component-local rotation on X, in degrees. 2D uses Z rotation; 3D uses the project axis convention. | Yes |
| Local Rotation Y (transform.rotation.y) | number | 0 | Component-local rotation on Y, in degrees. 2D uses Z rotation; 3D uses the project axis convention. | Yes |
| Local Rotation Z (transform.rotation.z) | number | 0 | Component-local rotation on Z, in degrees. 2D uses Z rotation; 3D uses the project axis convention. | Yes |
Myth Engine Documentation
