Il modo più facile è posizionare un osso dove si trova il cursore, poi usare un vincolo IK e di trasformazione che abbia come bersaglio quell'osso per regolare lo scheletro. Spineboy lo fa:
The easiest way is to position a bone where the mouse cursor is, then use IK and transform constraints which target that bone to adjust the skeleton. Spineboy does this:
Spineboy example
Puoi vedere la demo qui:
See the demo here:
Spine: Demos: Inverse kinematics
Demo code:
spine-runtimes/hoverboard.js at 3.8
Per capirne il funzionamento, suggerisco di aprire il progetto spineboy-pro.spine
, selezionare l'animazione aim
e traslare l'osso crosshair
di qua e di là. Guarda le ossa che ruotano quando il bersaglio è mosso, e come sono vincolate (maggiori informazioni sono disponibili sulla pagina di esempio di Spineboy in inglese).
To understand it, I suggest opening the spineboy-pro.spine
project, play the aim
animation, and translate the crosshair
bone around. Look at the bones that rotate as the crosshair bone is moved and see how they are constrained (and read the spineboy example page).
Il modo in cui il gufo lo fa è differente. Come descritto nella pagina di esempio che hai linkato, il gufo usa un'animazione per ciascuna direzione, e poi le miscela. Puoi vedere il codice qui:
The way the owl does it is different. As described in the example page you linked, the owl uses an animation per direction and then blends between them. You can see the code here:
spine-runtimes/additiveblending.js at 3.8
Questa parte imposta le animazioni:
This part sets up the animations:
spine-runtimes/additiveblending.js at 3.8
E questa parte imposta la traccia alpha
in base alla posizione del mouse:
And this part sets the track entry alpha
based on the mouse position:
spine-runtimes/additiveblending.js at 3.8