将 "properties" 添加到 Blender 场景中的对象
Adding "properties" to objects in a Blender scene
我刚刚开始深入研究主要来自 Quake's Radiant 的 Blender。我正在尝试研究它是否适合我更换关卡编辑器的需要。考虑到这一点,这是我的问题:
创建和存储一组预制 "entity" 对象(例如医疗包、弹药拾取器和 "moveable" 对象的最佳方法是什么,以便它们具有一组 "properties" 可以在 Blender 中更改?
我找到了这个页面,但我仍然不知道如何在每个对象的基础上集成它们并获得预期的结果:
https://docs.blender.org/manual/en/dev/editors/properties_editor.html
注意:我的目标不是使用 Blender 游戏引擎 - 只是为我导出到我自己的引擎的东西附加值。
Edit1:找到一篇讨论该主题的文章,尽管它看起来很过时:
https://www.gamasutra.com/blogs/IwanGabovitch/20120524/171032/Using_Blender_3D_as_a_3d_map_editor_rather_than_programming_your_own_from_scratch.php
示例:
// entity 105
{
"inv_item" "2"
"inv_name" "#str_02917"
"classname" "item_medkit"
"name" "item_medkit_11"
"origin" "-150 2322 72"
"triggerFirst" "1"
"triggersize" "40"
"rotation" "0.224951 0.97437 0 -0.97437 0.224951 0 0 0 1"
}
我发现的 link 似乎是最好的选择,并且具有最大的灵活性。 Super Tux Kart 插件的源代码是一个很好的参考实现:
https://sourceforge.net/p/supertuxkart/code/HEAD/tree/media/trunk/blender_26/
虽然我们可以手动将 custom properties 添加到任何对象,但这些是添加到特定对象的,因此每个对象都是唯一的。
集成新属性的更好方法是使用 bpy.props,这些可以添加到 blender 中的对象 class,这意味着每个对象都将具有相同的可用属性。
您可以设置一个 custom panel to edit your properties, like this simple example. Both the properties and panel as well as your object exporter can be defined in an addon,您可以在启动时启用它,以便每次 运行 blender 时它都可用。插件还可以让您更轻松地与他人分享您的游戏编辑器。
我刚刚开始深入研究主要来自 Quake's Radiant 的 Blender。我正在尝试研究它是否适合我更换关卡编辑器的需要。考虑到这一点,这是我的问题:
创建和存储一组预制 "entity" 对象(例如医疗包、弹药拾取器和 "moveable" 对象的最佳方法是什么,以便它们具有一组 "properties" 可以在 Blender 中更改?
我找到了这个页面,但我仍然不知道如何在每个对象的基础上集成它们并获得预期的结果: https://docs.blender.org/manual/en/dev/editors/properties_editor.html
注意:我的目标不是使用 Blender 游戏引擎 - 只是为我导出到我自己的引擎的东西附加值。
Edit1:找到一篇讨论该主题的文章,尽管它看起来很过时: https://www.gamasutra.com/blogs/IwanGabovitch/20120524/171032/Using_Blender_3D_as_a_3d_map_editor_rather_than_programming_your_own_from_scratch.php
示例:
// entity 105
{
"inv_item" "2"
"inv_name" "#str_02917"
"classname" "item_medkit"
"name" "item_medkit_11"
"origin" "-150 2322 72"
"triggerFirst" "1"
"triggersize" "40"
"rotation" "0.224951 0.97437 0 -0.97437 0.224951 0 0 0 1"
}
我发现的 link 似乎是最好的选择,并且具有最大的灵活性。 Super Tux Kart 插件的源代码是一个很好的参考实现:
https://sourceforge.net/p/supertuxkart/code/HEAD/tree/media/trunk/blender_26/
虽然我们可以手动将 custom properties 添加到任何对象,但这些是添加到特定对象的,因此每个对象都是唯一的。
集成新属性的更好方法是使用 bpy.props,这些可以添加到 blender 中的对象 class,这意味着每个对象都将具有相同的可用属性。
您可以设置一个 custom panel to edit your properties, like this simple example. Both the properties and panel as well as your object exporter can be defined in an addon,您可以在启动时启用它,以便每次 运行 blender 时它都可用。插件还可以让您更轻松地与他人分享您的游戏编辑器。