Я тута вздумал MaxScript посмотреть.....Правда он трудноват, перевод скачал, но всё же сижу с рефренсом по максСкрипт на ангийском.Приходится с некоторыми вещами разбираться на примерах. Дык вот, скрипт , наверное многим, известный нашёл в книге по максу. Там всё путём про него написано. Сразу говорю я ооочень мало шарю в языке этом. Вот его текст:
--(сразу скажу я в нём сам (без книги) практически ничего не понял)
--ну-у, я думая начинающий врядли чего может понять...
plugin textureMap drawMap
name:"DrawMap"
classid:#(0xb01b213a,0xdbe89dc8)
extends:bitmaptexture
replaceui:true
(
local pointarray = #(),tmap,t_draw
fn getuvinfo obj sray =
(
local intray,tvface,tvarray,tv
if obj == undefined do return()
intray = intersectrayex obj sray
if intray == undefined do return()
try
(
tvface = gettvface obj intray[2]
)
catch (
print "No tv faces"
return()
)
tvarray = #(gettvert obj tvface.x,
gettvert obj tvface.y,gettvert obj tvface.z)
tv = (tvarray[1]*intray[3].x)+(tvarray[2] * intray[3].y)+(tvarray[3] * intray[3].z)
)
fn drawbitmap bmap uvdata =
(
local ppos
ppos = [(uvdata.x * bmap.width) as integer, (bmap.height - (uvdata.y * bmap.height)) as integer]
setpixels bmap ppos #(color 255 255 0)
)
fn drawhelper obj sray =
(
local intray
if obj == undefined do return()
intray = intersectray obj sray
if intray == undefined do return()
append pointArray (point pos:intRay.pos showaxis:false)
)
parameters main rolloutarams
(
cbt_draw type:#boolean ui:cbt_draw
on cbt_draw set state do
(
if $ == undefined do (
cbt_draw = false;return()
)
if not (iskindof $ editadlemesh) do addmodifier $ (normalmodifier())
while state == true do (
starttool t_draw
)
if state == false do stoptool t_draw
)
)
rollout params "DrawMap Parameters"
(
checkbutton cbt_draw "Draw" highlightcolorcolor 180 255 180)
)
tool t_draw
(
local uvdata
on mousepoint click do
(
if click == 1 then (
uvdata = getuvinfo $ (mapscreentoworldray viewpoint)
if uvdata == undefined do return()
drawbitmap delegate.bitmap uvdata
drawhelper $ (mapscreentoworldray viewpoint)
)
else
(
delete pointarray; pointarray = #()
delegate.apply = true
#stop
)
)
on mouseabort click do cbt_draw = false
)
on create do
(
save (bitmap 256 256 filename"c:\\drawmap.bmp"))
tmap = (openbitmap ("c:\\drawmap.bmp"));close tmap
delegate.filename = ("c:\\drawmap.bmp")
)
)
КОроче кому интересно скажу чо он делает: запускаешь его, в матэд выбираешь карту общего цвета, потом текстуру DrawMap, там появляется ктопочка Draw её жмеш и щелчками мыши делаешь точки на объекте.
В общем, я в строчке "rollout params "DrawMap Parameters""
указываю объект ,ColorPicker и все его параметры, потом хочу сделать чтоб цвета пикселей, которые устанавливаются в этой строке "setpixels bmap ppos #(color 255 255 0)" . В скобке цвет пикселей. Я там пишу Picker.Color вродь теперь цвет пикселей должон быть настраеваемым, но этого не происходит.Пишет ошибку какуюто. Помогите разобраться с ним, пожалуйста,
спасибо всем.
--(сразу скажу я в нём сам (без книги) практически ничего не понял)
--ну-у, я думая начинающий врядли чего может понять...
plugin textureMap drawMap
name:"DrawMap"
classid:#(0xb01b213a,0xdbe89dc8)
extends:bitmaptexture
replaceui:true
(
local pointarray = #(),tmap,t_draw
fn getuvinfo obj sray =
(
local intray,tvface,tvarray,tv
if obj == undefined do return()
intray = intersectrayex obj sray
if intray == undefined do return()
try
(
tvface = gettvface obj intray[2]
)
catch (
print "No tv faces"
return()
)
tvarray = #(gettvert obj tvface.x,
gettvert obj tvface.y,gettvert obj tvface.z)
tv = (tvarray[1]*intray[3].x)+(tvarray[2] * intray[3].y)+(tvarray[3] * intray[3].z)
)
fn drawbitmap bmap uvdata =
(
local ppos
ppos = [(uvdata.x * bmap.width) as integer, (bmap.height - (uvdata.y * bmap.height)) as integer]
setpixels bmap ppos #(color 255 255 0)
)
fn drawhelper obj sray =
(
local intray
if obj == undefined do return()
intray = intersectray obj sray
if intray == undefined do return()
append pointArray (point pos:intRay.pos showaxis:false)
)
parameters main rolloutarams
(
cbt_draw type:#boolean ui:cbt_draw
on cbt_draw set state do
(
if $ == undefined do (
cbt_draw = false;return()
)
if not (iskindof $ editadlemesh) do addmodifier $ (normalmodifier())
while state == true do (
starttool t_draw
)
if state == false do stoptool t_draw
)
)
rollout params "DrawMap Parameters"
(
checkbutton cbt_draw "Draw" highlightcolorcolor 180 255 180)
)
tool t_draw
(
local uvdata
on mousepoint click do
(
if click == 1 then (
uvdata = getuvinfo $ (mapscreentoworldray viewpoint)
if uvdata == undefined do return()
drawbitmap delegate.bitmap uvdata
drawhelper $ (mapscreentoworldray viewpoint)
)
else
(
delete pointarray; pointarray = #()
delegate.apply = true
#stop
)
)
on mouseabort click do cbt_draw = false
)
on create do
(
save (bitmap 256 256 filename"c:\\drawmap.bmp"))
tmap = (openbitmap ("c:\\drawmap.bmp"));close tmap
delegate.filename = ("c:\\drawmap.bmp")
)
)
КОроче кому интересно скажу чо он делает: запускаешь его, в матэд выбираешь карту общего цвета, потом текстуру DrawMap, там появляется ктопочка Draw её жмеш и щелчками мыши делаешь точки на объекте.
В общем, я в строчке "rollout params "DrawMap Parameters""
указываю объект ,ColorPicker и все его параметры, потом хочу сделать чтоб цвета пикселей, которые устанавливаются в этой строке "setpixels bmap ppos #(color 255 255 0)" . В скобке цвет пикселей. Я там пишу Picker.Color вродь теперь цвет пикселей должон быть настраеваемым, но этого не происходит.Пишет ошибку какуюто. Помогите разобраться с ним, пожалуйста,
спасибо всем.