Spine Editor - Manual
Regarding the translation
This document was translated by ChatGPT-4, and the content may contain inaccuracies.
User Interface¶
Left: Action Panel¶
Function | Description |
---|---|
Background | ■ Solid Color: Solid color background ■ Image: Custom image background ■ Disable: Turn off the background, used to save snapshots of the model without a background |
Zoom | Zoom the model |
Rotate | Rotate the model |
Save Current Size and Position | Write the current size and position into the Json configuration options, used to set the initial state of the model |
Show Hit Areas | Display areas with a red frame |
Skin | Select the skin |
Hint | Operation hints |
Info | Model moc file information |
Log | Model log, displays motion events |
Rendering Size | Resolution of the current preview window |
Recording Settings | Settings for recording videos and snapshots |
Center: Model Preview¶
Icon | Description |
---|---|
Edit Json configuration | |
Edit model boundaries | |
Save model snapshot | |
Video recording | |
Show/Hide left panel | |
Show/Hide right panel | |
Preview the model on the desktop |
Right: Tabs¶
File Explorer¶
-
Display model folder
Icon Description Open Json file Open model folder Refresh folder -
Display files related to the model
-
Other Operations
Operation Description Open Folder Open the model folder Create Configuration File Refer to: Create Json Configuration File
Configuration File¶
-
Display the contents of the Json configuration file
-
Other Operations
Operation Description Edit Edit the Json file
Animation¶
-
Display all animations of the model
-
Other Operations
Operation Description Loop Preview animation in loop mode Speed Adjust the preview speed of the animation Reset All Reset all user actions on the animations Remove sorting Sort in ascending order Sort in descending order
Bones¶
-
Display all bones of the model
-
Other Operations
Operation Description Reset All Reset all user actions on the bones Remove sorting Sort in ascending order Sort in descending order
Slots¶
-
Display the opacity of all slots in the model
-
Other Operations
Operation Description Reset All Reset all user actions on the slots Remove sorting Sort in ascending order Sort in descending order
Json Editor¶
Regarding [Save] and [Close]
- [Save] writes the current configuration into the file and reloads the model
- [Close] only closes the editor window, and the model will not be reloaded
General Icon Buttons
Icon | Description | Icon | Description |
---|---|---|---|
Add multiple | Duplicate | ||
Add | Remove | ||
Move up | Move down | ||
Modify item name | Select item |
Template
Icon | Description |
---|---|
Load template (insert into item list) | |
Load template (replace item list) | |
Save template |
Version¶
Model version
Texture Atlas¶
Model texture atlas
- A model can have multiple texture atlases
- One texture atlas corresponds to multiple texture files (png)
Hit Areas¶
Model trigger areas that can trigger motion events via mouse interaction
Item Property | Description |
---|---|
Name | Area name |
ID | Model bone ID |
Sorting | When areas overlap, only the area with the highest order number can receive mouse events |
On Click Motion | Triggered when the mouse clicks the area |
On Press Motion | Triggered when the mouse is pressed within the area |
On Release Motion | Triggered when the mouse is released, even if outside the area |
On Enter Motion | Triggered when the mouse enters the area |
On Exit Motion | Triggered when the mouse leaves the area |
Width | Width of the area |
Height | Height of the area |
Center X | X position of the area's center |
Center Y | Y position of the area's center |
Enabled | Whether the area is enabled |
Regarding Artmesh Visibility and Area Triggering
The artmesh associated with the trigger area must have visible parts to be triggered. Fully transparent or invisible artmesh cannot be triggered.
Motion¶
- A motion consists of multiple motion groups, and each motion group can contain multiple motion events
- Supports simultaneous playback of motion groups on different layers, with layers represented as [#Layer number]
Example | Description |
---|---|
Start | Predefined motion group |
TapHead | Predefined motion group [TapAreaName], where [Head] is the name of the trigger area |
MyGroup | A custom motion group name |
MyGroup#3 | A custom motion group name, with the motion group on layer [3] |
Regarding Simultaneous Playback of Multiple Motions
- Motion playback incorporates a layer concept. Motions on different layers can play simultaneously, and motions on higher layers will override the same parameters of motions on lower layers.
- Motions play on layer 0 by default. To play on other layers, use the naming format [MotionGroup#Layer], e.g., [idle#1] indicates that the motion group plays on layer 1. Note that for playback on layer 0, do not use [MotionGroup#0]; simply use [MotionGroup].
- Predefined motion groups, except for [Idle], do not support layers. Use [start_mtn] within predefined motions to execute motions from other layers.
- For application examples, see Simultaneous Playback of Multiple Motion Groups
Predefined Motion Groups¶
Event | Description | Remarks |
---|---|---|
Idle | Standby | |
Tap | Mouse click | If Hit Areas exist, TapAreaName takes priority |
TapAreaName | Mouse click in the area | Requires configuration of Hit Areas, otherwise use the Tap event |
Start | Triggered when the model is loaded | |
Shake | Triggered when the device shakes | Only available on devices supporting motion sensing |
Tick | Triggered once every minute | |
TickX (tick_x) | Triggered every x minutes | Replace X with a number ranging from 1-60 For events that meet multiple conditions simultaneously (e.g., Tick1 and Tick2 on the 2nd minute), one event is randomly chosen to trigger |
LeaveX_Y_Z (leave_x_y_z) | Idle (no other events except standby are triggered) | X indicates the time after which execution begins, Y indicates the minimum trigger interval, Z indicates the maximum trigger interval, in seconds Example: Leave30_10_20 means this event starts after 30 seconds of idleness and triggers at intervals between 10 to 20 seconds |
Motion Event Properties¶
Basic Properties | Description | Options | Remarks |
---|---|---|---|
Name | Motion name | A motion can only be correctly identified by other references if a name is provided; otherwise, only the motion group can be identified | |
Language | Language corresponding to the motion | ■ en: English ■ zhs: Simplified Chinese ■ zht: Traditional Chinese ■ ja: Japanese ■ ru: Russian |
Only triggered when the language set in the program matches this |
File | Motion file (motion3.json) | ||
On End of Playback | Determines what happens when the motion finishes playback | ||
Text | Text displayed during motion execution | ||
Text Duration | Custom duration for text display | If not set, the system will determine automatically | |
Text Delay | Sets how long after the motion starts the text appears | ||
Expression | Facial expression during motion playback, specify the expression name here | ||
Sound | Sound during motion playback | ||
Sound Channel | Sets the channel for sound playback | A total of three channels (0, 1, 2) are available. Different channels can play sounds simultaneously. Default is 0 | |
Sound Volume | Volume of the sound | ||
Sound Delay | Sets how long after the motion starts the sound begins to play | ||
Sound Loop | Loops the sound playback | Often used for background music playback | |
Blend Mode | Blending for motions at different layers | ■ Overlay ■ Additive |
Supported only in Spine 3.7 and above |
Blend Weight | Blending weight between the current motion and others | Supported only in Spine 3.5 and above | |
Fade In | Fade-in for the motion | ||
Fade Out | Fade-out for the motion | ||
Priority | Execution priority of the motion | ■ The range can be set between 2-9, with higher values having higher priority ■ Default is 2; if set to 9, it will forcibly override the previous event |
|
Motion Duration | Custom duration for the motion event | Once set, this event is not affected by motion and voice duration | |
Weight | Trigger probability of the motion | Range is 1-999; higher values mean higher probability. Default is 1 | |
Speed | Playback speed of the motion | Not available in SDK 2. Default is 1 |
Advanced Properties | Description | Options | Remarks |
---|---|---|---|
Pre-Command | Executes before the motion starts playing | Available Command List | |
Post-Command | Executes after the motion finishes playing | Available Command List | |
Previous Motion | Specifies the previous motion event | Only when the previous motion matches the specified one can the current motion execute | |
Next Motion | Specifies the next motion | Executes the next motion after the current motion finishes | |
Override Face Tracking Parameters | When checked, the motion will not be affected by face tracking | ||
Enabled | Whether this motion event can be executed | ||
Interruptible | Whether this motion can be interrupted | ■ When checked, this motion event can be interrupted by motions with the same priority ■ This parameter is ineffective for events with priority 9 |
|
Ignorable | Whether this motion can be ignored | ■ If there are other motion events that meet the trigger conditions and are set with a time limit, whether this event can be executed ■ Setting a time limit overrides this parameter |
|
Time Restriction | Can only be executed when the time condition is met | ■ Hour/Minute/Month/Day ■ Duration (minutes) ■ Birthday: User-set birthday in the program settings |
|
Affection Level | Can only be executed when the affection level condition is met | ■ Minimum Value: Minimum affection level required to trigger the event ■ Maximum Value: Maximum affection level required to trigger the event ■ Equals: Triggers when affection level equals this value ■ Reward: Affection level increment upon successfully triggering the event |
Special Properties | Description | Options | Remarks |
---|---|---|---|
Selection | Executes motion events by displaying selection options in a text box | ■ Text: Text ■ NextMtn: Next motion |
|
Float Variable | Controls motion execution via floating-point variables | Condition Check (Condition) ■ greater: Greater than ■ greater_equal: Greater than or equal to ■ lower: Less than ■ lower_equal: Less than or equal to ■ equal: Equal to ■ not_equal: Not equal to Value Operation (Operation) ■ assign: Assign ■ add: Add ■ subtract: Subtract ■ multiply: Multiply ■ divide: Divide ■ init: Initialize |
■ Condition checks determine whether the motion event can be triggered ■ Value operations modify the value after the event is triggered ■ Two variables can be conditionally checked and operated upon, e.g., greater $var2 ($+variable name) ■ Variable names can correspond to model parameter names, with parameter names prefixed by @, e.g., @ParamAngleX ■ Random number functions: rand(min, max) and randf(min, max). rand generates integer random numbers; randf generates floating-point random numbers. min and max specify the range for random numbers■ Variables can be archived ■ init operation is only effective if the variable is not archived (uninitialized) |
Floating-Point Variables
- Floating-point variables have two types: [Condition Check] and [Value Operation]
- Condition Check: The motion event can only execute if the floating-point variable meets the condition
- Value Operation: After the motion event executes, the floating-point variable is modified
Regarding Motion References
- Motion reference format: [MotionGroup:MotionName] (e.g., Tap:MotionA)
- If only the [MotionGroup] is written (e.g., Tap), any motion under the group meeting the conditions is randomly executed
- If the full format [MotionGroup:MotionName] is provided (e.g., Tap:MotionA), the specified motion is executed under the motion group
Controller¶
Note
- All items labeled as Parameters in the controller are Animations in Spine
- Difference between Spine and Live2D controllers: Live2D controllers control parameter values, while Spine controllers control animations by setting animation speed to 0 and controlling the animation time through code. Please pay attention when using.
Mouse Tracking¶
Allows the model to follow the mouse to some extent
For item properties, see Common Item Properties A
Property | Description |
---|---|
Smooth Time | Higher smooth time results in slower model movement following the mouse, with smoother motion |
Lip Sync¶
Controls the model's mouth opening and closing parameters based on audio volume
For item properties, see Common Item Properties A
Property | Description |
---|---|
Gain | Higher gain makes the mouth movement more sensitive to audio volume |
Smooth Time | Higher smooth time results in slower changes in mouth movement, with smoother motion |
Parameter Dragging¶
Use mouse-related operations to control model parameters.
Note
The specified animation must be playing; otherwise, this controller will not work.
Item Property | Description |
---|---|
Name | Project name |
Hit Area | The area that triggers dragging |
ID | Parameter ID |
Minimum Value | Minimum parameter value; if not set, the default value is used |
Maximum Value | Maximum parameter value; if not set, the default value is used |
Type | ■ Drag: Hold the left mouse button and drag ■ Stroke: Hold the left mouse button and move back and forth ■ Hold: Hold down the left mouse button |
Coordinate Axis | Mouse X and Y axes |
Factor | Multiplication factor ■ Drag / Stroke: The parameter change value per pixel moved by the mouse ■ Hold: The parameter change value per second held |
Lock Parameter | The parameter does not return to its original position after releasing the mouse |
Weight | The degree of influence the parameter value has on the model, i.e., [Actual Influence Value = Parameter Value x Weight] |
Minimum Value Motion | Triggered when the parameter reaches the minimum value |
Maximum Value Motion | Triggered when the parameter reaches the maximum value |
Start Motion | Triggered when the left mouse button is pressed |
End Motion | Triggered when the mouse is released (without reaching the maximum parameter value) |
Enabled | Whether the project is enabled |
Parameter Loop¶
Parameters loop over time.
Note
The controller will play animations at a high layer and take control.
Item Property | Description |
---|---|
Name | Project name |
ID Group | Parameter ID group |
Type | How the parameter value changes |
Blend Mode | Blend mode between the parameter and model motion |
Duration | Loop time (ms) |
Minimum Value | Minimum parameter value |
Maximum Value | Maximum parameter value |
Minimum Interval | Minimum interval between two loops |
Maximum Interval | Maximum interval between two loops |
Weight | The degree of influence the parameter value has on the model, i.e., [Actual Influence Value = Parameter Value x Weight] |
Time Sync | Set parameter values based on the current system time |
Enabled | Whether the project is enabled |
Slot Opacity¶
Predefined artmesh opacity that allows user control.
For item properties, see Common Item Properties B.
Slot Color¶
Predefined artmesh color that allows user control.
For item properties, see Common Item Properties B.
Accelerator¶
Use mobile hardware accelerators to control model parameters.
For item properties, see Common Item Properties A.
Key Trigger¶
Item Property | Description |
---|---|
On Press Motion | Triggered when the key is pressed |
On Release Motion | Triggered when the key is released |
Hint
To enable key functionality, activate Hotkeys in Control Panel > Settings.
Note
- When using the left or right mouse buttons, set the corresponding trigger motion to a different layer than the click event, or the click event will not trigger after the left or right mouse button events are triggered.
- Use Preview Model on Desktop or load the model directly in desktop/wallpaper software to view the effect.
Affection System¶
Property | Description |
---|---|
Initial Value | Initial value assigned when the model is first loaded. This value must fall between the minimum and maximum values. |
Minimum Value | Lower limit of affection level |
Maximum Value | Upper limit of affection level |
Active Reward | Reward value per minute when the model is loaded, usually set to a positive value |
Inactive Reward | Reward value per minute when the model is not loaded, usually set to a negative value |
Daily Reward Limit | Upper limit of daily rewards |
Bind Parameter ID | Bind to a model parameter, where the parameter value is controlled by the affection level, commonly used to display the current affection level value |
Hint
You can change the affection level value using the Affection property in Motion Events.
#Appendix: Common Item Properties A¶
Note
The controller will play animations at a high layer and take control.
Item Property | Description | Mouse Tracking | Lip Sync | Accelerator |
---|---|---|---|---|
Parameter | Parameter ID | ● | ● | ● |
Coordinate Axis | Mouse X and Y axes | ● | ● | |
Reverse | Reverse parameter value | ● | ● | ● |
Minimum Value | Minimum parameter value | ● | ● | ● |
Maximum Value | Maximum parameter value | ● | ● | ● |
Default Value | Default parameter value | ● | ● | |
Blend Mode | Blend mode between the parameter and model motion | ● | ● | ● |
Weight | The degree of influence the parameter value has on the model, i.e., [Actual Influence Value = Parameter Value x Weight] | ● | ● | ● |
Input | Directly bind to mouse movement or left and right buttons | ● |
Maximum Value, Minimum Value, and Default Value
- Parameters inherently have maximum, minimum, and default values, which will be automatically filled in when a parameter is selected.
- These three values can be customized, which will override the default values of the parameter.
- Customized values must fall within the inherent maximum and minimum value range of the parameter.
#Appendix: Common Item Properties B¶
Item Property | Description |
---|---|
Name | Project name |
Text | Display text; if not specified, the project name will be displayed |
Value | Initial value |
Hidden from User | Does not appear in the edit panel |
ID Group | Associated parameter ID group |
Key Values | ■ Used only for the Slot Color controller ■ If key values exist, the UI will display as left and right arrows; otherwise, it will display as a slider |
Hidden from User
Normally, users can modify the values of a project through the edit panel. If the project value is fixed or should not be modified by the user, check Hidden from User.
#Appendix: Available Commands¶
- Commands are space-separated for each parameter. If an ID or path contains spaces, use a backslash before the space. For example,
my model
should be written asmy\ model
. - Use a semicolon (
;
) to separate multiple commands.
Command | Description | Example |
---|---|---|
open_url | Open a link in a browser | open_url https://www.baidu.com |
change_cos | Change costume | change_cos cos02.model.json |
start_mtn | Execute the specified model motion | start_mtn model_id group:motion (model_id can be omitted to represent the current model) |
stop_mtn | Stop motions at the specified layer | stop_mtn 1 (1 represents the layer number); for the default layer, write 0 |
stop_sound | Stop sound | stop_sound 0 (0 is the channel identifier) |
stop_all_sounds | Stop all sounds | |
mute_sound | Mute sound | mute_sound 0 (0 is the channel identifier) |
unmute_sound | Unmute sound | |
hide_text | Hide text display | |
set_skins | Set multiple skins | |
add_skins | Add skins | |
remove_skins | Remove skins | |
reset_pose | Reset the pose |
Property | Command | Description | Example |
---|---|---|---|
slot_opacities slot_colors |
lock unlock set |
Lock Unlock Set |
■ slot_opacities lock SLOT_A 1 (1 is the lock value) ■ slot_opacities unlock SLOT_A ■ slot_opacities unlock (unlock all) ■ slot_opacities set SLOT_A 1 * The difference between lock and set is that lock is persistent, while set assigns a value only once. |
motions | enable disable |
Enable Disable |
■ motions enable group:motion ■ motions disable group:motion |
hit_areas | enable disable |
Enable Disable |
■ hit_areas enable area_name (area_name refers to the name) ■ hit_areas disable area_name |
Options¶
Property | Description |
---|---|
ID | Model ID, used for interaction between models |
Name | Display name, used to display the model name in various places (e.g., text boxes) |
Scale Factor | Default scaling of the model |
Position X | Default horizontal position of the model |
Position Y | Default vertical position of the model |
Anisotropic Filtering Level | Anisotropic filtering improves the appearance of textures in certain situations but increases the performance cost on graphics hardware. When the value is greater than 1, it overrides the anisotropic filtering level set in the application. |
Edge Padding | Resolves issues with black edges appearing on the model |
Allow User Customization | When checked, users can customize the model |
Shader | In some cases, the default shader may cause the model to display incorrectly. Changing the shader might resolve display issues. |