🧊

Blender 重い3Dモデルをランダムで間引く

2021/03/01に公開

大量のオブジェクトを含む街のデータを演出向けに使う際に、
だいぶ重かったのでいい感じに間引くスクリプトを書いた。

# import bpy
import random

def randomSample(reduceRate: float):
    objects = list(bpy.data.objects)
    targetCount = int(len(objects) * reduceRate)
    randomObjects = random.sample(objects, targetCount);

    for ob in randomObjects:
        ob.select_set(True)


# 存在するオブジェクトの7割を無作為に選択
randomSample(0.7)

これで、無作為に7割程度のオブジェクトが選択できるので、
そのままDeleteし、その後Joinすることでだいぶ演出が軽くなった。

ちなみに、一つのオブジェクトをメッシュごとに分割する際は、
Editモードで、 Separate > By Loose Parts とすることで、メッシュが接続されていないオブジェクトがすべてバラバラのオブジェクトになる。

Discussion