--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MaterialChanger

2010年12月04日 05:33

シーン内のマテリアルの一括変換用スクリプト

materialchanger

頼まれたので作りました。
よかったらどぞ。
全然大したものじゃないですが。
zipとかにしてダウンロードできるようにした方が良いのかしら?
でもやり方がわかりませんす

rollout MaterialsChanger "まてりあーるちゃん" width:168 height:168
(
 groupBox diff_grp "Diffuse" pos:[8,8] width:152 height:40
 groupBox selfillum_grp "Self Illumination" pos:[8,52] width:152 height:44
 groupBox bump_grp "Bump" pos:[8,96] width:152 height:64
 radioButtons diff_rdo "" pos:[72,24] width:86 height:16 enabled:true labels:#("On", "Off") default:1 columns:2
 radioButtons selfillum_rdo "" pos:[72,72] width:78 height:16 enabled:true labels:#("100", "0") default:1 columns:2
 radioButtons bump_rdo "" pos:[72,112] width:86 height:16 enabled:true labels:#("On", "Off") default:1 columns:2
 spinner bump_spn "" pos:[101,136] width:48 height:16 range:[0,100,0] type:#integer
 label amount_lbl "Amount ...." pos:[40,136] width:56 height:16
 label lbl12 "Map" pos:[16,24] width:24 height:16
 label lbl13 "Map" pos:[16,112] width:24 height:16
 label lbl15 "Amount" pos:[16,72] width:40 height:16
 
 global SelfIllumSub
 global DiffuseSub
 global BumpSub
 global BumpAmountSub
 
 -- ディフューズマップ 
on  diff_rdo changed stat do
(
 case  diff_rdo.state of
 (
  1: (
    fn DiffuseSub m1 =
    (
     if classof m1 == Multimaterial then
     (
      for i = 1 to m1.numsubs do
      (
       if m1.materialList[i] != undefined then
       (
        DiffuseSub(m1.materialList[i])
       )
      )
     )
     else
     (
      try(m1.diffuseMapEnable = on) catch()
     )
    )
    for mat in sceneMaterials do
    (
     DiffuseSub(mat)
    )
   )
  2: (
    fn DiffuseSub m1 =
    (
     if classof m1 == Multimaterial then
     (
      for i = 1 to m1.numsubs do
      (
       if m1.materialList[i] != undefined then
       (
        DiffuseSub(m1.materialList[i])
       )
      )
     )
     else
     (
      try(m1.diffuseMapEnable = off) catch()
     )
    )
    for mat in sceneMaterials do
    (
     DiffuseSub(mat)
    )
   )
 )

 -- セルフイルミネーション
 on selfillum_rdo changed stat do
(
 case selfillum_rdo.state of
 (
  1: (
    fn SelfIllumSub m2 =
    (
     if classof m2 == Multimaterial then
     (
      for i = 1 to m2.numsubs do
      (
       if m2.materialList[i] != undefined then
       (
        SelfIllumSub(m2.materialList[i])
       )
      )
     )
     else
     (
      try(m2.selfIllumAmount = 100) catch()
     )
    )
    for mat in sceneMaterials do
    (
     SelfIllumSub(mat)
    )
   )
  2: (
    fn SelfIllumSub m2 =
    (
     if classof m2 == Multimaterial then
     (
      for i = 1 to m2.numsubs do
      (
       if m2.materialList[i] != undefined then
       (
        SelfIllumSub(m2.materialList[i])
       )
      )
     )
     else
     (
      try(m2.selfIllumAmount = 0) catch()
     )
    )
    for mat in sceneMaterials do
    (
     SelfIllumSub(mat)
    )
   )
 )

 
 -- バンプ
on  bump_rdo changed stat do
(
 case  bump_rdo.state of
 (
  1: (
    fn BumpSub m3 =
    (
     if classof m3 == Multimaterial then
     (
      for i = 1 to m3.numsubs do
      (
       if m3.materialList[i] != undefined then
       (
        BumpSub(m3.materialList[i])
       )
      )
     )
     else
     (
      try(m3.bumpMapEnable = on) catch()
     )
    )
    for mat in sceneMaterials do
    (
     BumpSub(mat)
    )
   )
  2: (
    fn BumpSub m3 =
    (
     if classof m3 == Multimaterial then
     (
      for i = 1 to m3.numsubs do
      (
       if m3.materialList[i] != undefined then
       (
        BumpSub(m3.materialList[i])
       )
      )
     )
     else
     (
      try(m3.bumpMapEnable = off) catch()
     )
    )
    for mat in sceneMaterials do
    (
     BumpSub(mat)
    )
   )
 )

 -- バンプ量
 on bump_spn changed val do
(
 fn BumpAmountSub m4 =
 (
  if classof m4 == Multimaterial then
  (
   for i = 1 to m4.numsubs do
   (
    if m4.materialList[i] != undefined then
    (
     BumpAmountSub(m4.materialList[i])
    )
   )
  )
  else
  (
   try(m4.bumpMapAmount = bump_spn.value) catch()
  )
 )
 for mat in sceneMaterials do
 (
  BumpAmountSub(mat)
 )

 
)

 CreateDialog MaterialsChanger 168 168

スポンサーサイト


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://13log.blog6.fc2.com/tb.php/47-370e858b
    この記事へのトラックバック


    最新記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。