Привет!
удивительная штука, более недокументированного хелпа не видела больше нигде. собственно вопрос, мне нужно сделать кастомное оформление редактора материалов - урезать визуальное представление Стандартного максового материала, вот скрипт:
plugin material StandertLTImaterial
name:"Standart LTI mat"
classID:#(695425,446583)
extends:Standard replaceUI:true version:1
(
rollout XXX "Common LTI material"
(
groupBox BPgrp "Basic Parameters" pos:[6,8] width:313 height:120
label AmbientLbl "Ambient:" pos:[41,34] width:50 height:17
label DIffuseLbl "Diffuse:" pos:[40,69] width:41 height:15
label SpecularLbl "Specular:" pos:[40,101] width:47 height:15
colorPicker AmbientCp "" pos:[104,28] width:56 height:25 colorcolor 150 150 150)
colorPicker DiffuseCp "" pos:[104,62] width:56 height:25 colorcolor 150 150 150)
colorPicker SpecularCp "" pos:[104,96] width:56 height:25 colorcolor 150 150 150)
mapButton AmbientBtn "None" pos:[176,32] width:96 height:18 enabled:false toolTip:"Chose a Ambient map"
mapButton DiffuseBtn "None" pos:[176,66] width:96 height:18 enabled:true toolTip:"Chose a Diffuse map"
mapButton SpecularBtn "None" pos:[176,99] width:96 height:18 enabled:false toolTip:"Chose a Specular map"
checkbox AmbDiff pos:[16,48] width:16 height:16 enabled:true checked:true
checkbox DiffSpec pos:[16,87] width:16 height:16
groupBox SHgpr "Specular Highlights" pos:[6,132] width:313 height:54
spinner SpecularSpn "Power " pos:[30,156] range:[0,150,0] width:100 height:16 enabled:true type:#integer scale:1
groupBox MAPgrp "Maps" pos:[6,190] width:313 height:82
label MapsLblShading "Shading" pos:[150,200] width:42 height:18
checkbox MapDiffuseEnable "" pos:[18,215] width:18 height:18
label MapLblDiffuse "Diffuse:" pos:[36,217] width:48 height:18
radioButtons MapDiffuseShade "" pos:[85,217] width:73 height:64 labels:#("100", "50x50", "MO 1x2", "Addsigned")
mapButton MapDiffuseBtn "None" pos:[18,240] width:290 height:18 toolTip:""
)
parameters standartMat rollout: XXX
(
DiffuseColor type:#color defaultcolor 150 150 150) uiiffuseCp
AmbientC type:#color defaultcolor 150 150 150) ui:AmbientCp
SpecularColor type:#color defaultcolor 150 150 150) ui:SpecularCp
SpecularLevels type:#integer default:0 ui:SpecularSpn
DiffuseButton type:#textureMap uiiffuseBtn
MapDiffuseButton type:#textureMap ui:MapDiffuseBtn
on AmbientC set val do
(
delegate.ambient = val
)
on DiffuseColor set val do
(
delegate.diffuse = val
)
on SpecularColor set val do delegate.Specular = val
on SpecularLevels set val do delegate.Specular_Level = val
on DiffuseButton picked mapxx do delegate.map[2] = mapxx
on MapDiffuseButton picked mapxx do delegate.map[2] = mapxx
)
)
из всего этого работают только Дифузный, спекулярный цвета, Power...
НЕ работают Амбиентный цвет - совсем непонятно почему.
НЕ работают кнопки, ни одна, те текстуру то я задать могу только она не отображается в слоте материала, как и амбиентный цвет (остальные цвета видны)
НЕ понятно почему с разделе parameters standartMat rollout: XXX(), я не могу написать например так
on DiffuseColor set val do
(
delegate.diffuse = val
if AmbDiff.state do delegate.ambient = val
)
точнее написать то могу, но такая конструкция почему то вызывает ошибку, макс говорит что не знает свойство .state у объекта AmbDiff, в определении роллаута такая конструкция не вызывает у него вопросов...
Где порылась собака?
удивительная штука, более недокументированного хелпа не видела больше нигде. собственно вопрос, мне нужно сделать кастомное оформление редактора материалов - урезать визуальное представление Стандартного максового материала, вот скрипт:
plugin material StandertLTImaterial
name:"Standart LTI mat"
classID:#(695425,446583)
extends:Standard replaceUI:true version:1
(
rollout XXX "Common LTI material"
(
groupBox BPgrp "Basic Parameters" pos:[6,8] width:313 height:120
label AmbientLbl "Ambient:" pos:[41,34] width:50 height:17
label DIffuseLbl "Diffuse:" pos:[40,69] width:41 height:15
label SpecularLbl "Specular:" pos:[40,101] width:47 height:15
colorPicker AmbientCp "" pos:[104,28] width:56 height:25 colorcolor 150 150 150)
colorPicker DiffuseCp "" pos:[104,62] width:56 height:25 colorcolor 150 150 150)
colorPicker SpecularCp "" pos:[104,96] width:56 height:25 colorcolor 150 150 150)
mapButton AmbientBtn "None" pos:[176,32] width:96 height:18 enabled:false toolTip:"Chose a Ambient map"
mapButton DiffuseBtn "None" pos:[176,66] width:96 height:18 enabled:true toolTip:"Chose a Diffuse map"
mapButton SpecularBtn "None" pos:[176,99] width:96 height:18 enabled:false toolTip:"Chose a Specular map"
checkbox AmbDiff pos:[16,48] width:16 height:16 enabled:true checked:true
checkbox DiffSpec pos:[16,87] width:16 height:16
groupBox SHgpr "Specular Highlights" pos:[6,132] width:313 height:54
spinner SpecularSpn "Power " pos:[30,156] range:[0,150,0] width:100 height:16 enabled:true type:#integer scale:1
groupBox MAPgrp "Maps" pos:[6,190] width:313 height:82
label MapsLblShading "Shading" pos:[150,200] width:42 height:18
checkbox MapDiffuseEnable "" pos:[18,215] width:18 height:18
label MapLblDiffuse "Diffuse:" pos:[36,217] width:48 height:18
radioButtons MapDiffuseShade "" pos:[85,217] width:73 height:64 labels:#("100", "50x50", "MO 1x2", "Addsigned")
mapButton MapDiffuseBtn "None" pos:[18,240] width:290 height:18 toolTip:""
)
parameters standartMat rollout: XXX
(
DiffuseColor type:#color defaultcolor 150 150 150) uiiffuseCp
AmbientC type:#color defaultcolor 150 150 150) ui:AmbientCp
SpecularColor type:#color defaultcolor 150 150 150) ui:SpecularCp
SpecularLevels type:#integer default:0 ui:SpecularSpn
DiffuseButton type:#textureMap uiiffuseBtn
MapDiffuseButton type:#textureMap ui:MapDiffuseBtn
on AmbientC set val do
(
delegate.ambient = val
)
on DiffuseColor set val do
(
delegate.diffuse = val
)
on SpecularColor set val do delegate.Specular = val
on SpecularLevels set val do delegate.Specular_Level = val
on DiffuseButton picked mapxx do delegate.map[2] = mapxx
on MapDiffuseButton picked mapxx do delegate.map[2] = mapxx
)
)
из всего этого работают только Дифузный, спекулярный цвета, Power...
НЕ работают Амбиентный цвет - совсем непонятно почему.
НЕ работают кнопки, ни одна, те текстуру то я задать могу только она не отображается в слоте материала, как и амбиентный цвет (остальные цвета видны)
НЕ понятно почему с разделе parameters standartMat rollout: XXX(), я не могу написать например так
on DiffuseColor set val do
(
delegate.diffuse = val
if AmbDiff.state do delegate.ambient = val
)
точнее написать то могу, но такая конструкция почему то вызывает ошибку, макс говорит что не знает свойство .state у объекта AmbDiff, в определении роллаута такая конструкция не вызывает у него вопросов...
Где порылась собака?