585 lines
15 KiB
Text
585 lines
15 KiB
Text
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Nel BitmapTexture properties : this provide additionnal slots to create textures sets
|
|
plugin textureMap NelBitmapTexture
|
|
name:"Nel Multi Bitmap"
|
|
classID:#(0x5a8003f9, 0x43e0955)
|
|
extends:BitmapTexture
|
|
replaceUI:false
|
|
version:1.0
|
|
(
|
|
local currSelectedTextureSet
|
|
parameters pblock rollout:AdditionnalBitmaps
|
|
(
|
|
bitmap1FileName type:#String default:"" ui:cBitmap1FileName
|
|
bitmap2FileName type:#String default:"" ui:cBitmap2FileName
|
|
bitmap3FileName type:#String default:"" ui:cBitmap3FileName
|
|
bitmap4FileName type:#String default:"" ui:cBitmap4FileName
|
|
bitmap5FileName type:#String default:"" ui:cBitmap5FileName
|
|
bitmap6FileName type:#String default:"" ui:cBitmap6FileName
|
|
bitmap7FileName type:#String default:"" ui:cBitmap7FileName
|
|
bitmap8FileName type:#String default:"" ui:cBitmap8FileName
|
|
)
|
|
rollout AdditionnalBitmaps "Additionnal bitmaps" rolledUp:false
|
|
(
|
|
edittext cBitmap1FileName "ID 1:" width:230 across:3
|
|
button browse1 "Get" align:#left across:2 offset:[100, 0]
|
|
button view1 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap2FileName "ID 2:" width:230 across:3
|
|
button browse2 "Get" align:#left across:2 offset:[100, 0]
|
|
button view2 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap3FileName "ID 3:" width:230 across:3
|
|
button browse3 "Get" align:#left across:2 offset:[100, 0]
|
|
button view3 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap4FileName "ID 4:" width:230 across:3
|
|
button browse4 "Get" align:#left across:2 offset:[100, 0]
|
|
button view4 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap5FileName "ID 5:" width:230 across:3
|
|
button browse5 "Get" align:#left across:2 offset:[100, 0]
|
|
button view5 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap6FileName "ID 6:" width:230 across:3
|
|
button browse6 "Get" align:#left across:2 offset:[100, 0]
|
|
button view6 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap7FileName "ID 7:" width:230 across:3
|
|
button browse7 "Get" align:#left across:2 offset:[100, 0]
|
|
button view7 "View" offset:[40, 0]
|
|
|
|
edittext cBitmap8FileName "ID 8:" width:230 across:3
|
|
button browse8 "Get" align:#left across:2 offset:[100, 0]
|
|
button view8 "View" offset:[40, 0]
|
|
|
|
|
|
|
|
|
|
on browse1 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap1FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == undefined or currSelectedTextureSet == 1 then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap1FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view1 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap1FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse2 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap2FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 2
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap2FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view2 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap2FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse3 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap3FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 3
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap3FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view3 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap3FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse4 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap4FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 4
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap4FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
|
|
|
|
)
|
|
)
|
|
|
|
on view4 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap4FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
|
|
on browse5 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap5FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == undefined or currSelectedTextureSet == 5 then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap5FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view5 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap5FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse6 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap6FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 6
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap6FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view6 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap6FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse7 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap7FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 7
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap7FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
on view7 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap7FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
on browse8 pressed do
|
|
(
|
|
myNewBitmap = selectBitmap()
|
|
if myNewBitmap != undefined then
|
|
(
|
|
bitmap8FileName = myNewBitmap.fileName
|
|
if currSelectedTextureSet == 8
|
|
then
|
|
(
|
|
try
|
|
(
|
|
delegate.bitmap = openBitmap bitmap8FileName
|
|
)
|
|
catch
|
|
(
|
|
-- well, no luck..
|
|
)
|
|
)
|
|
|
|
|
|
)
|
|
)
|
|
|
|
on view8 pressed do
|
|
(
|
|
try
|
|
(
|
|
local myBitmap = openBitMap cBitmap8FileName.text
|
|
display myBitmap
|
|
)
|
|
catch
|
|
(
|
|
messagebox "Unable to find / display bitmap"
|
|
)
|
|
)
|
|
|
|
)
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
fn convertMaxBitmapToNelBitmap maxMap =
|
|
(
|
|
if classOf maxMap == NelBitmapTexture then
|
|
(
|
|
return maxMap -- no needs to change
|
|
)
|
|
if maxMap == undefined then
|
|
(
|
|
print "undefined map"
|
|
return undefined
|
|
)
|
|
print "converting bitmap"
|
|
nelMap = NelBitmapTexture()
|
|
base = nelMap.delegate
|
|
-- copy args
|
|
base.clipu = maxMap.clipu
|
|
base.clipv = maxMap.clipv
|
|
base.clipw = maxMap.clipw
|
|
base.cliph = maxMap.cliph
|
|
base.jitter = maxMap.jitter
|
|
base.useJitter = maxMap.useJitter
|
|
base.apply = maxMap.apply
|
|
base.cropPlace = maxMap.cropPlace
|
|
base.filtering = maxMap.filtering
|
|
base.monoOutput = maxMap.monoOutput
|
|
base.rgbOutput = maxMap.rgbOutput
|
|
base.alphaSource = maxMap.alphaSource
|
|
base.preMultAlpha = maxMap.preMultAlpha
|
|
base.bitmap = maxMap.bitmap
|
|
base.coords = maxMap.coords
|
|
base.output = maxMap.output
|
|
base.fileName = maxMap.fileName
|
|
base.startTime = maxMap.startTime
|
|
base.playBackRate = maxMap.playBackRate
|
|
base.endCondition = maxMap.endCondition
|
|
|
|
-- Duplicate the bitmap in the first bitmap slot
|
|
nelMap.bitmap1FileName = nelMap.bitmap.fileName
|
|
|
|
print "return nel map"
|
|
return nelMap
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- takes a material (max standard, max Multi/SubObject, nel), and transform each of its texture that are bitmap
|
|
-- to a NeL bitmap.
|
|
fn convertMaterialChangingBitmap destMat =
|
|
(
|
|
if (classOf destMat == NelMaterial) then -- is it a NelMaterial ?
|
|
(
|
|
print "converting nel material"
|
|
destMat.tTexture_1 = convertMaxBitmapToNelBitmap(destMat.tTexture_1)
|
|
destMat.tTexture_2 = convertMaxBitmapToNelBitmap(destMat.tTexture_2)
|
|
destMat.tTexture_3 = convertMaxBitmapToNelBitmap(destMat.tTexture_3)
|
|
destMat.tTexture_4 = convertMaxBitmapToNelBitmap(destMat.tTexture_4)
|
|
destMat.tTexture_5 = convertMaxBitmapToNelBitmap(destMat.tTexture_5)
|
|
destMat.tTexture_6 = convertMaxBitmapToNelBitmap(destMat.tTexture_6)
|
|
destMat.tTexture_7 = convertMaxBitmapToNelBitmap(destMat.tTexture_7)
|
|
destMat.tTexture_8 = convertMaxBitmapToNelBitmap(destMat.tTexture_8)
|
|
)
|
|
else if (classOf destMat == StandardMaterial) then
|
|
(
|
|
print "converting standard material"
|
|
for j = 1 to 12 do
|
|
(
|
|
destMat.maps[j] = convertMaxBitmapToNelBitmap(destMat.maps[j])
|
|
)
|
|
)
|
|
else if (classOf destMat == Multimaterial) then
|
|
(
|
|
-- performs this on each submaterial
|
|
for k = 1 to destMat.materialList.count do
|
|
(
|
|
if destMat.materialList[k] != undefined then
|
|
(
|
|
convertMaterialChangingBitmap destMat.materialList[k]
|
|
)
|
|
)
|
|
)
|
|
-- else no convertible material
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- This function helps to convert bitmap for an object from max Bitmap to nel BitmapTexture. This operate on all selected objects
|
|
fn convertMaxBitmapToNelBitmapForSelection =
|
|
(
|
|
for i = 1 to selection.count do
|
|
(
|
|
if (selection[i].material != undefined) then
|
|
(
|
|
convertMaterialChangingBitmap selection[i].material
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- a MacroScript That performs a call to convertMaxBitmapToNelBitmapForMesh
|
|
|
|
macroScript ConvertMaxBitmapToNelBitmapMacroScript category:"NEVRAX Tools" tooltip:"Convert all material of the selection so that they use Nel Bitmap instead of max ones"
|
|
(
|
|
convertMaxBitmapToNelBitmapForSelection()
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Select a slot in a NeL bitmap
|
|
fn selectNelBitmap nelBitmap bitmapIndex =
|
|
(
|
|
if (classOf nelBitmap == NelBitmapTexture) then
|
|
(
|
|
print "selecting bitmap : " + bitmapIndex as string
|
|
local srcBitmapName
|
|
if bitmapIndex == 1 then ( srcBitmapName = nelBitmap.bitmap1FileName )
|
|
if bitmapIndex == 2 then ( srcBitmapName = nelBitmap.bitmap2FileName )
|
|
if bitmapIndex == 3 then ( srcBitmapName = nelBitmap.bitmap3FileName )
|
|
if bitmapIndex == 4 then ( srcBitmapName = nelBitmap.bitmap4FileName )
|
|
if bitmapIndex == 5 then ( srcBitmapName = nelBitmap.bitmap5FileName )
|
|
if bitmapIndex == 6 then ( srcBitmapName = nelBitmap.bitmap6FileName )
|
|
if bitmapIndex == 7 then ( srcBitmapName = nelBitmap.bitmap7FileName )
|
|
if bitmapIndex == 8 then ( srcBitmapName = nelBitmap.bitmap8FileName )
|
|
|
|
|
|
-- If not present takes the first bitmap
|
|
if srcBitmapName == "" then
|
|
(
|
|
srcBitmapName = nelBitmap.bitmap1FileName
|
|
)
|
|
if srcBitmapName == undefined then
|
|
(
|
|
srcBitmapName = ""
|
|
)
|
|
print "fileName = " + srcBitmapName
|
|
nelBitmap.bitmap.fileName = srcBitmapName
|
|
nelBitmap.currSelectedTextureSet = bitmapIndex
|
|
NelReloadTexture nelBitmap.bitmap
|
|
)
|
|
else
|
|
(
|
|
if nelBitmap != undefined then
|
|
(
|
|
print "selecting bitmap : not a NelBitmapTexture"
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Select one bitmap in a nel MultiBitmap for the given material, and setup it as the current displayed bitmap
|
|
fn selectNelBitmapInMaterial destMat bitmapIndex =
|
|
(
|
|
-- we just takes the bitmap from the given bitmap or the bitmap from the slot 0 if it doesn't exist
|
|
if (classOf destMat == NelMaterial) then -- is it a NelMaterial ?
|
|
(
|
|
print "selecting textures in a NelMaterial"
|
|
selectNelBitmap destMat.tTexture_1 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_2 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_3 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_4 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_5 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_6 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_7 bitmapIndex
|
|
selectNelBitmap destMat.tTexture_8 bitmapIndex
|
|
)
|
|
else if (classOf destMat == StandardMaterial) then
|
|
(
|
|
print "selecting textures in a StandardMaterial"
|
|
for j = 1 to 12 do
|
|
(
|
|
selectNelBitmap destMat.maps[j] bitmapIndex
|
|
)
|
|
)
|
|
else if (classOf destMat == Multimaterial) then
|
|
(
|
|
print "selecting textures in a Multimaterial"
|
|
-- performs this on each submaterial
|
|
for k = 1 to destMat.materialList.count do
|
|
(
|
|
if destMat.materialList[k] != undefined then
|
|
(
|
|
selectNelBitmapInMaterial destMat.materialList[k] bitmapIndex
|
|
)
|
|
)
|
|
)
|
|
else
|
|
(
|
|
print "no convertible materials :" + (classOf destMat) as string
|
|
)
|
|
)
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
|
|
fn selectNelBitmapInSelection bitmapIndex =
|
|
(
|
|
for n = 1 to selection.count do
|
|
(
|
|
if selection[n].material != undefined then
|
|
(
|
|
selectNelBitmapInMaterial selection[n].material bitmapIndex
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
----------------------------------------------------------------------------------------------------------------
|
|
-- Macro scripts that performs the selection of a set of bitmaps
|
|
macroScript SelectNelBitmapSet1 category:"NEVRAX Tools" tooltip:"Select the first set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 1
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet2 category:"NEVRAX Tools" tooltip:"Select the second set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 2
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet3 category:"NEVRAX Tools" tooltip:"Select the third set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 3
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet4 category:"NEVRAX Tools" tooltip:"Select the fourth set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 4
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet5 category:"NEVRAX Tools" tooltip:"Select the fifth set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 5
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet6 category:"NEVRAX Tools" tooltip:"Select the sixth set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 6
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet7 category:"NEVRAX Tools" tooltip:"Select the seventh set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 7
|
|
)
|
|
|
|
macroScript SelectNelBitmapSet8 category:"NEVRAX Tools" tooltip:"Select the eigth set of bitmap for the selected meshs"
|
|
(
|
|
selectNelBitmapInSelection 8
|
|
)
|
|
|
|
|