Shade3D 公式

頂点カラーに関する件


#1

頂点カラーを使用してランダムに色をつけるスクリプトを作成しているのですか、上手くいきませんアドバイスお願いします。下の画像は手作業でしているものです。

下がおかしなスクリプトです。

import random 

for i in range(1,20):
	r=random.random()
	g=random.random()
	b=random.random()
	xshade.scene().active_shape().vertex(i).position
	xshade.scene().active_shape().vertex(i).active
	xshade.scene().active_shape().surface.diffuse_color=[r, g, b]
	xshade.scene().active_shape().update()

#2

diffuse_color は表面材質の拡散反射色です。
頂点カラーは、face の set_vertex_color で設定します。

頂点カラーの設定については、以下のドキュメントの 15.1 追加分を参照してください。
http://help.shade3d.jp/ja/support/PythonScriptRefDoc/

例えば、以下スクリプトで設定できます。

import random 

def random_vertex_color():
	scene = xshade.scene()
	shape = scene.active_shape()
	# 頂点カラーはポリゴンメッシュのみ.
	if shape.type != 7:
		print 'ポリゴンメッシュを選択してください'
		return False
	# 頂点カラーレイヤーがない場合は作成する.
	if shape.number_of_vertex_color_layers == 0:
		shape.append_vertex_color_layer()
	# 頂点カラーは面ごとに指定する.
	for i in range(shape.number_of_faces):
		face = shape.face(i)
		for j in range(face.number_of_vertices):
			r=random.random()
			g=random.random()
			b=random.random()
			face.set_vertex_color(0, j, [r, g, b, 1.0])
	return True

random_vertex_color()

頂点の座標修正に関する件
#3

いい感じのスクリプトです。面白いですね。ためしに自転車に色をつけてみました。

ありがとうございます。
ドキュメントの追加分も参考にさせてもらいます。