これを行うためのスクリプトまたはコードを知っていますか?
ランダムな色を与えるものをいくつか見ましたが、2つのオブジェクトが同じワイヤーカラーを持っていないことを確認する必要があります。
ありがとう!=)
私は何も知りませんが、書くのはそれほど難しくありません。
ほら、期待どおりに動作することを願っています。
fn shuffle &arr =
(
local temp, swapIndex, counter = arr.count + 1
while counter > 1 do
(
swapIndex = random 1 (counter -= 1)
temp = arr[counter]
arr[counter] = arr[swapIndex]
arr[swapIndex] = temp
)
OK
)
fn incrementCounters &r &g &b step =
(
if (b += step) > 256 do
(
b = 1
if (g += step) > 256 do
(
g = 1
if (r += step) > 256 do r = 1
)
)
)
fn assignRandomWirecolor objs simple:true =
(
local stepCount = objs.count^(double 1/3) + 1
local step = 255./stepCount
local redArr = #(0) + #{1..255}
local greenArr = copy redArr #noMap
local blueArr = copy redArr #noMap
local r = local g = local b = 1
if simple then
(
shuffle &redArr
shuffle &greenArr
shuffle &blueArr
)
else shuffle &sel -- slower with many objects
for obj in objs do
(
obj.wirecolor = [redArr[int(r)], greenArr[int(g)], blueArr[int(b)]]
incrementCounters &r &g &b step
)
)
sel = selection as array
clearSelection()
assignRandomWirecolor sel --simple:false --> if simple is not so cool, try the other option
select sel
もちろん、使用目的にもよりますが、これは単なる一般的なアプローチであり、その正確なタスクには適していない可能性があります。その場合は、詳細をお知らせいただければ、いくつかの調整を行います。