问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Blender实用技巧:将3D模型原点移动到边界框底部中心

创作时间:
作者:
@小白创作中心

Blender实用技巧:将3D模型原点移动到边界框底部中心

引用
CSDN
1.
https://m.blog.csdn.net/m0_68830251/article/details/144813747

在3D建模和资产管理中,统一模型原点位置是一项常见需求。特别是在处理大量3D资产时,将所有模型的原点统一到其边界框(bound_box)底部中心,可以显著提高后续操作的效率。本文将介绍如何使用Blender软件实现这一目标。


以下是实现这一功能的Python脚本代码:

import bpy
import mathutils
from mathutils import Vector

# 获取当前选中的对象
obj = bpy.context.object

# 确保对象存在并且是 mesh 类型
if obj and obj.type == 'MESH':
    # 获取物体的边界框坐标
    bound_box = obj.bound_box  # 获取物体的8个角点
    
    # 将边界框坐标转换为世界空间
    world_bound_box = [obj.matrix_world @ mathutils.Vector(corner) for corner in bound_box]
    
    # 获取边界框的坐标
    min_x, min_y, min_z = world_bound_box[0]
    max_x, max_y, max_z = world_bound_box[6]
    
    # 计算边界框底部中心位置
    center_x = (min_x + max_x) / 2
    center_y = (min_y + max_y) / 2
    center_z = min_z  # 使用底部的z值
    
    # 设置3D游标到物体边界框底部的中心
    bpy.context.scene.cursor.location = Vector((center_x, center_y, center_z))
    
    # 将物体原点设置为游标的位置
    bpy.ops.object.origin_set(type='ORIGIN_CURSOR')

核心思想:通过将3D游标移动到模型边界框底部中心,再将模型原点设置到游标位置,从而实现原点的统一。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号