feat: update all authored by Taiyou06's avatar Taiyou06
......@@ -4,18 +4,32 @@
* [Use State Machine](#use-state-machine)
* [Engine Threads](#engine-threads)
* [Max Engine Threads](#max-engine-threads)
* [Sync Client Tick End](#sync-client-tick-end)
* [Load On World Load](#load-on-world-load)
* [Unload On World Unload](#unload-on-world-unload)
* [Manual Translucency Order](#manual-translucency-order)
* [Default Animation Priority](#default-animation-priority)
* [Client Sync Interval](#client-sync-interval)
* [Lower Scale Limit](#lower-scale-limit)
* [Force Custom Model Data](#force-custom-model-data)
* [Process Empty Timeline](#process-empty-timeline)
* [Render Fire On Model](#render-fire-on-model)
* [MineSkin API Key](#mineskin-api-key)
* [User Limb](#user-limb)
* [Model Generator](#model-generator)
* [Register Post Server](#register-post-server)
* [Assets Post Server](#assets-post-server)
* [Compile Post Server](#compile-post-server)
* [Enable Error](#enable-error)
* [Debug Level](#debug-level)
* [Log Only Error Models](#log-only-error-models)
* [Namespace](#namespace)
* [Create Zip](#create-zip)
* [Create Atlas](#create-atlas)
* [Create Shader](#create-shader)
* [Create MC-META](#create-mc-meta)
* [Item Model](#item-model)
* [Item Models](#item-models)
* [Network Optimization](#network-optimization)
* [Bundle Everything](#bundle-everything)
* [Bundle Size](#bundle-size)
......@@ -25,6 +39,8 @@
* [Vertical Render Distance](#vertical-render-distance)
* [Skip Models Behind Viewer](#skip-models-behind-viewer)
* [Skip Blocked Models](#skip-blocked-models)
* [Reduce Update When Far](#reduce-update-when-far)
* [Override Move To Method](#override-move-to-method)
---
......@@ -55,6 +71,71 @@ The initial amount of threads used to processing model animations.
The maximum amount of threads Model Engine can create to process model animations. The amount must be more than the
value set at [Engine Threads](#engine-threads).
### Sync Client Tick End
Whether client desync detection should be timed off the client's tick-end packet instead of the client's movement
packet. When enabled, Model Engine records the client sync time from the `ClientTickEnd` packet; when disabled, it uses
the player movement packet instead.
### Load On World Load
Whether models in a world should be loaded automatically when that world is loaded.
### Unload On World Unload
Whether models in a world should be unloaded automatically when that world is unloaded.
### Manual Translucency Order
Whether to manually control the render order of translucent parts. This only takes effect when
[Force Custom Model Data](#force-custom-model-data) is disabled, in which case translucent parts use a different base
item to influence their sorting against opaque parts.
### Default Animation Priority
The default priority assigned to the state machine animation handler.
### Client Sync Interval
The interval, in milliseconds, between client desync checks. A desync test is only run again once this much time has
passed since the last test.
### Lower Scale Limit
The smallest absolute scale value a bone is allowed to have. Scale components with a magnitude below this limit are
snapped to zero, which also serves to hide near-zero scaled bones.
### Force Custom Model Data
Whether generated bone items should be created using real Custom Model Data items. When disabled, Model Engine instead
uses a placeholder base item carrying the bone's item model and color component.
### Process Empty Timeline
Whether keyframe channels with no value should be treated as zero instead of being left unanimated. When enabled, a
missing keyframe value defaults to zero.
### Render Fire On Model
Whether the fire overlay should be rendered on models when the base entity is on fire. This is the default value and can
be overridden per Active Model.
### MineSkin API Key
The API key used to enable MineSkin-based skin generation. If left empty, MineSkin skin generation is disabled.
### User Limb
Configures the default player skins used for the [player limb bone behavior](Modeling/Bone-Behaviors#player-limbs-tags),
and how those skins are generated.
| Key | Description | Default |
|----------------------|----------------------------------------------------------------------------------------------------------|---------|
| Eager-Generate-Skins | Whether a joining player's skin limbs should be generated ahead of time when they join. | true |
| Default-Classic-Skin | The name of the default skin (from `Default-Skins`) used for the classic (Steve) player model. | Steve |
| Default-Slim-Skin | The name of the default skin (from `Default-Skins`) used for the slim (Alex) player model. | Alex |
| Default-Skins | The named skins registered on start up. Each entry supplies skin data via `base64`, `url`, `path`, `username`, or `uuid`, and an optional `slim` flag. | Steve, Alex |
---
## Model Generator
......@@ -86,6 +167,11 @@ Should model error messages be printed.
Set the debug level of the Model Engine logger. May sometimes reveal useful information.
### Log Only Error Models
Whether the error collector should only log models that actually have errors, suppressing log output for models that
imported without any errors.
### Namespace
Set the namespace of the generated resource pack.
......@@ -125,6 +211,12 @@ Here is a list of usable items. All items shown here are colorable:
| SPLASH_POTION |
| TIPPED_ARROW |
### Item Models
A list of base items used to create overrides for all generated models, using the same items listed under
[Item Model](#item-model). When this list is non-empty, it replaces the single [Item Model](#item-model) value, allowing
generated models to be spread across multiple base items. When left empty, the single [Item Model](#item-model) is used.
---
## Network Optimization
......@@ -166,6 +258,7 @@ certain threshold.
| Key | Description | Default |
|--------------------------|------------------------------------|---------|
| Enabled | Whether this culling method is on. | true |
| Vertical-Render-Distance | Vertical render distance in blocks | 32 |
| Cull-Type | [Culling behavior][] | CULLED |
......@@ -175,6 +268,7 @@ Culls the model when angle between the viewer and the model exceeds the configur
| Key | Description | Default |
|---------------------|------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| Enabled | Whether this culling method is on. | true |
| View-Angle | The view angle of the viewer in degrees, where the model **does not get culled.**<br/>Setting to 360 effectively disables this culling method. | 180 |
| Force-Render-Radius | Minimum distance between the viewer and the model for it the be culled in blocks. | 5 |
| Cull-Type | [Culling behavior][] | MOVEMENT_ONLY |
......@@ -184,10 +278,34 @@ Culls the model when angle between the viewer and the model exceeds the configur
Culls the model when the model is being blocked by view-occluding blocks.
| Key | Description | Default |
|-----------------------|-----------------------------------------------------------------------------------|---------|
|------------------------------|-----------------------------------------------------------------------------------|---------|
| Enabled | Whether this culling method is on. | true |
| Force-Render-Radius | Minimum distance between the viewer and the model for it the be culled in blocks. | 5 |
| Force-Render-Size | Minimum render hitbox width or height to give up on culling. | 32 |
| Force-Render-Size > Width | Minimum render hitbox width to give up on culling. | 32 |
| Force-Render-Size > Height | Minimum render hitbox height to give up on culling. | 32 |
| Cull-Type | [Culling behavior][] | CULLED |
| Use-Paper-Clip-Method | Whether the culling method should use the paper variant of the raytrace method. | false |
### Reduce Update When Far
Reduces how often animation updates are sent to a player as the model gets further away, lowering network load for
distant models. The update rate falls off with distance and is clamped between the configured minimum and maximum rate
multipliers.
| Key | Description | Default |
|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|---------|
| Enabled | Whether this optimization is enabled. | true |
| Active-By-Default | Whether this optimization is active for a player by default when they are registered. | true |
| Falloff-Length | The distance, in blocks, over which the rate multiplier decays by one factor of `Falloff-Multiplier`. | 8 |
| Falloff-Multiplier | The multiplier applied to the update rate per `Falloff-Length` of distance beyond the full-update range. Smaller values fall off faster. | 0.65 |
| Full-Update-Distance | The distance, in blocks, within which models always receive full-rate updates. | 8 |
| Full-Update-Distance-Multiplier-By-Size | Multiplier scaling the full-update distance by the model's render hitbox size, so larger models keep full updates from further away. | 1 |
| Max-Rate-Multiplier | The upper clamp on the update rate multiplier. | 1 |
| Min-Rate-Multiplier | The lower clamp on the update rate multiplier, preventing very distant models from stopping updates entirely. | 0.05 |
### Override Move To Method
Whether Model Engine overrides the navigation `moveTo` method for modeled mobs. When disabled, the wrapped navigation
falls back to the vanilla movement behavior.
[Culling behavior]: Technical/Terminology#culltype
\ No newline at end of file