Spine Editor - Manual
UI¶
Left: Operation Bar¶
Function | Description |
---|---|
Background | ■ Solid color: solid background colors ■ Image: custom background image ■ Disable: turn off background to save model snapshots without background |
Scale | Scale model |
Rotate | Rotate model |
Save Scale and Position | Write the current size and position into the Json config -> Option |
Show Hit Areas | Show hit areas in red frame |
Skin | Select skin |
Tips | Operation tips |
Information | Moc model file information |
Log | Show model logs and display motion events |
Render Size | The resolution of the preview window |
Snapshot Size | The size of the snapshot image |
Center: Model Preview¶
Icon | Description |
---|---|
Edit Json config | |
Edit model bounds | |
Preview models on the desktop | |
Save model snapshot |
Right: Tabs¶
File Inspector¶
-
Display model folders
Icon Description Select Json file Select model folder Refresh -
Display model related files
-
Other operations
Operation Description Open Container Folder Open model file Create Config File Refer to Create Json config files
Config File¶
-
Display the content of Json config file
-
Other operations
Operation Description Edit Edit Json file
Animation¶
-
Displays all model animations
-
Other operations
Operation Description Reset All Resets all operations on animations Remove sort Ascend sort Descend sort
Bone¶
-
Displays all model bones
-
Other operations
Operation Description Reset All Resets all operations on bones Remove sort Ascend sort Descend sort
Slot¶
-
Display opacity of all slots of the model
-
Other operations
Operation Description Reset All Resets all operations on slots Remove sort Ascend sort Descend sort
Json Editor¶
About save and close
- "Save" will write the current config to the file and reload the model
- "Close" only close the editor window and the model will not be reloaded
Common icons
Icon | Description | Icon | Description |
---|---|---|---|
Add Multiple Items | Copy | ||
Add | Remove | ||
Move up | Move down | ||
Edit item name | Select item |
Template
Icon | Description |
---|---|
Load template (insert item list) | |
Load template (replace item list) | |
Save template |
Versions¶
Model versions
Atlases¶
Model atlases
- A model can have multiple texture atlases (altas)
- A texture equals multiple texture files(png)
Hit Areas¶
Model trigger area, motion events can be triggered by the mouse
Item | Description |
---|---|
Name | Area name |
ID | Model artmesh ID |
Sort | When areas overlap, only the area with the highest serial number can receive mouse events |
Motion When Clicked | Triggered when the mouse clicks on the area |
Motion When Entered | Triggered when the mouse enters an area |
Motion When Exited | Triggered when the mouse leaves the area |
Enabled | Region is available or not |
Width | The width of the area |
Height | The height of the area |
Center X | Center X position in area |
Center Y | Center Y position in area |
About artmesh visibility and area triggering
The artmesh that triggers the area association must have a visible part of it to trigger, not fully transparent or invisible
Motions¶
- Motions consist of multiple motion groups, and each motion group can have multiple motions
- Support to play motion groups of different layers at the same time, the layer is represented by "# layer number"
Example | Description |
---|---|
Start | Predefined motion group |
TapHead | Predefined motion group "Tap area name", where "Head" is the triggering area name |
MyGroup | Customized motion group name |
MyGroup#3 | Customized motion group name, motion group layer number is "3" |
About multi-motion simultaneous playback
- Motion playback has the concept of Layer. Motions at different layers can be played at the same time. Motions at the upper layer will overwrite motions with the same parameters at the lower layer
- Motions are played at layer 0 by default. If you want to play at other layers, use the "motion group # layer" name format. For example, motion group "idle#1" indicates that the motion group is played at layer 1. Do not use motion "Group #0" when playing on layer 0. Use "Motion Group" directly.
- Predefined Motion Group does not support layer except [Idle]. Please use [start_mtn] in the predefined motion to play motions at other layer.
- Example See Simultaneous Playback in multiple Motion groups
Predefined Motion Group¶
Event | Description | Note |
---|---|---|
Idle | idle | |
Tap | Mouse click | If HitAreas**exist, **Tap area name is preferentially triggered |
TapArea | Mouse click area | HitAreas need to be configured, otherwise Tap events are used |
Start | Triggered when the model loads | |
Shake | Triggered when the device is shaken | Only for devices that support gravity sensing |
Tick | Triggers every minute | |
TickX(tick_x) | Triggers every x minutes | Fill in the number at X, ranging from 1 to 60 An event is randomly selected to trigger, like Tick1 and Tick2 in minute 2 |
LeaveX_Y_Z(leave_x_y_z) | Leave (No other event is triggered except idle) | X indicates the start time, Y indicates the minimum trigger interval, and Z indicates the maximum trigger interval, in seconds For example:Leave30_10_20 indicates that the Leave30_10_20 starts executing the event after 30 seconds. The triggering interval is between 10 and 20 seconds |
Motion Properties¶
Basic | Description | Option | Note |
---|---|---|---|
Name | Motion name | Motions can only be correctly identified by other referees after they have been named, otherwise only motion groups can be identified | |
Language | The language of the motion | ■ en:English ■ zhs:Simplified Chinese ■ zht:Chinese traditional ■ ja:Japanese ■ ru:Russian |
Only can be triggered when the program is set to a language that matches the motion |
File | Motion file(motion3.json) | ||
File Loop | Check and the motion will be played in a loop | ||
Text | The text displayed when the motion is executed | ||
Text Duration(ms) | Duration of custom text display | System will judge automatically when no set text duration | |
Text Delay(ms) | Set the delay to start displaying text after the motion is played | ||
Expression | When the motion is played, fill in the expression name here | ||
Sound | The sound of an motion being played | ||
Sound Channel | Set the channel for playing the sound | Select three channels (0,1,2), and the sound of different channels can be played at the same time. The default is 0 | |
Sound Volume | Sound volume | ||
Sound Delay(ms) | Set the delay for starting sound after an motion is played | ||
Sound Loop | Loop sound | Often used to play background music | |
Blend Mode | Used for mixing different layers of motion | ■ Override ■ Additive |
|
Blend Weight | The weight of the current motion mixed with other motions | ||
Fade In(ms) | Motion fade in | ||
Fade Out(ms) | Motion fade out | ||
Priority(2-9) | Motion execution priority | ■ The value can be set in the range of 2-9. The larger the value, the higher the priority ■ The default value is 2. If it is set to 9, the previous event is forcibly overwritten |
|
Motion Duration(ms) | Duration of a custom motion event | After setting, the event is not affected by motions and voice duration | |
Weight | Motion trigger probability | The value ranges from 1 to 999. The larger the value is, the higher the trigger probability is. The default is 1 | |
Speed | Motion playback speed | SDK 2 is unavailable. The default is 1 |
Advanced | Description | Option | Note |
---|---|---|---|
Command | Execute before the motion starts playing | Available Commands | |
Post Command | Execute after the motion is played | Available Commands | |
Previous Motion | Specifies the previous motion event | The current motion can be executed only if the previous motion was set | |
Next Motion | Specifies the next motion event | The next motion to be performed after the motion is completed | |
Override Face Tracking | Motions will not be affected by face capture | ||
Enabled | Motion events can be executed or not | ||
Interruptable | Motions can be interrupted or not | ■ When checked, this motion event can be interrupted by motions of the same priority ■ This parameter is invalid for events of priority 9 |
|
Ignorable | Motions can be ignored or not | ■ Whether this event is allowed to be executed, when there is another motion event that meets the trigger condition and has a "Time limit" set ■ Setting "Time limit" will cause this parameter to be invalid |
|
Time Limit | The command can be executed only when the time condition is met | ■ Hour/Minute/Month/Day ■ Duration(ms) ■ Birthday: the user’s birthday set in the program settings |
|
Intimacy | Only be executed when the intimacy is met | ■ Minimum: Minimum intimacy required to trigger the event ■ Maximum: Maximum intimacy required to trigger the event ■ Equal to: When the intimacy is equal to this value ■ Bonus: The intimacy value increased by a successful trigger event |
Special | Description | Option | Note |
---|---|---|---|
Choices | Performs an motion event by displaying a selection in a text box | ■ Text ■ NextMtn:Next Motion |
|
Float Variables | The execution of the motion is controlled by float variables | Condition ■ greater ■ greater_equal ■ lower ■ lower_equal ■ equal ■ not_equal Value Operation ■ assign ■ add ■ subtract ■ multiply ■ divide ■ init |
■ A conditional judgment is used to determine whether the motion event can be triggered ■ Value manipulation is used to manipulate values after an event is triggered ■ Two variables can be conditional and manipulated, for example: greater $var2 ($+ variable name) ■ The variable name can be the model parameter name preceded by @, for example, @paramanglex ■ Random number functions: RAND (min, Max) and RANDF (min, Max). Rand is an integer random; Randf is floating point random; Min and Max Write the minimum and maximum values of random numbers ■ Variable archive ■ Init only works if the variable is not archived (uninitialized) |
Float Variables
- Float variables are of two types: conditional and value manipulation
- Conditional manipulation: This motion event is allowed to execute only if a float variable meets a condition
- Value manipulation: After the motion event is executed, the value of a float variable is manipulated
Reference to an motion
- Motion reference format: "Motion Group: motion name" (for example: Tap:MotionA)
- If only "Motion group" (for example, Tap) is written, any motion in this motion group that meets the condition is executed randomly
- If "Motion Group": motion name is specified (for example, Tap:MotionA), the motion specified in the motion group is executed
Controllers¶
Slot Opacity¶
Predefined artmesh opacity allows users to control
Item attributes see as Common Item Attributes B
Slot Color¶
Predefined artmesh colors that users can control
Item attributes see as Common Item Attributes B
Intimacy System¶
Item | Description |
---|---|
Initial Value | The initial value assigned when the model is first loaded. This value must be between the maximum and minimum values |
Min Value | Lower intimacy limit |
Max Value | Higher intimacy limit |
Active Bonus | The bonus value per minute when the model is loaded, usually set to a positive value |
Inactive Bonus | The bonus value for each minute the model is not loaded, usually set to a negative value |
Bonus Daily Limit | Maximum daily bonus |
ID | Binds to a model parameter whose value is controlled by intimacy and is often used to display the current intimacy value |
Tips
Can change the intimacy value from the intimacy property of the motion event
#Appendix: Common Item Attributes B¶
Item | Description |
---|---|
Name | Item name |
Text | Displays the text, or displays the item name if not filled in |
Value | Initial value |
Hidden from users | Not show in edit panel |
ID group | Associated parameter ID group |
Key Values | ■ Only used for "Slot Color" controller ■ If there are key values, the user interface displays them in the form of left and right arrows; otherwise, it displays them in the form of sliders |
Hidden from users
Under normal circumstances, users can modify the item value through the edit panel. If the item is a fixed value or do not want to modify it, please check "Hidden from users"
#Appendix: Available Commands¶
- Commands separate each argument with a space. If there are spaces in the ID or path, please add a backslash before the spaces. For example, "my model" needs to be written as "my model"
- Multiple commands are separated by semicolons (;)
Command | Description | Example |
---|---|---|
open_url | Open the link from your browser | open_url https://www.baidu.com |
change_cos | Change clothes | change_cos cos02.model.json |
start_mtn | Start the motions of the specified model | start_mtn model_id group:motion (The model_id can be omitted and represents the current model) |
stop_mtn | Stops the motion of specifying layer | stop_mtn 1 (1 indicates the layer number), 0 for default layer |
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 | |
set_skins | Set skins | |
add_skins | Add skins | |
remove_skins | Remove skins |
Item | Command | Description | Example |
---|---|---|---|
slot_opacities slot_colors |
lock unlock set |
lock unlock set |
■ slot_opacities lock SLOT_A 1 (1 is opacity value) ■ slot_opacities unlock SLOT_A ■ slot_opacities unlock (Unlock all) ■ slot_opacities set SLOT_A 1 * The difference between a lock and a set is that a lock is persistent, whereas a set is assigned 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指名称) ■ hit_areas disable area_name |
Options¶
Item | Description |
---|---|
ID | Model ID, used for model-to-model interactions |
Name | Display name, which will be used to display model names in various places (such as text box) |
Scale Factor | The default scale for the model |
Position X | The default left and right positions of the model |
Position Y | The default up and down position of the model |
Anisotropic Filtering Level | Anisotropic filtering makes mapping look better in some cases, but adds to the performance overhead of graphics hardware. A value greater than 1 overrides the map anisotropic filtering level set in the application |
Edge Padding | Fixed black edges on models |
Allow User Modification | After this parameter is selected, can customize the model |
Shader | In some cases, the default shader may display the model incorrectly. Changing the shader may solve the display problem |
Revision Date: Feb 24, 2024