我目前正在研究three.js中的骨骼动画测试.我有一个简单的模型,在搅拌机中动画很好.基本上它由三个堆叠的弯曲立方体组成.
当我使用带有Blender V2.64的blender导出插件将blender文件导出到three.js时,webGl上下文中的动画看起来不同,就好像匀称是错误的一样.

WebGL演示:http: //rainbowrangers.de/threejs/animation_test01/
Blender-File:http: //rainbowrangers.de/threejs/animation_test01/model/animation_test01.blend
我需要做些什么才能在three.js中获得正确的结果?
如何在blender中创建一个简单的输入对话框(如图中所示)并处理通过python输入的文本.我无法找到任何好的教程.

我想在Blender本身中使用脚本模式读出Blender对象的自定义属性.到目前为止,我发现只能读出您在脚本模式下自己创建的自定义属性.但是我想读出我自己用手标记的自定义属性.这意味着我没有要使用的局部变量.
我希望它在以下上下文中:我有一个循环遍历所有对象:
for obj in bpy.data.objects:
if not 'Camera' in obj.name and not 'Lamp' in obj.name and not 'Armature' in obj.name:
#here I get the location of the current Object
loc.append(obj.location)
Run Code Online (Sandbox Code Playgroud)
现在什么是完美的,将是这样的:
obj.getCustomProperties
Run Code Online (Sandbox Code Playgroud)
有没有办法用Blender Python模式做到这一点?
谢谢,丹尼尔
当从Blender导出网格和场景时,我一直遇到使Y轴成为轴的问题.Blender和我的导出目标都使用右手转换矩阵.Z是Blender中的上轴,Y是目标中的上轴.但问题存在于2个地方.场景的变换不能仅仅在X轴上移动来修复它,因为我还需要对网格中的顶点进行Y/Z切换(导出为vertex.x,vertex.z,vertex.y).我需要切换实际的Y和Z旋转,这样如果Y和Z旋转相同,则不会发生任何变化(即同一性).感谢您的帮助.如果我不够透彻,请随时提问.
当我打开搅拌机2.64时,它会自动显示启动/启动画面(我的意思是页面中间的小框,您可以打开最近的.blend文件).我想禁用它,但无法弄清楚如何.有人知道吗?
你可能想知道:你为什么要那样?好吧,我有一个打开搅拌机并显示场景的外部程序.这是一个演示文稿.我真的不喜欢在你真正看到场景之前我必须手动关闭启动屏幕.
注意:我不需要实际渲染某些东西,我希望Blender在显示场景后保持编辑模式.在后台打开搅拌机并渲染场景然后获取该图像而不是显示渲染图像而不是我需要的.
谢谢!
我刚刚开始学习blender及其脚本,并尝试运行其示例代码
import bge
def main():
cont = bge.logic.getCurrentController()
own = cont.owner
sens = cont.sensors['mySensor']
actu = cont.actuators['myActuator']
if sens.positive:
cont.activate(actu)
else:
cont.deactivate(actu)
main()
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:ImportError:没有名为'bge'的模块我搜索了一个解决方案,但找不到any.how来解决这个问题?我正在使用搅拌机2.65
Blender是否使用OpenGl或DirectX?或者这一切都是从头开始完成的?
我正在尝试将此模型转换为three.js模型格式:
http://tf3dm.com/3d-model/ninja-48864.html
这是我到目前为止所尝试的:
我使用默认插件在blender中导入了ms3d文件.在搅拌机中,动画和网格看起来是正确的; 但是,骨骼仅呈现为线条.然后我使用three.js导出器将其导出到js.这会产生正确的网格,但动画未正确导出.仅导出骨骼位置(在此特定模型中很少使用),根本不旋转(除少数身份四元数外).
看来我必须以某种方式在混合器中修改模型,但由于我是3D建模的完全新手,我有点迷茫.我还看了关于blender + three.js的其他问题,但没有一个提示(应用位置/旋转/比例等)有所不同.它也可能是three.js导出器中的错误.
任何人都可以帮助我进行转换,无论如何?
这是我想要实现的一个例子:http://threejs.org/examples/#webgl_animation_skinning_morph
我正在使用Three.js r69的导出器将Blender(v 2.73)的3D模型导出到Three.js(r70).
该模型具有骨架动画,以及具有不同面部表情(睁眼/闭眼等)的多个Shape键.
将骨骼动画导出到Three.js工作正常,但我对如何正确导出变形目标感到茫然.
导出器有一个"变形动画"复选框,但启用它会产生一个非常大的文件,其中时间轴的每一帧都会产生一个变形目标.(时间轴有骨架动画).
骑士模型的json文件(http://threejs.org/examples/models/skinned/knight.js)有4个变形目标,每个面部表情一个.这几乎就是我想要的,但我无法重现它.
有关如何将blender文件/ blender设置为three.js工作流程的任何提示将不胜感激.
我最近一直在尝试Three.js,我使用Blender的导出器插件测试在混合器和导出中制作模型,所以我可以在three.js程序中使用它们.
我将附加组件包含在搅拌机中,并使用搅拌机的基本立方体模型,将其导出到.json,如出口商所说.然后我使用这个作为向导将模型导入我的three.js 但是这给了我一个错误:
Uncaught TypeError: Cannot read property 'length' of undefined.
Run Code Online (Sandbox Code Playgroud)
我已经在线搜索并尝试了一些不同的方法(比如在加载器的函数调用中包含一个材料),但似乎没有任何工作.
我还检查了stackoverflow的答案,但到目前为止似乎没有解决.如果有人会澄清我做错了什么,我将非常感激.
我的three.js程序的代码:
var WIDTH = 1000,
HEIGHT = 1000;
var VIEW_ANGLE = 45,
ASPECT = WIDTH / HEIGHT,
NEAR = 0.1,
FAR = 10000;
var radius = 50,
segments = 16,
rings = 16;
var sphereMaterial =
new THREE.MeshLambertMaterial(
{
color: 0xCCCCCC
});
var sphere = new THREE.Mesh(
new THREE.SphereGeometry(
radius,
segments,
rings),
sphereMaterial);
var pointLight =
new THREE.PointLight(0x660000);
var $container = $('#container');
var …Run Code Online (Sandbox Code Playgroud)