Dans un objet qui a une relation parent-enfant Il peut être utilisé lorsque l'objet enfant se déplace lorsque l'objet parent pivote.
Environnement d'exécution: Motionbuilder 2015
J'ai fait un processus pour dessiner une sphère avec Null en Mo.
Le traitement principal est uniquement le contenu de getPosition ()
.
# -*- coding: utf-8 -*-
from pyfbsdk import *
import math
#Méthode pour trouver des coordonnées à partir de deux angles et d'une distance
def getPosition(_angle1, _angle2, _radius):
x = _radius * math.sin(math.radians(_angle1)) * math.cos(math.radians(_angle2));
y = _radius * math.sin(math.radians(_angle1)) * math.sin(math.radians(_angle2));
z = _radius * math.cos(math.radians(_angle1));
return FBVector3d(x, y, z);
#Si vous changez ceci pour le logiciel du logiciel que vous souhaitez utiliser, il dessinera une sphère.
## angle1,Vous pouvez également dessiner un demi-cercle en ajustant la valeur qui entre dans angle2
##Notez que l'exécution de l'étape du troisième argument de range avec 1 (ou non spécifié) est lourde.
parentPos = FBVector3d(50, 50, 50)
for angle1 in range(0, 360, 3):
for angle2 in range(0, 180, 3):
mdlNull = FBModelNull("Null_{0}_{1}".format(str(angle1), str(angle2)))
mdlNull.Show = True
mdlNull.Scaling = FBVector3d(1, 1, 1)
mdlNull.Translation = parentPos + getPosition(angle1, angle2, 100.0)
Lorsque vous l'exécutez, vous obtiendrez quelque chose comme ça. (Cela a fait le pas de range () en 1!)
Recommended Posts