Как переместить узел, импортированный из Blender - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь передвигаться по анимированной 3D-модели (из Blender) в Scene Kit.

Я могу повернуть свою модель с этим кодом:

let ship = scene.rootNode.childNode(withName: "ship", recursively: true)! ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1)))

Но этот код не перемещает его:

ship.skinner!.skeleton!.runAction(SCNAction.repeatForever(moveForward))

Кроме того, я не могу перетащить свою модель в файл .scn (в отличие от других неанимированных моделей). Кажется, у моей анимированной модели есть дополнительные атрибуты: скриншот. Как я могу перемещать свою анимированную модель в космосе?

1 Ответ

0 голосов
/ 13 июля 2019

Если ваша модель правильно загружена в узел, это просто вопрос перемещения узла (или его поворота, как вы это сделали), и он ведет себя так же, как другие узлы.

runAction.repeat of moveForwardбудет повторять одно и то же движение - скажем, SCNVector3 (5, 0, 0) - но каждый раз оно одно и то же, поэтому, как только оно туда попадет, оно не будет двигаться дальше.Некоторые варианты заключаются в том, чтобы зациклить его и вызвать runAction moveTo и каждый раз увеличивать вектор moveForward, либо использовать физический движок и добавлять скорость и т. Д.

...