我想制作3D游戏,最好是可以在浏览器中播放.有人说搅拌机,有人说团结.各自的优点和缺点是什么?你更倾向哪个?为什么?另外,您对教程有什么建议吗?
编辑(下面的原帖):
所以我想出了以下代码.我可以导出网格,骨骼结构和动画.我可以为一个简单的骨架制作动画.但由于某些原因,如果我为多个骨骼制作动画,则会出现问题并且手臂会在错误的轴上移动.
我的cpp代码在这里:http://kyuu.co.uk/so/main.cpp
我的python导出代码在这里:http://kyuu.co.uk/so/test.py
有人可以告诉我我做错了什么吗?我想这可能与搅拌机中的骨辊有关.我看过很多关于这个的帖子.
谢谢.
(原帖:)
我一直在研究这个问题一段时间,仍然无法弄清楚我错过了什么,所以我希望有人能帮助我:3
是的,我的应用程序中有类似下面的代码:
class bone {
bone * child;
Eigen::Matrix4f local_bind_pose; // this i read from a file
Eigen::Matrix4f final_skinning_matrix; // i then transform each vertex by this matrix
// temporary variables
Eigen::Matrix4f inv_bind_pose;
Eigen::Matrix4f world_bind_pose;
}
Run Code Online (Sandbox Code Playgroud)
即一个简单的骨骼层次结构.
我相信我可以解决这个问题inv_bind_pose:
world_bind_pose = bone.parent.world_bind_pose * local_bind_pose
inv_bind_pose = world_bind_pose.inverse()
Run Code Online (Sandbox Code Playgroud)
我知道bind_pose必须相对于父骨骼.
我知道搅拌机是z = up我正在使用y = up.
但我无法从搅拌机中获取此信息.我使用的是2.56.3版.
矩阵的旋转部分是bone.matrix_local?翻译部分会是bone.tail() - bone.head()吗?
骨滚怎么样?这似乎确实会影响结果.
一些参考:
http://www.gamedev.net/topic/571044-skeletal-animation-bonespace …
我正在尝试将在Cheetah 3D和Blender 3D中创建的动画加载到Scene Kit中,但我得到的是一堆"无标题动画",每个动画都是相同的动画.
有谁知道如何从Blender或Cheetah 3D正确导出这些,以便Scene Kit可以使用它们?
我可以使用COLLADA/.dae格式导出在Blender中创建的网格,以便在SceneKit中使用 - 但iOS设备上不显示任何纹理.
此外,OS X上的预览不会打开从Blender导出的任何COLLADA文件 - 但是侧边栏预览会显示网格.出口使这项工作需要哪些选项?
我正在尝试使用Python来检索实时音频输入的主要频率.目前我正在尝试使用音频流我的笔记本电脑的内置麦克风,但在测试以下代码时,我的结果非常糟糕.
# Read from Mic Input and find the freq's
import pyaudio
import numpy as np
import bge
import wave
chunk = 2048
# use a Blackman window
window = np.blackman(chunk)
# open stream
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 1920
p = pyaudio.PyAudio()
myStream = p.open(format = FORMAT, channels = CHANNELS, rate = RATE, input = True, frames_per_buffer = chunk)
def AnalyseStream(cont):
data = myStream.read(chunk)
# unpack the data and times by the hamming window
indata = …Run Code Online (Sandbox Code Playgroud) 这里的作者在17.20-17.50点提到您将来可以使用标准Python解释器访问BPY.它已经有1年了,那么如何使用标准的python控制台访问BPY?
试验0:roundaround -solution不能与Blender中的子进程一起使用
Run Code Online (Sandbox Code Playgroud)subprocess.call(['vim', 'test.py']) # some editing of BPY -file with Vim (not working currently) subprocess.call(['python', 'test.py']) # trying to execute the python -file (not working currently)试验1:不在Blender外工作
Run Code Online (Sandbox Code Playgroud)$ cat cubes.py import bpy mylayers = [False]*20 mylayers[0] = True add_cube = bpy.ops.mesh.primitive_cube_add for index in range(0, 5): add_cube(location=(index*3, 0, 0), layers=mylayers) $ python cubes.py Traceback (most recent call last): File "cubes.py", line 1, in <module> import bpy ImportError: No module named bpy
我以前在编程文档中遇到过"RNA"和"RNA属性"这两个术语.有人可以向我解释这些术语的含义吗?
这些通用编程术语是否适用于多种语言,还是这些非一般术语?为此难以避免获得与生物学相关的搜索结果,以及我一直没有使用的编程词汇网站.我在任何地方看到的都是首字母缩略词,没有地方可以确切地知道它们是什么,因为每个人都显然已经知道......
这里有些例子:
面板属性属性在属性部分中讨论,但我们没有解释如何在面板中显示自定义属性.这个脚本就是这样做的.使用语法显示RNA属性
layout.prop(ob,'myRnaInt')
注意:我想避免在javascript代码中修改模型,并在Blender中进行所有模型设计.
注意#2:虽然这个问题很长,但它实际上是一个基本问题(标题说明了一切).以下是问题的"演练".
我正在尝试将Blender模型导出为threejs.org作为DAE模型,但是对于具有纹理的模型有问题(我也尝试过JSON和OBJ + MTL格式):
为了简化操作,下面是我执行(并且失败)将纹理添加到包含立方体,相机和灯光的简单"启动文件"的步骤:
您可以下载这些步骤中提到的混合,dae和纹理文件.
然后我使用以下代码加载DAE模型,但是我收到此错误并且未显示多维数据集:
256 [.WebGLRenderingContext] GL错误:GL_INVALID_OPERATION:glDrawElements:尝试访问属性2 WebGL中超出范围的顶点:错误太多,不会再向控制台报告此上下文的错误.

<script src="js/three.min.js"></script>
<script src="js/OrbitControls.js"></script>
<script src="js/ColladaLoader.js"></script>
<script>
var scene, camera, renderer;
init();
animate();
function init() {
scene = new THREE.Scene();
var WIDTH = window.innerWidth,
HEIGHT = window.innerHeight;
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(WIDTH, HEIGHT);
document.body.appendChild(renderer.domElement);
camera = new THREE.PerspectiveCamera(45, …Run Code Online (Sandbox Code Playgroud) 我在搅拌机里做了一个小游戏.帮助我在Android市场上发布该游戏.我查了很多网站,了解了有关游戏套件等的信息,但似乎没有任何帮助.
谢谢你们
我正在完成本教程:https :
//docs.blender.org/manual/en/latest/advanced/scripting/addon_tutorial.html
我从教程中复制了下面的脚本,当我运行脚本时,它编译没有任何错误。我应该能够在操作员搜索菜单 ( F3) 中搜索“按一个移动 X”来执行操作员,但它没有显示在操作员搜索菜单中。如何让操作员显示在搜索菜单中?Blender 2.9 有什么变化吗?
bl_info = {
"name": "Move X Axis",
"category": "Object"
}
import bpy
class ObjectMoveX(bpy.types.Operator):
bl_idname = "object.move_x"
bl_label = "Move X by One"
bl_options = {'REGISTER', 'UNDO'}
def execute(self, context):
scene = context.scene
for obj in scene.objects:
obj.location.x += 1.0
return {'FINISHED'}
def register():
bpy.utils.register_class(ObjectMoveX)
def unregister():
bpy.utils.unregister_class(ObjectMoveX)
if __name__ == "__main__":
register()
Run Code Online (Sandbox Code Playgroud)