원리는 단순합니다. Alpha Image의 픽셀 비율에 맞게 Grid를 만들어 주고 Sprite로 연결했습니다.
작업에 도움 되셨으면 합니다. xsi 만쉐~
' GridImage v1.0
' 1. 먼저 필요한 이미지(ex.Alpha포함된 TGA파일)들을 Drag n Drop으로
' xsi view상에 떨굽니다.
' 2. 단축키 8번으로 explorer를 열고 좌측 상단의 Scene Root > Images
' 3. 그러면 방금 떨군 이미지 List 들이 쭉 보입니다.
' 4. Images(Sources)에 있는 리스트를 전부 선택.
' 5. 위와 같이 하셨으면 이제 스크립트를 실행하십시요.
' ---------------주의점------------------------------------------
' * 한글명 파일이나, 경로는 피하세요.
' * 숫자로 시작하는 파일은 영문으로 ACDsee 등에서 Batch Rename으로
' 바꿔주세요.
' ---------------------------------------------------
' by xart
Option Explicit
Dim oSel, oName, item
Dim X, Y
Set oSel = GetValue("SelectionList")
For Each item In oSel
oName = item.Name
CreatePrim "Grid", "MeshSurface", oName
SetValue oName & ".polymsh.geom.subdivu", 1
SetValue oName & ".polymsh.geom.subdivv", 1
X = GetValue("Sources." & oName & ".XRes")
Y = GetValue("Sources." & oName & ".YRes")
SetValue oName & ".grid.ulength", X
SetValue oName & ".grid.vlength", Y
CreateProjection oName, siTxtPlanarXZ, siTxtDefaultPlanarXZ, , "Texture_Projection"
ApplyShader "Sprite", , oName & "_Sprite" ,oName, siLetLocalMaterialsOverlap
SetValue "Sources.Materials.DefaultLib.Material.Name", oName
SetValue oName & ".Material." & oName & "_Sprite.alpha_threshold", 1
SIConnectShaderToCnxPoint "Sources." & oName, "Sources.Materials.DefaultLib." & oName & "." & oName & "_Sprite.matte"
SIConnectShaderToCnxPoint "Clips." & oName & "1", "Sources.Materials.DefaultLib." & oName & "." & oName & "_Sprite.input"
SetValue "Sources.Materials.DefaultLib." & oName & "." & oName & "_Sprite.use_matte", True
FreezeObj
Next
DeleteUnusedImageClips
xart0425
- 2008.10.17
- 20:58:59
나무, 건물 같은 쏘스에 Alpha Channel이 들어있는 TGA, Tiff 형식의 쏘스집이 있습니다.
배경 작업하다보면 원경은 모델링 하기보단 판낼로 쳐서 뽑기도 하는데 이때 도움되는 Script입니다.
예를 들어 506 * 704 size의 나무 쏘스가 있는데 이걸 판낼로 만들려면
Grid 꺼내서 이미지 비율과 같게 Grid Size를 맞추고 Shader, Projection 만들고 Texture 걸어줍니다.
이 작업을 수십개만 한다 해도 완전 노가다가 되죠.
그때 이 Script를 쓰면,
필요한 쏘스들을 XSI에 떨구고 실행하면 자동으로 Grid에 Setting 완료.
단지 아쉽다면 Alpha를 빼는 방식이 작업 상황에 따라 달라 꼭 Sprite 가 아닐 수도 있는데
여기선 Sprite로만 생성된다는...
나중에 실력이 되면 이미지형식별로, 노드 방식별로 선택해서 실행 되도록 만들면 어떻까 생각만 해봅니다.
