基本的に、3Ds Max 9の「標準」マテリアルにさらにいくつかのプロパティを追加しようとしています。実際にはmaxスクリプトを使用してこれを実現できましたが、エクスポータが壊れています。
エクスポータは、通常の「標準」マテリアルでスキンされたものに対しては正常に機能しますが、拡張バージョンでは、基本クラスのプロパティがエクスポータから隠されているようです。
私がこれまでに持っているのはこれです:
plugin material Standard_WithOutlines
name:"Standard & Outlines"
classID:#(0x73212413, 0x1ca9e3e6)
extends:Standard replaceUI:false version:1
(
parameters shaderParameters
(
diffuse type:#color
glossiness type:#float
specular type:#color
specularLevel type:#float
selfIllumColor type:#color
selfIllumAmount type:#float
opacity type:#float
on diffuse get val do delegate.diffuse
on glossiness get val do delegate.glossiness / 100.0
on specular get val do delegate.specular
on specularLevel get val do delegate.specularLevel
on selfIllumColor get val do delegate.selfIllumColor
on selfIllumAmount get val do delegate.selfIllumAmount
on opacity get val do delegate.opacity / 100.0
on diffuse set val do delegate.diffuse = val
on glossiness set val do delegate.glossiness = val * 100.0
on specular set val do delegate.specular = val
on specularLevel set val do delegate.specularLevel = val
on selfIllumColor set val do delegate.selfIllumColor = val
on selfIllumAmount set val do delegate.selfIllumAmount = val
on opacity set val do delegate.opacity = val * 100.0
)
parameters MainParams rollout:ExtendedMatRollout
(
ShowOutlining type:#boolean animatable:false default:false ui:outline_Enabled
OutlineColour type:#color animatable:false default:(color 0 0 0) ui:outline_Colour
OutlineThickness type:#float animatable:false default:5 ui:outline_Thickness
)
rollout ExtendedMatRollout "Extended Parameters"
(
groupBox outlinegrp "Outlining" pos:[8,0] width:312 height:62
checkbox outline_Enabled "Enabled" pos:[18,16] width:128 height:16
colorPicker outline_Colour "Colour:" pos:[160,34] width:56 height:20 enabled:ShowOutlining
spinner outline_Thickness "Thickness:" pos:[50,36] width:80 height:16 enabled:ShowOutlining range:[0,100,0]
on outline_Enabled changed state do
(
outline_Colour.enabled = state
outline_Thickness.enabled = state
)
)
)
変数を自分で宣言することで、エクスポーターはそれらを読み取ることができましたが、これは実際にはUIによって設定されている値にリンクしていませんでした。これを解決するために、「on XXX get / set」イベントを使用して、非表示のアイテムにリンクしました。そのため、これらは正しく機能するようになりましたが、拡散反射光や鏡面反射光などのマテリアルマップは機能しません(これが、AFAIKをテクスチャリングする唯一の方法です)。
これらのいくつかの設定をマテリアルタイプに追加して、「デリゲート」クラス内のすべてのデータもエクスポートするようにするにはどうすればよいですか(基本的な継承は要求するには多すぎます)?
ありがとう