• Blender批量修改名称


    假如在Blender里按顺序添加了多个mesh,名字后缀按照数字1,2,3…编号,此时又要插入一个新的mesh,那么这个mesh之后的其它mesh名字都要加1,此时该怎么办呢?

    比较简单的办法是把新mesh后面的mesh名称一个一个手动加1,如果数量少还可以,如果很多就有点浪费时间了。

    Blender自身也提供了批量修改的功能,按Ctrl+F2可以调出批量改名的窗口,如下,
    image.png

    对于简单的替换这个是没问题的,但对于本文的case则不好操作了。好在Blender提供了执行python脚本的功能,通过python脚本,很容易实现各种批量改名字。

    本文讲述如何在Blender里使用Python脚本来实现批量修改名称。主要分为2块:

    1. 批量修改mesh名称
    2. 批量修改动画名称

    一 批量修改mesh名称

    打开Blender,然后在里面再添加3个立方体,加上默认的,总共有4个立方体,
    image.png
    其名称依次是
    image.png

    假设现在要添加一个新的立方体,名字要命名为Cube.002,那么当前的Cube.002和Cube.003要依次改为Cube.003和Cube.004,首先让我们调出Python窗口,按照如下步骤,

    image.png

    最后变成这样,
    image.png
    此时我们在电脑里某个地方创建一个python脚本,叫rename.py,其内容如下,

    import bpy
              
    for one in reversed(bpy.data.objects):
         temp = one.name.split(".", 1)
         if len(temp) == 2:
             if int(temp[1]) >= 2:
                 one.name = temp[0]+".{:03}".format(int(temp[1])+1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    PS:关键是这个reversed函数,会返回一个反向迭代器,这样可以从后往前去重命名,必须这样做,否则只有最后一个立方体可以命名成功。假如先从Cube.002开始重命名,变成Cube.003,但是此时原先的Cube.003还没修改名字,这样就会有2个Cube.003,blender会阻止这种事情,就会造成Cube.002重命名失败。

    然后点击Open按钮打开,接着点击右侧红框里的执行按钮,
    image.png

    最后就发现立方体名字变了,Cube.002和Cube.003分别加1变成了Cube.003和Cube.004
    image.png


    二 批量修改动画名称

    有了第一节的知识,批量修改动画名称就很简单了,假设每个立方体上都有个动画,对应关系如下,

    • Cube: CubeAction
    • Cube.001: Cube.001Action
    • Cube.002: Cube.002Action
    • Cube.003: Cube.003Action

    同样要把Cube.002Action和Cube.003Action里的数字加1,同样的,我们把rename.py里的内容替换为如下,

    import bpy
                 
    for one in reversed(bpy.data.actions):
         temp1 = one.name.split(".", 1)
         if len(temp1) < 2:
            continue
         temp2 = temp1[1].split("Action")
         if (len(temp2) == 2):
             if int(temp2[0]) >= 2:
                 one.name = temp1[0]+".{:03}Action".format(int(temp2[0])+1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行后显示如下,

    image.png

  • 相关阅读:
    记录--vue中动态引入图片为什么要是require, 你不知道的那些事
    03.3线性回归的简洁实现
    Python NLP教程之知识图谱,从文本构建知识,实现从文本或在线文章中提取知识库的管道(教程含源码)
    深度之眼(三)——矩阵的行列式
    mac远程连接ubuntu-vnc
    【论文笔记】An Effective Adversarial Attack on Person Re-Identification ...
    好心情精神心理科医生:如何与青春期的孩子沟通?
    python+requests+pytest+allure自动化框架
    SAP HANA Time Zone设置
    字节(byte)和位(bit)
  • 原文地址:https://blog.csdn.net/whahu1989/article/details/132913185