SpineAnimationrig is a tool for control the spine-runtime. Until now, Spine-runtime was used by programmers. Designers could not touch it. This tool is intended to allow designers to use Spine-runtime functionality.
SpineAnimationrig㯠Spine-runtime ãã³ã³ãããŒã«ããããŒã«ã§ãã ä»ãŸã§ Spine-runtime ã䜿ãã®ã¯ããã°ã©ããŒã§ããããã¶ã€ããŒãè§Šãããšãåºæ¥ãªãé åã§ããã ãã®ããŒã«ã¯ãSpine-runtime ã®æ©èœããã¶ã€ããŒã«ã䜿ããããã«ããããšãç®çãšããŠããŸãã
This software is free-software. Free to use forever.
ãã®ãœãããŠã§ã¢ã¯ããªãŒãœãããŠã§ã¢ã§ãããã£ãšç¡æã
This editor(SpineAnimationrig.exe) is provided for each version of Spine. 3.8 was officially released, we are developing mainly 3.8.
ãšãã£ã¿ïŒSpineAnimationrig.exe)ã¯Spineã®ããŒãžã§ã³ããšã«çšæãããŠããŸãã3.8ãæ£åŒãªãªãŒã¹ãããã®ã§ã3.8ãã¡ã€ã³ã«éçºããŠããŸãã
Please refer to file version compatibility.
詳ããã¯ãã¡ã€ã«ããŒãžã§ã³ãåç
§ãã ããã
Please access the following
以äžããã¢ã¯ã»ã¹ããŠãã ããã
Anyone is allowed to view the exported Spine file.
You don't need to purchase a Spine license to use this editor.
ãšã¯ã¹ããŒããããSpineãã¡ã€ã«ã¯ã ãã§ã衚瀺ãããããšãèš±ãããŠããŸãã
ãã®ãšãã£ã¿ã®äœ¿çšããããã«Spineã©ã€ã»ã³ã¹ã賌å
¥ããå¿
èŠã¯ãããŸããã
But, some features require the Spine editor (pro version).
please consider purchasing.
ããããããã€ãã®æ©èœã¯Spineãšãã£ã¿(pro version)ãå¿
èŠãšããŸãã
賌å
¥ããæ€èšãã ããã
AAA animation
* spine object
+ transform layer
+ spine layer
+ spine layer
* null object
+ transform layer
BBB animation
* spine object
+ transform layer
+ spine layer
+ spine layer
* null object
+ transform layer
Objects and Layers structure is shared between animations.
If delete a layer, Affects all animations.
ã¢ãã¡ãŒã·ã§ã³ããªããžã§ã¯ããLayerããã®äžã«Keyã®ããŒã¿ãæã¡ãŸãã
ãªããžã§ã¯ããšLayerã®æ§æã¯ãã¢ãã¡ãŒã·ã§ã³éã§å
±æãããåžžã«åãæ§æãåããŸãã
ããLayerãåé€ããã°ãå
šã¢ãã¡ãŒã·ã§ã³ã«åæ ãããŸãã
The version of the Animtionrig file and Spine-loader are displayed in the form caption.
Animtionrigãã¡ã€ã«ã®ããŒãžã§ã³ãSpineããŒããŒã®ããŒãžã§ã³ã¯ãã©ãŒã ãã£ãã·ã§ã³ã«è¡šç€ºãããŸãã
rev | Editor build revision |
latest | Animationrig file version |
Spine | Spine file loader version |
The editor and runtime can read all old version files (backward compatible).
åºæ¬çã«ããšãã£ã¿ãã©ã³ã¿ã€ã ã¯å€ãããŒãžã§ã³ã®ãã¡ã€ã«ããã¹ãŠèªã¿èŸŒãããšãã§ããŸãïŒåŸæ¹äºææ§ïŒã
Spine-runtime-loader has not backward compatible.
Please output the file in a near version.
Spine-runtimeã®ããŒããŒã¯åŸæ¹äºææ§ãæã¡ãŸããã
è¿ãããŒãžã§ã³ã§ãã¡ã€ã«åºåããŠãã ããã
In principle, Editor is Used the latest runtime(loder) for each major version.
ååãšããŠããšãã£ã¿ã¯å€§ããªããŒãžã§ã³ããšã«ææ°ã®ã©ã³ã¿ã€ã ã䜿çšããŠããŸãã
Spine-runtime needs ver 3.7 or more to use MixAdd.
So the editor does not support 3.6.
MixAddã䜿çšããã«ã¯3.7以äžãå¿
èŠã§ãã
ãªã®ã§ããšãã£ã¿ã¯3.6ã«å¯Ÿå¿ããŸããã
The runtime source code will need to be modified,
If you omit the function, it will work in 3.6.
ã©ã³ã¿ã€ã ã®ãœãŒã¹ã³ãŒãã«ä¿®æ£ãå¿
èŠã«ãªããŸããã
ããã€ãã®æ©èœããªãããããã°3.6ã§ãåããŸãã
Display a preview of the current state.
çŸåšã®ç¶æ
ã®ãã¬ãã¥ãŒã衚瀺ããŸãã
keys | function |
---|---|
space | play. |
shift + space | play at top. |
left | edit |
right alt + left |
move view position. |
mouse wheel | zoom. |
button | function |
---|---|
inspect | show inspect of current object çŸåšãªããžã§ã¯ãã®å 容ã衚瀺 |
stop animation | stop animation in edit mode ç·šéäžã®ã¢ãã¡ãŒã·ã§ã³ã忢 |
fps | preview frame rate |
Edit-handle-mode can be used when selected Transform layer.
ãã®æ©èœã¯ ãã©ã³ã¹ãã©ãŒã ã¬ã€ã€ ãéžæäžã®å Žåã®ã¿äœ¿çšåºæ¥ãŸãã
handle | function |
---|---|
select | select |
move | edit position |
scale | edit scale |
rotate | edit rotate |
Show the animation timeline.
Edit layers and keys.
éžæäžãªããžã§ã¯ãã®Layeræ§é ã衚瀺ããŸãã
keys | function |
---|---|
space | play. |
shift + space | play at top. |
left | select key. |
shift + left | grid time. |
right alt + left |
move time position. |
mouse wheel | time zoom. |
ctrl + left (+shift) | multi select. |
ctrl + a | select all keys in layer. |
ctrl + i | add key. |
ctrl + r | clear key. |
ctrl + d | delete key. |
ctrl + shift + i | add layer. |
ctrl + shift + r | clear layer. |
shift + ctrl + d | delete layer. |
Can be edit layers in object.
Layer names are shared between animations.
Execute order by up to down.
ãªããžã§ã¯ããæã€Layerãç·šéåºæ¥ãŸãã
ååã¯ã¢ãã¡ãŒã·ã§ã³éã§å
±æãããŸãã
å®è¡ã¯äžããäžãžé ã«è¡ãããŸãã
Allow overlapping keys on Animationrig.
It is useful for jumping position.
It becomes pink color.
Animationrigã§ã¯Keyã®éè€ã蚱容ããŸãã
ããã¯åº§æšããžã£ã³ããããå Žåã«åœ¹ç«ã¡ãŸãã
éè€ãããšãã³ã¯è²ã«ãªããŸãã
View and edit information of objects, animations, and keys.
ãªããžã§ã¯ããã¢ãã¡ãŒã·ã§ã³ãKeyãªã©ã®æ
å ±ã衚瀺ãç·šéããŸãã
Some properties can be edited with the mouse. You can also show the input form by double click.
äžéšã®ããããã£ã¯ããŠã¹ã«ããç·šéãå¯èœã§ãããŸãããã«ã¯ãªãã¯ã§å
¥åãã©ãŒã ã衚瀺ããããšãåºæ¥ãŸãã
property | |
---|---|
Frame | Timeline framerate ã¿ã€ã ã©ã€ã³ã®ãã¬ãŒã ã¬ãŒã |
Memo | User memo. Please use it freely! ãŠãŒã¶ãŒçšã¡ã¢é åããèªç±ã«ã |
Please referrence ObjectType page.
ãªããžã§ã¯ãé
ç®ãåç
§ãã ããã
property | |
---|---|
Name | animation name. |
Preview background animation | Preview only. Animation to run behind. ãã¬ãã¥ãŒå°çšãèåŸã«å®è¡ãããã¢ãã¡ãŒã·ã§ã³ã |
loop ennable loop disable |
Loop active. |
beginframe | Loop begin frame. |
endframe | Loop end frame. |
Please referrence LayerType page.
Keyé
ç®ãåç
§ãã ããã
This application also supports animation track blending.
You can check and preview in AnimationTest mode.
ãã®ããŒã«ã«ãã¢ãã¡ãŒã·ã§ã³ãéããæ©èœããããŸãã
éããéã®åãããã¬ãã¥ãŒãããå Žåã¯ã¢ãŒãã AnimationTest ã«åãæ¿ããŸãã
key | function |
---|---|
F6 | switch mode. |
space | play. |
shift + space | play at top. |
It is a function that can be used at runtime.
ã©ã³ã¿ã€ã ã®æ©èœã§ãã
It is a function to crossfade the switching of animation to a good feeling.
It was born because the fade setting with PreviousKey is very difficult.
It is a rough control, but a very powerful(useful) feature.
ã¢ãã¡ãŒã·ã§ã³ã®åãæ¿ããè¯ãæãã«ã¯ãã¹ãã§ãŒããããæ©èœã§ããPreviousKeyã«ãããã§ãŒãèšå®ã倧å€ãªããçãŸããŸããã倧éæã§ãã匷åãªæ©èœã§ãã
You can output the rendered result as an image.
ã¬ã³ããªã³ã°çµæãç»ååºåããããšãåºæ¥ãŸãã
The following settings are required to output.
åºåããã«ã¯ä»¥äžã®èšå®ãå¿
èŠã«ãªããŸãã
property | |
---|---|
Framerate | Output rendering framerate. |
Start frame , End frame | Time area. |
BGColor | Background color. Used only on RGB format. |
Preset rendering | Output for each preset. Set a target object to apply Preset. ããªã»ããããšã«åç»ãåºåããŸããããªã»ãããé©çšãããªããžã§ã¯ããèšå®ããŠãã ããã |
property | |
---|---|
Format | Output image format. RGB : color ARGB : color + alpha A : alpha grayscale |
Bleed,PreMultiplyAlpha | Color blend calculation. Used only on ARGB format. |
Base filename | Sets the output file name format. File-exe is unnecessary. åºåãã¡ã€ã«åã®ãã©ãŒããããèšå®ããŸããæ¡åŒµåã¯äžèŠã§ãã |
Output directory | Set by relative or absolute output directory path. åºåãã¹ãçžå¯ŸããŸãã¯çµ¶å¯Ÿãã¹ã§æå®ããŸãã |
When Preset rendering is enabled, batch output for each preset.
Preset renderingãæå¹ã«ãããšãããªã»ããããšã«äžæ¬åºåããŸãã
filename format : images_{preset}_{frame}
If FFmpeg is installed (environment path is set), movie formats(mp4 and more) can be output.
FFmpegãã€ã³ã¹ããŒã«ïŒç°å¢ãã¹ãèšå®ïŒããŠããã°ãmp4ãªã©ã®ã ãŒããŒåœ¢åŒãåºåããããšãå¯èœã§ãã
FFmpeg
https://ffmpeg.org/
FFmpeg binary
https://ffmpeg.zeranoe.com/builds/
Select FFmpeg: RGB from Format.
Format ãã FFmpeg : RGBãéžãã§ãã ããã
Set the command line to send the FFmpeg.
FFmpegã«éãã³ãã³ãã©ã€ã³ã®èšå®ãè¡ããŸããPreset ãããã³ãã¬ãŒããéžã¶ããšãåºæ¥ãŸãã
property | |
---|---|
Margin frame | Some formats (mp4) need to be sent more than the total frame. äžéšã®åœ¢åŒ(mp4)ã¯æ³å®ãã¬ãŒã ããå€ãã«éãå¿ èŠããããŸãã |
TCP port | Send images via TCP / IP. Set the listening port. TCP/IPã§ç»åãéããŸããåŸ æ©ããŒããæå®ããŸãã |
Preset | You can select the format template. åºå圢åŒã®ãã³ãã¬ãŒããéžæã§ããŸãã |
FFmpeg command is very difficult so please refer to the official
FFmpegã®ã³ãã³ãã¯éåžžã«é£ããã®ã§èª¬æã¯çç¥ããŸãã
Outputs the current editing status as a still image.
It is useful when you want only an image easily.
çŸåšã®ç·šéç¶æ
ã鿢ç»ã§åºåããŸãã
ç°¡åã«ç»åã ãæ¬²ããå Žåã«äŸ¿å©ã§ãããã
You do not need to set ExportImages.
Output with ARGB(Bleed) 32 bit PNG.
ExportImagesã®èšå®ã¯å¿
èŠãããŸããã
ARGB32bit(Bleed)ã®PNGã§åºåããŸãã
In this application, it can be use values ââinput from the external program(embedded application) into the timeline.
ãã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯å€éšïŒçµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³ïŒããå
¥åãããæ°å€ãã¿ã€ã ã©ã€ã³ã§äœ¿çšããããšãåºæ¥ãŸãã
If you use value from external, Set a special value to Key propertys.
Please select a value from the right click menu.
å€éšããã®å€æ°ã䜿çšããå Žåã¯ãKeyã®ããããã£ã«ç¹æ®ãªå€ãèšå®ããŸãã
å³ã¯ãªãã¯ã¡ãã¥ãŒãã倿°ãéžãã§ãã ããã
You can store(save) the state of values.
It is saved as .animrig.preset.txt
in the same location as the file.
å€ã®ç¶æ
ãèšæ¶ããŠããããšãåºæ¥ãŸãã
ãã®æ
å ±ã¯ãã¡ã€ã«ãšåãå Žæã« .animrig.preset.txt
ã§ä¿åãããŸãã
Export the state of all values to clipboard.
You can edit the output text format with export menu.
å€ã®æ
å ±ãã¯ãªããããŒãã«ã³ããŒããŸãã
åºåããã¹ãã®ãã©ãŒããã㯠export ã¡ãã¥ãŒããèšå®ãå¯èœã§ãã
replace word | |
---|---|
{value0} | write value by index. ã€ã³ããã¯ã¹çªå·ã®å€ãåºåã |
{set0.x} {set0.y} |
By XY index. XYã»ããçªå·ã§æå®ã |
{name.x} {name.y} |
By XY name. XYã»ããåã§æå®ã |
eye:{ position:[{eyepos.x},{eyepos.y}] , size:[{eyesize.x},{eyesize.y}] }
eye:{ position:[0.400,0.200] , size:[0.100,0.000] }
Animationrig supports simple physics model (spring model).
You can easily apply physics expressions that are difficult without Unity to Spine.
Accuracy and behavior are never perfect, But I think it can be used enough to express swaying hair.
ç°¡åãªç©çèšç®ïŒããã¢ãã«ïŒãæèŒããŠããŸãã
Unityã䜿ããªããšé£ããç©çèšç®ããç°¡åã«Spineã«é©çšã§ããŸãã
ç²ŸåºŠãæ©èœã決ããŠè¯ãç©ã§ã¯ãããŸããããé«ªã®æ¯ãæºããããããåã«ã¯åå䜿ãããšæããŸãã
The physics calculation frame rate is fixed at 100 fps (dt=0.01).
ç©çèšç®ãã¬ãŒã ã¬ãŒãã¯100fps(dt=0.01)åºå®ã§ãã
In the Spine editor, add @spring
to the end of the bone name. Apply physics to this bones and children bones.
Spineãšãã£ã¿ã§ãboneåã« @spring
ãèªå°Ÿã«ä»ãå ããŠãã ããããã®ããŒã³ãå«ãåã«å¯ŸããŠç©çèšç®ãé©çšããŸãã
In this image, boneL2
and boneR2
, two physics groups are created.
ç»åã§ã¯ boneL2
ãš boneR2
ãïŒã€ã®ç©çèšç®ã°ã«ãŒããäœãããŸãã
If you want to use the same settings for multiple groups, set an alias name.
è€æ°ã®ã°ã«ãŒãã«åãèšå®ã䜿çšãããå Žåã¯ããšã€ãªã¢ã¹åãèšå®ããŸãã
bone01@spring,{alias name}
sidehair_l1@spring,hair
sidehair_l2
sidehair_l3
sodehair_r1@spring,hair
sidehair_r2
sidehair_r3
These two groups use a setting with the hair
name.
ãã®ïŒã€ã®ã°ã«ãŒãã¯ãååã hair
ã®èšå®ã䜿çšããããã«ãªããŸãã
hair.mode=bone
hair.k=100
To set the end of the group, use @end
.
ã°ã«ãŒãã®çµç«¯ãæå®ããå Žå㯠@end
ã䜿çšããŸãã
boneL2@spring
boneL3
boneL4
boneL5@end
boneL Accessory01
boneL Accessory02
boneL Accessory03
boneSubL3@end
boneSubL4
boneSubL
In the case, Affects the boleL3-angle and boneL4-position from boneL2.
boneSub
branch is excluded.
ãã®å ŽåãboneL3ã®è§åºŠãboneL4ã®äœçœ®ãŸã§åœ±é¿ãäžããŸãã
æåããããŠãã boneSub
ã¯ã°ã«ãŒãããé€å€ãããŸãã
Only default settings are supported for physics bone setting.
Cannot disable rotation from parent.
ãŸãç©çèšç®ã察象ãšãªãããŒã³ã®èšå®ã¯ãçŸåšããã©ã«ãèšå®ã®ã¿ã®å¯Ÿå¿ãšãªããŸãã
芪ããã®å転ãç¡å¹åãããã¯åºæ¥ãŸããã
If the physics bone contains an animation, add the physics results to the animation.
ç©çèšç®ããŒã³ã«ã¢ãã¡ãŒã·ã§ã³ãå«ãŸããŠããå Žåã¯ãã¢ãã¡ãŒã·ã§ã³ã«ç©çèšç®ã®çµæãå ç®ããŸãã
Since physics calculations and animations do not interact, you will not get natural motion.
However, it is useful for parts where you want to add a little physical movement.
For example, ears.
ç©çèšç®ãšã¢ãã¡ãŒã·ã§ã³ã圱é¿ãåãããã§ã¯ãªãã®ã§ãèªç¶ãªçµæã¯åŸãããŸããã
ããç©çèšç®ãã¡ãã£ãšè¶³ãããããŒããªã©ã«ã¯å¹æçã§ããè³ãšããã
Physical settings are edited on the Animationrig editor.
Edit with setting field.
ç©çèšç®ã®èšå®ã¯Animationrigãšãã£ã¿äžã§è¡ããŸãã
ãªããžã§ã¯ãã® setting field ã§ç·šéããŸãã
At first there is nothing(use default setting).
Please push the Refresh setting text button.
The settings are written to text area.
æåã¯ãªã«ãç¡ãç¶æ
ïŒããã©ã«ãèšå®ãé©çšïŒãªã®ã§ Refresh setting text ãã¿ã³ãæŒããŠãã ããã
èšå®ãæžã蟌ãŸããŸãã
Use lowercase , Space is not allowed.
å°æåã§è¡šèšãã¹ããŒã¹ãªã©ã¯å
¥ããªãã§ãã ããã
Double click (or right click menu) on the setting text to open the configuration form.
Use it if you need advanced settings.
ããã¹ãã®åæãããã«ã¯ãªãã¯ïŒãŸãã¯å³ã¯ãªãã¯ã¡ãã¥ãŒïŒãããšèšå®ãã©ãŒã ãéããŸãã
è€éãªèšå®ãå¿
èŠãªå Žåã¯äœ¿ã£ãŠãã ããã
property | |
---|---|
basic | |
enable (def:true) | Used for disabling. äž»ã«ç¡å¹åããéã«äœ¿çšããŸãã example : aaa.enable=false |
mode (def:bone) | Spring mode. Choose from bone,strbone,point,strpoint. reference below. ããã®ã¢ãŒããèšå®ããŸãã詳ããã¯ä»¥äžåç §ã |
k (def:100) | Spring constant. Larger , more amplitude(swing). ãã宿°ãå€ã倧ããã»ã©æ¯å¹ ããŸãã |
damping (def:10) | Velocity damping value. é床æžè¡°å€ã |
mass (def:1.0) | Mass, weight. Larger , move slowly. 質éãéãã倧ããã»ã©ãã£ããåããŸãã |
control | |
alpha (def:1.0) | Physics blend ratio. ç©çèšç®ã®åæçã |
force (def:1.0) | Strength of the force. Zero : disable. Negative : invert. å ããåã®åŒ·ããèšå®ããŸããïŒã§ç¡å¹ããã€ãã¹ã§å転ã |
wiggle (def:0.0) | Give random fluctuate(wiggler). åã«ã©ã³ãã ãªæºãããäžããŸãã |
gravity | |
gravity (def:0.0) | Unsupported. Gravity power. I think ,not used it often. çŸåšæªå¯Ÿå¿ãéåãããã§ã¯ããŸã䜿ããªããšæããŸãã |
gravityvector (def:0,-1,0) | Unsupported. Gravity direction. çŸåšæªå¯Ÿå¿ãéåæ¹åã example : aaa.gravityvector=0,-1,0 |
limitter | |
limitvelocity (def:1000) | Limit the velocity. é床å¶éå€ã |
limitangle (def:-1.0,+1.0) | Limit the angle. Set the relative value from the natural angle. è§åºŠ(360=1.0)ãå¶éããŸããèªç¶è§åºŠããã®çžå¯Ÿå€ã§æå®ããŸãã example : aaa.limitangle=-0.12,0.12 |
limitmove (def:65535.0) | Limit the moving range. Set the distance from the natural position. The value set the ratio of spring length. ç§»åç¯å²ãå¶éããŸããèªç¶äœçœ®ããã®è·é¢ã§èšå®ãå€ã¯ããã®é·ãã®æ¯çã䜿ããŸãã example : aaa.limitmove=0.5 |
![]() ![]() |
There are four types of springs : bone,strbone,point,strpoint
.
Each mode has the characteristics of returning to original shape.
ããã«ã¯ bone,strbone,point,strpoint
ã®ïŒçš®é¡ããããŸãã
ã±ãŒã¹ã«ãã䜿ãåããŸãããã
ã©ããå
ã®åœ¢ç¶ã«æ»ãããšããæ§è³ªãæã¡ãŸãã
mode | stretch length | angle/rotation |
---|---|---|
bone | no | yes |
strbone | yes | yes |
point | no | no |
strpoint | yes | no |
The spring is a model that controls the position.
So, there is a limit to the bone structure in the bone,strbone
mode that controls the angle.
ããã¯äœçœ®ãã³ã³ãããŒã«ããã¢ãã«ã§ãã
ãã®ããè§åºŠãå¶åŸ¡ãã bone,strbone
ã¢ãŒãã§ã¯ããŒã³æ§é ã«å¶éããããŸãã
Basically, bone,strbone
should be constructed with straight structure where the bones do not branch.
åºæ¬çã« bone,strbone
ã§ã¯ããŒã³ãæåããããªã çŽç·æ§é ã§çµãã§ãã ããã
If the bone branches off, The bone positions must be the same.
ããããŒã³ãæåããããå ŽåãããŒã³ã®äœçœ®ãåãã«ããå¿
èŠããããŸãã
If the position is different, Does not display correctly.
ããäœçœ®ãé¢ããŠããå Žåã¯ãæ£ãã衚瀺ãããŸããã
When rotating, it seems that force does not apply well. In that case, it is recommended to disable rotation from the parent.
äœçœ®ã®ç§»åã«å¯ŸããŠã¯è¯ãåããããŸãããå転ã«é¢ããŠã¯ããŸãåãäŒæãã«ããããã§ãããã®å Žåã芪ããã®å転ãåãã®ããå§ãã§ãã
It cannot be set for physics bones.
It âs a good idea to add a bone in front.
ç©çèšç®ããŒã³ã«ã¯èšå®ã§ããªãã®ã§ãæåã«ããŒã³ã远å ããŠãããšããã§ãããã
This technique is very useful for hair.
é«ªã®æ¯ãªã©ã§ãšãŠã䜿ãããã¯ããã¯ã§ãã
Spine's empty-animation(SetEmptyAnimation) is a function that restores the default pose (setup).
However, be careful when using it because it behaves a bit specially.
Spineã® empty-animation(SetEmptyAnimation) ã¯ããã©ã«ãããŒãº(setup)ã«æ»ãæ©èœã§ãã
ããå°ãç¹æ®ãªåããããã®ã§ã䜿çšã«ã¯æ³šæãæã£ãŠãã ããã
There is no problem when erasing the animation.
Fade to default pose at trasition time.
ã¢ãã¡ãŒã·ã§ã³ãæ¶ãå Žåã¯åé¡ãããŸããã
é·ç§»æéã§ããã©ã«ãããŒãºã«ãã§ãŒãããŸãã
track is then initialized to null
.
ãã®åŸãtrack 㯠null
ã«åæåãããŸãã
Spine will not fade animation if track is null
.
This behavior may cause the animation to be skipped.
Spine㯠track ã null
ã®å Žåãã¢ãã¡ãŒã·ã§ã³ããã§ãŒãããŸããã
ãã®æåã¯ãã°ãã°ã¢ãã¡ãŒã·ã§ã³ãé£ã¶ãããªæåãçã¿åºããŸãã
Best practice is not to use empty
.
Make an animation with Spine that does nothing (no key) in advance.
Use this animation instead of empty
.
æåçã¯ãempty
ã䜿çšããªãããšã§ãã
ãããããäœãããªãïŒkeyãïŒã€ãååšããªãïŒã¢ãã¡ãŒã·ã§ã³ãSpineã§äœã£ãŠãããŸãããã
ãã®ã¢ãã¡ãŒã·ã§ã³ã empty
ã®ä»£ããã«äœ¿çšããŸãããã
The default treatment for skins depends on the spine-runtime version. In 3.7, restor the setup state skin.
But, In 3.8, selected nothing (not visible).
ã¹ãã³ã¯ããã©ã«ãã®æ±ããspine-runtimeã®ããŒãžã§ã³ã«ãã£ãŠç°ãªããŸãã
3.7ã§ã¯setupã®ç¶æ
ã埩å
ããŸããã3.8ã§ã¯äœãéžæãããŠããªãç¶æ
ã埩å
ããŸãïŒè¡šç€ºãããªãïŒã
There is DefaultSkin in the setting of the Spine object.
Select a skin to display in the default state.
Spineãªããžã§ã¯ãã®èšå®ã« DefaultSkin ããããŸãã
ããã©ã«ãç¶æ
ã§è¡šç€ºããã¹ãã³ãéžæããŠãã ããã
In the Spine editor, the loop starts at 0 frame, but can be changed it at runtime.
Set the start time and end time when animation changing.
The end time can be set beyond the original time.
Spineãšãã£ã¿ã§ã¯ã«ãŒãã¯0ã¹ã¿ãŒãã§ãããã©ã³ã¿ã€ã ã§ã¯å€æŽå¯èœã§ãã
ã¢ãã¡ãŒã·ã§ã³åãæ¿ãæã«éå§æéãšçµäºæéãèšå®ããŸãã
çµäºæéã¯æ¬æ¥ã®æéãè¶
ããŠèšå®ã§ããŸãã
With this feature, Cut out the overflowed key, Then adjust to the loop area...
This work becomes unnecessary. Yeah---!
ããã«ãããã¯ã¿åºãKeyãã¶ã€åãã«ããŠãã«ãŒãç¯å²ã«åãããŠæŽããããšããäœæ¥ãããå¿
èŠããªããªããŸãããããŒãŒãŒã
loopbegin : 2.0 (60frame)
loopend : 5.0 (150frame)
play loop
Like this.
ãããªé¢šã«ã
You can inherit the transformation(move,rotate,scale) of the parent.
芪ã®å€åœ¢ãç¶æ¿ããäºãåºæ¥ãŸãã
Set the parent object with Group(Parent) in the Object panel.
For Spine objects, you can set bones.
In that case, the bone transformation is also inherited.
ãªããžã§ã¯ãããã«ã® Group(Parent) ã§èŠªãªããžã§ã¯ããèšå®ããŠãã ãã
Spineãªããžã§ã¯ãã®å Žåã¯ã察象ããŒã³ãèšå®ããããšãåºæ¥ãŸãã
Shared property of all Objects.
å
šObjectã¿ã€ãã§äœ¿çšãããå
±éããããã£ã§ãã
property | |
---|---|
common | |
name | Object name. Allow duplicate names. |
alias name | Alias. Used for some physics target. ãšã€ãªã¢ã¹åãç©çèšç®å¯Ÿè±¡ãªã©ã§äœ¿çšããŸãã |
enable | Update & show object. |
visible | Show object. |
offset | Offset position. |
scale | Base scale. |
Group (parent object) | Inherit(link) the position, scale and etc from parent object. 芪objectã®äœçœ®ãªã©ãç¶æ¿ããŸãã |
Draw Priority | Design draw priority order. |
setting | |
setting | Setting text field. Used mainly for physics setting. èšå®çšããã¹ããäž»ã«ç©çèšç®èšå®ãªã©ã«äœ¿çšãããŸãã |
Null object.
Not displayed by default.
空ãªããžã§ã¯ãã
ããã©ã«ãç¶æ
ã§ã¯è¡šç€ºãããŸããã
ãŠãŒã¶ãæ¡åŒµããŠæå³ãæã€ãªããžã§ã¯ãã§ãã
You can display the temporary image.
ä»®ç»åã衚瀺ããããšãåºæ¥ãŸãã
This object controls the spine file.
spine ãã³ã³ãããŒã«ããããã®ãªããžã§ã¯ãã§ãã
Spine file-path is recorded with relative path.
Please be careful not to include personal information such as desktop pass.
spineãã¡ã€ã«ã¯çžå¯Ÿãã¹ã§èšé²ãããŸãã
ãã¹ã«å人æ
å ±ãå
¥ããªãããã«ã泚æãã ããã
Editor support status.
ãšãã£ã¿äžã§ã®è¡šç€ºå¯Ÿå¿ç¶æ³ã§ãã
function | |
---|---|
PreMultipliedAlpha | yes (*alpha 1.0 only) |
blend | yes |
tintcolor | yes |
clipping | yes |
property | |
---|---|
filename | spine exported file.Please use json format that is as compatible as possiblespineã®exportãã¡ã€ã«ãæå®ããŸããåºæ¥ãã ãäºææ§ã®é«ã json 圢åŒã䜿çšããŸãããã |
mix duration | default mix duration time. |
PreMultiplyAlpha | Change the blending method to PreMultiplyAlpha. ãã¬ã³ããPreMultiplyAlphaæ¹åŒã«åãæ¿ããŸãã |
Default skin (def:default) | Set starting skin name. éå§æã®ã¹ãã³åãæå®ããŸãã |
Move viewpoint.
èŠç¹ç§»åãè¡ããŸãã
Strictly, this is not a camera. Give the root(all objects) to inverted deformation.
æ£ç¢ºã«ã¯ã«ã¡ã©ã§ã¯ãããŸãããã«ãŒãïŒå
šãŠã®ãªããžã§ã¯ãã«ïŒã«éå€åœ¢ãå ãããã®ã§ãã
The difference from the transform layer is that No physics force occur with the movement.
transform layer ãšç°ãªãç¹ã¯ãç§»åã«äŒŽãç©çèšç®ãçºçããŸããã
Control move(offset), zoom, and rotate with Transform layer.
The field of view moves in the reverse direction.
Transform layer ã§ç§»å(offset)ã䌞瞮ãå転ãå¶åŸ¡ããŸãã
ã«ã¡ã©ãªã®ã§èŠçã¯éæ¹åã«åããŸãã
The color of the object is affected.
ãªããžã§ã¯ãã®è²ã«åœ±é¿ãäžããŸãã
Perform camera transformation on objects in the priority area.
If the value is the same, it will affect everything.
ãã®åªå
床éã«ååšãããªããžã§ã¯ãã«å¯ŸããŠãã«ã¡ã©å€æãè¡ããŸãã
åå€ã®å Žåã¯å
šãŠã«åœ±é¿ãåãŒããŸãã
Rotate offset is the camera rotation center position setting.
The default setting is 0,0,0
, which rotates at the origin.
Set it to 0,0,-1000
to rotate like the viewpoint.
However, 3D editing is not assumed and should only be used for tilting.
Rotate offset ã¯ã«ã¡ã©ã®å転äžå¿äœçœ®ã®èšå®ã§ãã
åæèšå®ã¯ 0,0,0
ã§åç¹ã§å転ããŸãã
èŠç¹ã®ããã«å転ãããå Žå㯠0,0,-1000
ãšèšå®ããŠãã ããã
ãã ãã3Dç·šéã¯æ³å®ãããŠããŸããã®ã§ãåŸããçšåºŠã®äœ¿çšã«çããŠãã ããã
Layer has normal-key and PreviousKey.
PreviousKey Holds the previous (changed)animation values.
This key is used to control transition of animation switching.
Layerã«ã¯éåžžã® Key ãš PreviousKey ãååšããŸãã
PreviousKeyã¯å€æŽåã®ã¢ãã¡ãŒã·ã§ã³ã®ç¶æ
ãä¿æããŸãã
ãã®Keyã¯ã¢ãã¡ãŒã·ã§ã³åãæ¿ãã®é·ç§»ãå¶åŸ¡ããæã«äœ¿çšããŸãã
PreviousKey is displayed in blue colorãYou can not edit the value or time.
Only easing can be set.
PreviousKey ã¯éè²ã§è¡šç€ºãããŸããå€ãæéã¯ç·šéã§ããŸãããã€ãŒãžã³ã°ã®ã¿èšå®ããããšãåºæ¥ãŸãã
However, there are AutoFade for animation switching control.
It is a function to automatically crossfade to feel good.
leave it to you.
ããããã¢ãã¡ãŒã·ã§ã³ã®åãæ¿ãå¶åŸ¡ã«ã¯ AutoFade ããããŸãã
è¯ãæãã«èªåã§ã¯ãã¹ãã§ãŒãããæ©èœã§ãã
ã©ã¡ãã䜿ããã¯ãä»»ãããŸãã
Shared property of all layers.
å
šLayerã¿ã€ãã§äœ¿çšãããå
±éããããã£ã§ãã
Set the blend-weight when mixing animation.
The blend calculation is below.
ã¢ãã¡ãŒã·ã§ã³ãéããå Žåã®å€ã®æ¯éãèšå®ããŸãã
èšç®ã¯ä»¥äžã«ãªããŸãã
track0 ... previous track
track1 ... current track
out = (track0.AlphaX * previous) + (track1.AlphaX * current)
Default is 1.0. Add blend.
ããã©ã«ã㯠1.0 ã§å ç®ã§ãã
previous : 1.0
current : 1.0
out = track0.AlphaX * 1.0 + track1.AlphaX * 1.0
= track0.AlphaX + track1.AlphaX
In the case of replace.
äžæžãããå Žåã
previous : 0.0
current : 1.0
out = track0.AlphaX * 0.0 + track1.AlphaX * 1.0
= track1.AlphaX
Control move, scale, and rotate.
ç§»åã䌞瞮ãå転ãå¶åŸ¡ããŸãã
Select the value transaction.
å€ã®é·ç§»ãéžæããŸãã
Performs curve interpolation using the values ââof the 4 keys.
ååŸ4Keyã®å€ã䜿ã£ãŠæ²ç·è£éãè¡ããŸãã
Select X,Y,Z rotation order.
pass
will use the previous settings when mixing animations.
å転ã®é åºãæå®ããŸãã
è€æ°ã®ã¢ãã¡ãŒã·ã§ã³ãéãåãããå Žåãpass
ã¯åã®å€ãåŒãç¶ãã䜿çšããŸãã
If you set multi-layers, values ââwill be composite from top to bottom.
ããè€æ°ã®Layerãèšçœ®ããå Žåãå€ã¯äžããäžãžåæïŒè¡ååæïŒãããŠãããŸãã
Composite animations with using 4(or 1,2) tracks on spine.
spine ã®4(ãŸãã¯1,2)ãã©ãã¯ã䜿çšããŠãã¢ãã¡ãŒã·ã§ã³ãåæããŸãã
If 2 tracks, animation is inverted when BlendAlpha is negative value.
2ãã©ãã¯ã®å Žåã¯BlendAlphaããã€ãã¹å€ã§ã¢ãã¡ãŒã·ã§ã³ãå転ããŸãã
Spine-animations are assigned in 4 directions (up, down, left, right) by name.
Spineã¢ãã¡ãŒã·ã§ã³ã¯ååèŠåã«ãã£ãŠ4æ¹åïŒäžäžå·Šå³ïŒã«å²ãåœãŠãããŸãã
name format | |
---|---|
name name@up |
up (+Y) |
name@right | right (+X) |
name@down | down (-Y) |
name@left | left (-X) |
If not exists animation, empty
will be set.
空ã¢ãã¡ãŒã·ã§ã³ã«ã¯ empty
ãèšå®ãããŸãã
Set Spine-animation name.
Spineã¢ãã¡ãŒã·ã§ã³åæå®ããŸãã@以éã¯äžèŠã§ãã
name | |
---|---|
none | pass set animtion. ãã¹ããŸãã |
empty | set empty animation. emptyã¢ãã¡ãŒã·ã§ã³ãèšå®ããŸãã |
Execution allow from animation name.
ã¢ãã¡ãŒã·ã§ã³åãæ¯èŒãå®è¡ãèš±å¯ãçŠæ¢ããŸãã
property | |
---|---|
allow diffrent | Only if dirrent name. ååãç°ãªãå Žåã®ã¿ |
allow always | Always execute. åžžã«èš±å¯ã |
property | |
---|---|
setAnimation | Change now! ä»ããã¢ãã¡ãŒã·ã§ã³ã倿Žããã |
addAnimation | Change at end point. çµç«¯ã§ã¢ãã¡ãŒã·ã§ã³ãåãæ¿ããã |
property | |
---|---|
play one | One shot. |
play loop | Loop. |
Sets the animation blending method between tracks.
spineã®ãã©ãã¯éã®åææ¹æ³ãèšå®ããŸãã
property | |
---|---|
mixReplace | Replace mode. 眮ãæãã¢ãŒãã |
mixAdd | Add mode. Combine multi animations. å ç®ã¢ãŒããè€æ°ã®ã¢ãã¡ãŒã·ã§ã³ãåæããŸãã |
Over write the animation mix blend duration-time.
ã¢ãã¡ãŒã·ã§ã³ç¹ç¶æéãäžæžãããŸãã
property | |
---|---|
-1.0 | Use default mix duration. spineã«èšå®ã«å§ããŸãã |
0.0 | disable mix animation. ã¢ãã¡ãŒã·ã§ã³ããã¯ã¹ãè¡ããŸããã |
Can change animation loop area.
Please refer to CustomLoop.
ã¢ãã¡ãŒã·ã§ã³ã®ã«ãŒãç¯å²ã倿Žã§ããŸãã
詳ããã¯CustomLoopãã芧ãã ããã
Composite time-stretched,remap animations with using 4(or 1) tracks on spine.
åçæéãã³ã³ãããŒã«ïŒã¿ã€ã ã¹ãã¬ããããªãããïŒãããã¢ãã¡ãŒã·ã§ã³ãåæããŸãã
When used 4 animation, Composed with alpha 1.0.
The 0 frame should be in the same pose.
ã¢ãã¡ãŒã·ã§ã³ãïŒã€äœ¿çšããå Žåã¯ãalpha1.0ã§åæãããŸãã
0ãã¬ãŒã ã¯åãããŒãºã§ããå¿
èŠããããŸãã
Please refer to animations blend layer.
animations blend layerãåç
§ãã ããã
Set playback-time.
if enabled loop in animation properties, Will loop-play over terminate(animation end) time.
åæå€ã®ä»£ããã«åçæéãèšå®ããŸãã
ã¢ãã¡ãŒã·ã§ã³ã« loop ãèšå®ãããŠããå Žåã¯ãçµç«¯æé以äžã§ã«ãŒãããããã«ãªããŸãã
Execute the event on the application side.
çµã¿èŸŒã¿ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠã€ãã³ãïŒã³ãŒã«ããã¯ïŒãå®è¡ããŸãã
event name. In the case of none
, it passes.
ã€ãã³ãåãèªç±ãªååãèšå®åºæ¥ãŸãã
none
ã®å Žåã¯ç¡èŠãããŸãã
Execution allow from event-ID.
IDãæ¯èŒãå®è¡ãèš±å¯ãçŠæ¢ããŸãã
property | |
---|---|
allow diffrent | Only if dirrent name. ååãç°ãªãå Žåã®ã¿ |
allow always | Always execute. åžžã«èš±å¯ã |
Send value to application side.
Line return code crlf(0x0D,0x0A)
is used.
ã¢ããªã±ãŒã·ã§ã³ã«å€ãæž¡ããŸãã
æ¹è¡ã¯ crlf(0x0D,0x0A)
ã䜿çšããŸãã
property | |
---|---|
priority | Display(draw) order. Relative. |
Set the display order. The higher the value, it will be displayed on the front.
衚瀺é åºãæäœããŸããå€ã倧ããã»ã©æåã«è¡šç€ºãããŸãã
Toggles enable / visible of the object.
ãªããžã§ã¯ãã® enable,visible ãåãæ¿ããŸãã
property | |
---|---|
enable | Object enable. |
visible | Object visible. |
If enable is false, object update will not be called. But The timeline advances.
enableãfalseã«ãããšãobjectã®updateãåŒã°ãªããªããŸããããã¿ã€ã ã©ã€ã³ã¯é²ã¿ãŸãã
Give power to physics.
ç©çèšç®ã«åãå ããŸãã
Set the target physical calculation group.
察象ãšãªãç©çèšç®ã°ã«ãŒããæå®ããŸãã
all
can target everything.
all
ã§å
šãŠã察象ã«ããããšãã§ããŸãã
Set the direction and strength of the force.
åã®åãã匷ããæå®ããŸãã
Give wiggle to force.
åã«ããããäžããŸãã
property | |
---|---|
ratio | Ratio of wiggle to give to DirectionVector. DirectionVectorã«äžããwiggleã®æ¯çã |
cycle | Rundom cycle. per 1sec. 1ç§éã®ä¹±æ°ãµã€ã¯ã«ã |
Let's actually make sample.
Create a SpineBoy action.
ããã§ã¯å®éã«äœã£ãŠã¿ãŸãããã
Spineã«ä»å±ãããµã³ãã«ãSpineBoyã䜿ã£ãŠã¢ã¯ã·ã§ã³ãããŠã¿ãŸãããã
The data is in editor/sample_data/boy/
.
ããŒã¿ã¯ editor/sample_data/boy/
ã«ãããŸãã
Spine data license below.
spineãã¡ã€ã«ã®äœ¿çšã©ã€ã»ã³ã¹ãäžå¿èŒããŠãããŸããã
Copyright (c) 2018, Esoteric Software
The images in this project may be redistributed as long as they are accompanied
by this license file. The images may not be used for commercial use of any
kind.
The project file is released into the public domain. It may be used as the basis
for derivative work.
To load Spine file with this tool, you must first output in json, atlas format.
Start Spine application and load boy.spine
.
Select export (ctrl + E) from the menu.
ãã®ããŒã«ã§Spineãèªã¿èŸŒãã«ã¯ããŸã json,atlas 圢åŒã§åºåããå¿
èŠããããŸãã
Spineãèµ·åã㊠boy.spine
ãèªã¿èŸŒã¿ãŸããããã¡ãã¥ãŒãã export (ctrl + E) ãéžæããŸãã
Can be load Binary format, but json is recommended for compatibility.
Enable TextureAtlas and configure Pack Settings.
Binaryãèªã¿èŸŒããŸããäºææ§çã§ json ããå§ãããŸãã
TextureAtlas ãæå¹ã«ããŠãPackSettings ã®èšå®ãè¡ããŸãããã
There are about two important points.
Texture size setting choose Power of two
.
The texture format is recommended to be bleed
.
éèŠãªç®æã¯ïŒã€ãããã§ãã
ãã¯ã¹ãã£ãµã€ãºã¯Unityãªã©ãèæ
®ã㊠Power of tow
ãéžãã§ãã ããã
ãã¯ã¹ãã£åœ¢åŒã¯ bleed
ããå§ãããŸãã
Create a working directory and output it there.
äœæ¥ãã£ã¬ã¯ããªãäœã£ãŠãããã«åºåããŠãã ããã
spineboy-pro.atlas.txt
spineboy-pro.json
spineboy-pro.png
Start Animationrig. If the Spine version is 3.8, Please start Animationrig38.exe.
Animationrigãèµ·åããŸããSpineã®ããŒãžã§ã³ã3.8ç³»ãªããAnimationrig38.exe ãèµ·åããŠãã ããã
First, save file in the working directory.
Since relative path is used for data, Copy the use files into working directory as much as possible.
ãŸãæåã«ãå
ã»ã©äœã£ãäœæ¥ãã£ã¬ã¯ãã«ä¿åããŠãã ãããããŒã¿ã¯çžå¯Ÿãã¹ã䜿ãããã®ã§ã䜿çšãããã¡ã€ã«ã¯ã§ããéãäœæ¥ãã£ã¬ã¯ããªå
ã«ã³ããŒããŠäœ¿ããŸãããã
Two more animrig files have been added.
animrigãã¡ã€ã«ã2ã€å¢ããŸããã
spineboy-pro.atlas.txt
spineboy-pro.json
spineboy-pro.png
boy.animrig
boy.animrig.preset.txt
Load the Spine file.
Use SpineObject to display it.
One SpineObject is prepared in the initial state of the project.
Spineãã¡ã€ã«ãèªã¿èŸŒã¿ãŸãã
衚瀺ããã«ã¯ SpineObject ã䜿çšããŸãã
èµ·åæããããžã§ã¯ãã®åæç¶æ
ã§ã¯ãSpineObjectãïŒã€çšæãããŠããŸãã
In the right side panel, select Object.
å³ã®ãµã€ãããã«ã§ãObject ãéžæããŸãã
Select the Spine file (spineboy-pro.json) from browse button.
browse ãã¿ã³ããSpineãã¡ã€ã«(spineboy-pro.json)ãéžãã§ãã ããã
Is it displayed?
衚瀺ãããŸãããïŒ
If you modified the Spine file, select rebuild from the object menu.
It will be reloaded.
ããSpineãã¡ã€ã«ãä¿®æ£ããå Žåã¯ããªããžã§ã¯ãã¡ãã¥ãŒãã rebuild ãéžæããŠãã ãããåèªèŸŒãããŸãã
Let's play the animation.
Select the second layer (anim1 unnamed)
from the timeline.
There is a blue key and a white key. The blue key will be explained later.
Please choose a white key.
ã¢ãã¡ãŒã·ã§ã³ãåçãããŠã¿ãŸãããã
ã¿ã€ã ã©ã€ã³ããïŒçªç®ã® layer (1:anim1 unnamed)
ãéžã³ãŸãã
éãkeyãšçœãkeyããããŸããéãkeyã¯åŸã»ã©èª¬æããŸãã
çœãkeyãéžãã§ãã ããã
Next, do the animation settings.
the key properties are displayed in the side panel.
set the animation name and loop playback.
次ã«ãã¢ãã¡ãŒã·ã§ã³ã®èšå®ãè¡ããŸãã
ãµã€ãããã«ã«keyã®ããããã£ã衚瀺ãããŠããã®ã§ãã¢ãã¡ãŒã·ã§ã³åãã«ãŒãåçãèšå®ããŸãã
animation name : run
allow always
play loop
set this.
allow always
always switches the animation.
If you want to skip the same animation, set allow diffrent
.
ãšèšå®ããŸãããã
allow always
ã¯åžžã«ã¢ãã¡ãŒã·ã§ã³ãåãæ¿ããŸãã
ããåãã¢ãã¡ãŒã·ã§ã³ã®å Žåã¹ãããããã«ã¯ allow diffrent
ãèšå®ããŸãã
Next, set the animation blend ratio.
If there is a single animation, only the top direction is used.
The middle(center) is a blend rate of 0%.
次ã«ã¢ãã¡ãŒã·ã§ã³ã®ãã¬ã³ãçãèšå®ããŸãã
ã¢ãã¡ãŒã·ã§ã³ãïŒã€ã®å Žåã¯ãäžæ¹åã®ã¿äœ¿çšããŸãã
çãäžããã¬ã³ãç0%ã§ãã
Let's play animation (shif + Space).
ã§ã¯ãåç (shif + Space) ããŠã¿ãŸãããã
how is it? Did he run?
ã©ãã§ããïŒåœŒã¯èµ°ããŸãããïŒ
Let's move the position according to the animation.
ã¢ãã¡ãŒã·ã§ã³ã«åãããŠäœçœ®ãç§»åãããŸãããã
The first layer (0: transform unnamed)
moves, transforms and rotates.
Click at 1 second on the timeline, to add a key (ctrl + I).
ïŒçªç®ã® layer (0:transform unnamed)
ãç§»åãå€åœ¢ãå転ãè¡ããŸãã
ã¿ã€ã ã©ã€ã³ã®ïŒç§åœãããã¯ãªãã¯ããŠãkeyã®è¿œå (ctrl + I) ãè¡ããŸãã
Set X coordinate: 500
in the Key property.
easing can add weight to the movement.
Keyã®ããããã£ã§ X座æš:500
ã«èšå®ããŸãããã
easing ã§åãã«éã¿ãã€ããããšãã§ããŸããã
Let's play (ctrl + Space). Did he go forward?
åç (ctrl + Space) ããŠã¿ãŸãããã圌ã¯åã«é²ã¿ãŸãããïŒ
Let's transition the animation.
ã¢ãã¡ãŒã·ã§ã³ãé·ç§»ãããŠã¿ãŸãããã
Select Second layer (1:anim1 unnamed)
.
Click at 1 second on the timeline, to add a key (ctrl + I).
2çªç®ã® layer (1:anim1 unnamed)
ãéžæã
1ç§ããããã¯ãªãã¯ããŠãkeyã®è¿œå (ctrl+I)ãè¡ããŸãã
Set the Key properties as follows. Loop is unnecessary because it is a jump.
Keyã®ããããã£ã¯ä»¥äžã®ããã«èšå®ããŸãããžã£ã³ããªã®ã§ã«ãŒãã¯äžèŠã§ããã
animation name : jump
allow always
play once
Did he jump?
圌ã¯ãžã£ã³ãããŸãããïŒ
The main feature of Spine! A multi-animation blend function.
Spineã®ç®çååïŒ è€æ°ã¢ãã¡ãŒã·ã§ã³ã®åæ æ©èœã§ãã
Add the set up a gun animation to this.
ãã®ã¢ãã¡ãŒã·ã§ã³ã«éãæ§ããã¢ãã¡ãŒã·ã§ã³ãè¶³ããŸãã
First, add a layer to play the animation (ctrl + Shift + I).
ãŸãã¯ãã¢ãã¡ãŒã·ã§ã³ãåçããã¬ã€ã€ã远å (ctrl + Shift + I) ããŸãã
Choose 1 Animation blend layer
.
1 Animation blend layer
ãéžãã§ãã ããã
Will be added as follows.
Adjust the position with the up / down buttons below.
Let's name it as the number of layers has increased.
以äžã®ããã«è¿œå ãããŸãã
äœçœ®ã¯äžã®up/downãã¿ã³ã§èª¿æŽããŠãã ããã
layerãå¢ããŠããã®ã§ååãä»ããŠãããŸãããã
Set the key property.
keyã®ããããã£ãèšå®ããŸãã
animation name : aim
allow always
play once
Animation is no change.
I forgot to set the blend rate. Let's set it 100%.
å€åããããŸãããããã¬ã³ãçã®èšå®ãå¿ããŠããŸããã
100%ã«ããŸãããã
Did he aim the gun at the sight?
圌ã¯éãç
§æºã«åãããŸãããïŒ
Next, let's move the aim.
次ã«ãç
§æºãåãããŠã¿ãŸãããã
Cannot move the aiming bone directly.
The aim is up, the aim is down, Combine the two animations to move the aim.
çŽæ¥ç
§æºããŒã³ãåããããšã¯åºæ¥ãŸããã
ç
§æºãäžãç
§æºãäžãïŒã€ã®ã¢ãã¡ãŒã·ã§ã³ãåæããŠç§»åãããŸãã
Add a layer (ctrl + Shift + I).
ã¬ã€ã€ã远å (ctrl + Shift + I) ããŸãã
This time, you need 4 direction animation blend, so select 4 Animations blend layer
.
ä»åã¯ïŒæ¹åã®ã¢ãã¡ãŒã·ã§ã³ãã¬ã³ããå¿
èŠãªã®ã§ 4 Animations blend layer
ãéžæããŸãã
Set the key property.
keyã®ããããã£ãèšå®ããŸãã
animation name : target
allow always
play loop
Play once (Shift + Space) to reflect the animation.
Please try to blend ratio.
äžåºŠåç(Shift+Space)ãããŠã¢ãã¡ãŒã·ã§ã³ãåæ ãããŸãã
ãã¬ã³ãçãåŒã£ãŠã¿ãŠãã ããã
Did his aim move up and down?
ç
§æºãäžäžã«åããŸãããïŒ
Two animations were set up and down even though only one animation name was set.
Why did this happen?
ã¢ãã¡ãŒã·ã§ã³åã1ã€ããèšå®ããŠãªãã®ã«äžäžïŒã€ã®ã¢ãã¡ãŒã·ã§ã³ãèšå®ãããŸããã
ã©ãããããšã§ããããïŒ
Looking at the animation list in Spine, @down, @up
behind the name.
You can see that it is determined by a special name.
Spineã§ã¢ãã¡ãŒã·ã§ã³äžèЧãèŠããšã @down, @up
ãååã®åŸãã«ã€ããŠããŸãã
ç¹æ®ãªååã§æ±ºããããŠããŸãã
The above is the basic. Congratulations!
以äžãåºæ¬ã§ãããç²ãæ§ã
This is how to build a basic animation in SpineAnimationrig.
SpineAnimationrigã«ãããã¢ãã¡ãŒã·ã§ã³ã®ãäœæ³ã§ãã
SpineAnimation rig can also combine animation.
So when creating multiple animations,
Created separately base-pose and extended-pose,
Combine at runtime.
By doing this, you can create data that have the resistance to change.
SpineAnimationrigã§ãã¢ãã¡ãŒã·ã§ã³ãåæããããšãå¯èœã§ãã
ãªã®ã§ãè€æ°ã®ã¢ãã¡ãŒã·ã§ã³ãäœããšãã¯ãåºæ¬ããŒãºãæ¡åŒµããŒãºãšåããŠäœæãå®è¡æã«åãããŸãã
ããããããšã§ã倿Žã«åŒ·ãããŒã¿ãäœãããšãåºæ¥ãŸãã
base
walk
run
jump
As a sample, Use Spine's official sample "owl".
The data is in editor/sample_data/owl/
.
ãµã³ãã«ãšããŠãSpineå
¬åŒã®ownïŒãã¯ããŠïŒããã䜿ããŸãã
ããŒã¿ã¯ editor/sample_data/owl/
ã«ãããŸãã
Create a working directory and export it.
äœæ¥ãã£ã¬ã¯ããªãçšæããŠãSpineã§ExportããŠãã ããã
Start SpineAnimationrig, First save to working directory, Next load owl with SpineObject.
SpineAnimationrigãèµ·åããŠããŸãäœæ¥ãã£ã¬ã¯ããªã«ä¿åãSpineObjectã§owlãèªã¿èŸŒã¿ãŸãããã
sample.animrig
sample.animrig.preset.txt
owl-pro.atlas.txt
owl-pro.json
owl-pro.png
so cute!
ããããããã
The animation of an owl is shown below.
owlïŒãã¯ããŠïŒã®ã¢ãã¡ãŒã·ã§ã³ã¯ãã®ããã«ãªã£ãŠããŸãã
It consists of three animations: blink, idle and dir (face direction).
blinkïŒç¬ãïŒãidleïŒåŒåžïŒãdirïŒé¡ã®åãïŒã®ïŒã€ã§æ§æãããŸãã
Let's combine three animations by adding layers.
ã¬ã€ã€ã远å ããŠïŒã€ã®ã¢ãã¡ãŒã·ã§ã³ãåæããŸãããã
layer[0] : 1 animation blend layer
key[0]
animation name : idle
allow always
setAnimation
play loop
mix replace
alphaX : 0%
alphaY : 100%
layer[1] : 1 animation blend layer
key[0]
animation name : blink
allow always
setAnimation
play loop
mix replace
alphaX : 0%
alphaY : 100%
layer[2] : 4 animations blend layer
key[0]
animation name : dir
allow always
setAnimation
play loop
mix add
alphaX : 0%
alphaY : 0%
The base-pose is complete. Let's play and check.
åºæ¬ããŒãºã®å®æã§ããåçããŠç¢ºèªããŸãããã
Next, create an extended-pose based on the base-pose.
次ã«åºæ¬ããŒãºãå
ã«ãããæ¡åŒµããŒãºãäœããŸãã
Add and name an animation.
ã¢ãã¡ãŒã·ã§ã³ã远å ãååãä»ããŸãããã
Select the added animation and set Preview background animation.
Play the set animation in the background.
Set base
.
远å ããã¢ãã¡ãŒã·ã§ã³ãéžæããŠãPreview background animation ãèšå®ããŸãã
ããã¯ãèšå®ãããã¢ãã¡ãŒã·ã§ã³ãèåŸã§åçããŸãã
base
ãèšå®ããŸãã
This will combine the two animations on the edit.
play it, the owl moves even though it is an empty animation.
ããã§ïŒã€ã®ã¢ãã¡ãŒã·ã§ã³ãç·šéäžã§åæãããŸãã
åçãããšã空ã®ã¢ãã¡ãŒã·ã§ã³ãªã®ã«ãã¯ããŠãåããŸãã
Let's edit animation.
Set the face direction (dir).
ã§ã¯ã¢ãã¡ãŒã·ã§ã³ãã€ããŠãããŸãããã
é¡ã®åã(dir)ãèšå®ããŠãããŸãã
The animation has already been set in the base-pose.
Add a key to the third layer (3: anim4 direction)
.
æ¢ã«åºæ¬ããŒãºã§ã¢ãã¡ãŒã·ã§ã³ã¯èšå®æžã§ãã
ïŒçªç®ã® layer(3:anim4 direction)
ã«keyã远å ããŸãã
Move the blend value of the key.
keyã®ãã¬ã³ãå€ãããããåãããŸãã
how is it? Did it move?
ã©ãã§ãïŒåããŸãããïŒ
Let's output the owl to sequential number image.
å
ã»ã©äœã£ãowlïŒãã¯ããŠïŒã é£çªç»å ã«åºåããŠã¿ãŸãããã
To output, switch to Animation test mode (F5).
åºåããã«ã¯ Animation test mode(F5) ã«åãæ¿ããŸãã
In this mode, you can check the animation combination.
ãã®ã¢ãŒãã¯äœã£ãã¢ãã¡ãŒã·ã§ã³ãçµã¿åãããŠãåäœã確èªããã¢ãŒãã§ãã
Let's select Export images (shift + ctrl + alt + E) from the menu.
ã§ã¯ã¡ãã¥ãŒãã Export images (shift + ctrl + alt + E) ãéžãã§ã¿ãŸãããã
Error!!!
You need to set the canvas size.
åºåããã«ã¯ãã£ã³ãã¹ãµã€ãºãèšå®ããå¿
èŠããããŸãã
Select Global from the side panel.
ãµã€ãããã«ãã Global ãéžæã
Pink line is canvas size. Surround the owl.
ãã³ã¯ã®ç·ããã£ã³ãã¹ãµã€ãºããã¯ããŠãå²ããŸãã
Let's select Export images again. Error!!!
ããäžåºŠã¡ãã¥ãŒãã Export images (shift + ctrl + alt + E) ãéžãã§ã¿ãŸããããError!!!
At least one animation must be set.
Set the animation in the right panel.
1ã€ä»¥äžã¢ãã¡ãŒã·ã§ã³ãèšå®ããå¿
èŠããããŸãã
å³åŽã®ããã«ã§ã¢ãã¡ãŒã·ã§ã³ãã»ããããŸãããã
The order is very important.
Make the extended-pose overlap the base-pose.
Let's play it and see if it animates correctly.
é åºã¯éèŠã§ãã
åºæ¬ããŒãºã«æ¡åŒµããŒãºãéããããã«ããŸãããã
åçãããŠæ£ããã¢ãã¡ãŒã·ã§ã³ããã確ãããŸãããã
Let's select Export images again.
ããäžåºŠã¡ãã¥ãŒãã Export images ãéžãã§ã¿ãŸãããã
Do the output settings.
åºåèšå®ãè¡ããŸãã
Set the background, frame rate, and duration (total time).
In this case, 150 images are output.
èæ¯ããã¬ãŒã ã¬ãŒããé·ãïŒæéïŒãèšå®ããŸãã
ãã®å Žåã30*5ã§150æã®ç»åãåºåããŸãã
Preset rendering
is not use, disable it.
Preset rendering
ã¯äœ¿ããªãã®ã§ç¡å¹ã«èšå®ããŠãã ããã
The output format is PNG : RGB
. Output as a PNG file.
If attached opacity(alpha), you can select bleed
or PreMultipliedAlpha(PMA)
.
This time is unnecessary.
åºå圢åŒã¯ PNG : RGB
ãPNGãã¡ã€ã«ã§åºåããŸãã
äžéæåºŠ(alpha)ãä»å ããå Žåã¯ãbleed,PreMultipliedAlpha(PMA)
ããéžæã§ããŸãã
ä»åã¯äžèŠã§ãã
If you install FFmpeg, you can output to mp4 etc.
FFmpegãã€ã³ã¹ããŒã«ããã° mp4 ãªã©ã«ãåºåãå¯èœã§ãã
The file name includes special symbols for sequential numbers.
{frame}
is replaced with the frame number.
ãã¡ã€ã«åã«ã¯é£çªã®ããã®ç¹æ®èšå·ãå«ãŸããŠããŸãã
{frame}
ã¯ãã¬ãŒã çªå·ã«çœ®ãæãããŸãã
setting : images{frame}
output : images0001 , images0002 ...
Set the output directory with a relative path from animrig file.
åºåå
ã¯ãã®ãã¡ã€ã«(*.animrig)ããã®çžå¯Ÿãã¹ã§æå®ããŸãã
setting : output\
animrig file : c:\hoge\sample01\sample.animrig
output : c:\hoge\sample01\output\
Press the export button to get started.
export ãã¿ã³ãæŒããŠéå§ããŸãããã
Was it output?
åºåãããŸãããïŒ
Let's use physics simulation.
ç©çèšç®ã䜿ã£ãŠã¿ãŸãããã
Physics simulate real motion, but they also help make animations.
You can easily make the swing motion that is difficult to do manually.
ç©çèšç®ã¯ãªã¢ã«ãã·ãã¥ã¬ãŒããããã®ã§ãããã¢ãã¡ãŒã·ã§ã³ã®äœæãæå©ããããã®ã§ããããŸãã
æä»ãã§ã¯é£ããæºããåããç°¡åã«äœããŸãã
Please also watch this video.
åç»ãã䜵ããŠã芧ãã ããã
As a sample, Use Spine's official sample "raptor".
The data is in editor/sample_data/raptor/
.
Let's replace the tail with physics motion.
ãµã³ãã«ãšããŠãSpineå
¬åŒã® raptor ããã䜿ããŸãã
ããŒã¿ã¯ editor/sample_data/raptor/
ã«ãããŸãã
尻尟ã®éšåãç©çèšç®ã«çœ®ãæããŠã¿ãŸãããã
Load it with Spine and check the animation.
Spineã§èªã¿èŸŒãã§ã¢ãã¡ãŒã·ã§ã³ã確èªããŸãã
In this file, the animation of the tail part has been deleted.
ãã®ãã¡ã€ã«ã¯å°»å°Ÿã®éšåã®ã¢ãã¡ãŒã·ã§ã³ãåé€ãããŠããŸãã
Also, the tail bone name has been changed to tail2@spring
.
Add @spring
to the end of the name to enable physics.
In this case, physics is applied from tail2
to tail10
.
ãŸãã尻尟ã®ããŒã³ã®ååã tail2@spring
ã«å€æŽãããŠããŸãã
@spring
ãååã®åŸãã«è¿œå ãããšç©çèšç®ãæå¹ã«ãªããŸãã
ãã®ã±ãŒã¹ã§ã¯ tail2
ãã tail10
ãŸã§ç©çèšç®ãé©çšãããŸãã
Let's load it with SpineAnimationrig.
ã§ã¯ãSpineAnimationrigã§èªã¿èŸŒãã§ã¿ãŸãããã
The physics bone part is displayed in pink.
ç©çèšç®ã®éšåããã³ã¯è²ã§è¡šç€ºãããŸãã
Let's play the walk
animation.
ããŒã远å ããŠãwalk
ã¢ãã¡ãŒã·ã§ã³ãåçããŠã¿ãŸãããã
Oops! It looks like a snake and is creepy...
ããïŒæ°æã¡æªãïŒããã¿ããã§ããã
Then, set the physics settings. Adjust settings by writing text.
ã§ã¯ãç©çèšç®ã®èšå®ãè¡ããŸããèšå®ã¯ããã¹ããæžããŠèª¿æŽããŸãã
Select Object in the right side panel , and open settings.
å³ã®ãµã€ãããã«ã® Object ãéžãã§ãSettings ãéããŠãã ããã
Press the Refresh setting text button below to add the current settings.
äžã® Refresh setting text ãã¿ã³ãæŒããšçŸåšã®èšå®ã远å ãããŸãã
tail2.mode=bone
tail2.k=100.00
tail2.damping=10.00
tail2.mass=1.00
tail2.alpha=1.0
Settings format is {bone}. {property}
.
These are the default setting.
This values are used if settings text is nothing.
{bone}.{property}
ãšããæžåŒã«ãªã£ãŠããŸãã
äžèšãããã©ã«ãèšå®ã§ããããªã«ãæžãããŠããªãå Žåã¯ãã®å€ã䜿çšãããŸãã
physics page for details. see later.
詳ãã㯠physics ã§èª¬æããŠããŸãããåŸã§èŠãŠãã ããã
Double click on the setting text to open the configuration form.
Use it if you need advanced settings.
ããã¹ãã®åæãããã«ã¯ãªãã¯ãããšèšå®ãã©ãŒã ãéããŸãã
è€éãªèšå®ãå¿
èŠãªå Žåã¯äœ¿ã£ãŠãã ããã
property | |
---|---|
mode | Spring model. |
k | Spring power. Swing. ããä¿æ°ãæºãã |
damping | Force decay. åã®æžè¡°çã |
mass | Mass of object. ç©äœã®è³ªéã |
alpha | Physics blend ratio. ç©çèšç®ã®ãã¬ã³ãçã |
Please set with feeling. I'm not sure too!
ãšãªã£ãŠããŸããããé©åœã«èšå®ããŠãã ãããç§ãè¯ãããããŸããïŒ
Adjust with k
and damping
,
Increase or decrease the mass
value if you do not get a good motion.
k
ãš damping
ã§èª¿æŽããŠãè¯ãåãã«ãªããªãã£ãã mass
ã墿žãããŠãã ããã
tail2.mode=bone
tail2.k=200.00
tail2.damping=10.00
tail2.mass=0.4
tail2.alpha=1.0
Change to this settings.
ãã®èšå®ã«å€æŽããŸãã
It feels nice.
è¯ãæãã§ããã
Let the raptor do the sequence animations.
It moves like this.
äžé£ã®åããããããšãã®ããã«åããŸãã
There is also a negative effect due to physics.
The scene of the roar
animation has become subtle difference.
So I made a supplementary animation of the tail and combined it with physics.
That is why the tail and the pink bone are different.
ç©çèšç®æ
ã®åŒå®³ããããŸãã
å ãã
ã¢ãã¡ãŒã·ã§ã³ã®ã·ãŒã³ã埮åŠã«ãªã£ãŠããŸããŸããã
ããã§ã尻尟ã®éšåã®è£è¶³ã¢ãã¡ãŒã·ã§ã³äœã£ãŠãç©çèšç®ãšçµã¿åãããŸããã
尻尟ãšãã³ã¯ã®ããŒã³ãç°ãªãã®ã¯ãã®ããã§ãã
Finally, Make overall adjustments.
æåŸã«ãå
šäœã®åãã調æŽããŸãããã
Maybe the effect of physics is too great.
In this case, adjust the blend ratio alpha
of the physics.
ã¡ãã£ãšç©çèšç®ã®åœ±é¿ã倧ããããããã
ãã®å Žåã¯ç©çèšç®ã®åæç alpha
ã調æŽããŸãããã
tail2.alpha=0.6
Just feeling good.
ãããªããã§ããããã