Blender:Appliquer une rotation et appliquer une orientation
De Centre de Ressources Numériques - Labomedia
- Appliquer une rotation: c'est faire tourner un object d'une valeur d'angle en degré ou en radians.
- Appliquer une orientation: c'est définir les valeurs d'orientation de l'objet, soit définir la matrice 3x3 d'orientation de cet objet.
Sommaire
Appliquer une rotation
C'est ce que fait l'actuator Motion: on tourne d'une certainer valeur sur x, y, z en radians.
applyRotation sur www.tutorialsforblender3d.com
import GameLogic
# Get controller owner
owner = GameLogic.getCurrentController().owner
alpha = 0.0
beta = 45.0
gamma = 0.0
# k = pi/180
k = 0.0174
# set amount to rotate
rotation = [alpha*k, beta*k, gamma*k]
# use world axis
local = False
# move game object
owner.applyRotation( rotation, local)
L'objet tourne ici de 45° sur l'axe du world y
Appliquer une Orientation
J'aime bien Euler
Python 2.6
Proposé par wiki.gameblender.org.
# for a realistic angle
alpha = 50.0
beta = 10.0
gamma = 100.0
# Thanks to Siegel May 29th, 2009
from Blender import Mathutils
#set objects orientation with x, y, z in degrees
euler = Mathutils.Euler(alpha, beta, gamma)
#apply to objects world orientation
owner.worldOrientation = euler.toMatrix()
Python 3
import mathutils
#set objects orientation with alpha, beta, gamma in radians
rot_en_euler = mathutils.Euler([alpha, beta, gamma])
#apply to objects world orientation if ok
owner.worldOrientation = rot_en_euler.to_matrix()
ou
import mathutils
#set objects orientation with alpha, beta, gamma in radians
rot_en_euler = mathutils.Euler([alpha, beta, gamma])
#apply to objects world orientation if ok
owner.localOrientation = rot_en_euler.to_matrix()
Ressources
- http://sites.google.com/site/socialstorage/orientationmatrix-basics explique comment marche les rotations
- http://blenderartists.org/forum/showthread.php?76936-getOrientation%28%29-gt-RotX-RotY-RotZ&s=73d7ac9fe85dfccbdc3ff906a9732f54
- http://blenderartists.org/forum/showthread.php?165355-Arcade-Toon-Airplane-help-to-update-scripts-SOLVED&s=980089737873b53824cd143d2dc74f90
- http://blenderartists.org/forum/showthread.php?76936-getOrientation%28%29-gt-RotX-RotY-RotZ&s=73d7ac9fe85dfccbdc3ff906a9732f54 ici la matrice du post 7 est fausse