Skip to content

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