« C4D Python R12 テスト:スプラインのポイントを選択したポイントから6個おきに選択するよ。 | トップページ | C4D Python R12 テスト:シンプルな入力ダイアログを使ってみる。 »

C4D Python R12 テスト:子オブジェクトを乱数を使って5割の確立で選択するよ。

乱数0.0~1.0を使って0.5未満が出ると子オブジェクトを選択してみる。
ただし、この方法では「子オブジェクトの全体の5割をランダムに選択する」と言う事にはならないよ。

Childobjectrandomselect_01

Python
'''
子オブジェクトを5割の確立でランダムに選択してみる。
'''

import random
import c4d

def main():
    if not op:return

    child = op.GetChildren()
    if len(child) == 0:return

    op.DelBit(c4d.BIT_AOBJ) #現在選択しているオブジェクトの選択解除

    #子オブジェクトの選択
    for obj in child:
        if random.random()<0.5:obj.SetBit(c4d.BIT_AOBJ)


if __name__=='__main__':
    main()
    c4d.EventAdd()

この方法だと選択数は、2個だったり、10個だったりする場合があるよ。
子オブジェクトリストをシャッフルして、先頭から全体のn%個を選択状態にした方が良いと思う。

|

« C4D Python R12 テスト:スプラインのポイントを選択したポイントから6個おきに選択するよ。 | トップページ | C4D Python R12 テスト:シンプルな入力ダイアログを使ってみる。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« C4D Python R12 テスト:スプラインのポイントを選択したポイントから6個おきに選択するよ。 | トップページ | C4D Python R12 テスト:シンプルな入力ダイアログを使ってみる。 »