是否可以在Blender中只有一个或两个轴的父级?

时间:2013-05-14 05:03:32

标签: python loops camera parent blender

我正在使用Blender Game Engine创建一个2d平台游戏。我无法让相机跟随我的角色并将他留在屏幕中央。最初,我尝试简单地将相机托管到我的角色,但每当我的角色转动(绕Z轴旋转180度)时,我的相机也是如此,使其面向水平的背面。所以,我想知道是否有一种方法可以将一个或两个对象的轴“父”另一个“父”,或者即使它是父项也可以限制轴移动。这样我可以防止相机旋转,但仍然可以跟随Y轴和Z轴。 我研究的一件事是使用Python代码。我想出了......

import bpy
char = bpy.data.objects['HitBox']
obj = bpy.data.objects['Camera']
obj.location.x = 69.38762 # this is the set distance from the character to camera
obj.location.y = char.location.y
obj.location.z = char.location.z
bpy.data.scenes[0].update()

我意识到在分配'char'变量之后我需要一个循环,但是我不能让任何Python循环在整个游戏中运行,因为'while'循环使BGE崩溃。如果您可以帮助解决育儿问题或Python代码,我真的很感激。

1 个答案:

答案 0 :(得分:0)

你只需要使用bge模块,因为它适用于游戏引擎。所以你的问题是:你使用了blender python,但没有使用bge python。尝试使用cam = bge.logic.getCurrentScene().active_camera到达相机。 ......所以这应该有效:

import bge

def main():
    cam = bge.logic.getCurrentScene().active_camera
    obj = bge.logic.getCurrentController().owner
    obj.worldPosition.y = cam.worldPosition.y
    obj.worldPosition.z = cam.worldPosition.z

main()

(使用真正触发的始终传感器将此脚本附加到“HitBox”,以便它可以永久循环。)

其他解决方案: 您可以尝试为您的播放器设置顶点父级。