툰붐 스토리보드 프로에서 기본 제공하는 스크립트.
TB_3DReport.js 스크립트의 기능은 다음과 같습니다.
이 스크립트는 스토리보드 프로 프로젝트 또는 샷, 패널에서 사용된 3D 에셋 목록을 생성하는 스크립트입니다.
/*
-------------------------------------------------------------------------------
Name: TB_3DReport.js
Description: Creates a report listing all 3D assets used.
Usage:
Author: Lori Sponagle
Created: v01 2015/08/15
Copyright: (c) Toon Boom Animation 2015
-------------------------------------------------------------------------------
*/
function list3dAssets()
{
var maxNumLines = 40; ---->>> 최대 라인 수 (짧은 요약 메시지에 표시할 최대 라인 수를 설정합니다.)
var d = new Dialog;
d.title = "3D Asset Report";
var cb = new CheckBox;
cb.text = "Output to File";
cb.checked = false;
d.add( cb);
var gOption = new GroupBox;
gOption.title = "List all 3D asssets by : "
d.add( gOption );
var perProject = new RadioButton;
perProject.text = "per Project";
var perShot = new RadioButton;
perShot.text = "per Shot";
var perPanel = new RadioButton;
perPanel.text = "per Panel";
perProject.checked = true;
gOption.add( perProject );
gOption.add(perShot);
gOption.add(perPanel);
var rc = d.exec();
if ( rc )
{
var outFile="";
if ( cb.checked == true )
{
outFile = FileDialog.getSaveFileName("", "Please specify the 3D report filename.");
}
//System.println( outFile );
var panelList = new Array(0);
var sb = new StoryboardManager;
// Collect the desired panelList
if ( perProject.checked )
{
var nbPanels = sb.numberOfPanelsInProject();
for ( var i = 0; i < nbPanels; ++i )
panelList.push( sb.panelInProject(i) );
}
else if ( perShot.checked )
{
var selMgr = new SelectionManager;
var sceneSel = selMgr.getSceneSelection();
if ( sceneSel.length > 0 )
{
var sceneId = sceneSel[0];
var nbPanels = sb.numberOfPanelsInScene( sceneId );
for ( var i = 0; i < nbPanels; ++i )
panelList.push( sb.panelInScene(sceneId, i) );
}
}
else
{
var selMgr = new SelectionManager;
var panelSel = selMgr.getPanelSelection();
if ( panelSel.length > 0 )
{
var panelId = panelSel[0];
panelList.push( panelId);
}
}
// Format the report
//
var foundLength = 0;
if ( panelList.length > 0 )
{
var lm = LayerManager();
var fullMessage = "";
var shortMessage = "";
for ( var i =0; i < panelList.length; ++ i )
{
var panelId = panelList[i];
for ( var j = 0; j < lm.numberOfLayers( panelId) ; ++j )
{
if ( lm.is3DLayer( panelId, j ) )
{
foundLength +=4;
panelReport = "Scene " + sb.nameOfScene( sb.sceneIdOfPanel( panelId)) +
" Panel " + sb.nameOfPanel( panelId ) + " has 3D object : "
+ "\n" + lm.getLayerDrawingName( panelId, j, true ) + "\n\n" ;
fullMessage += panelReport;
if ( foundLength < maxNumLines )
{
shortMessage += panelReport;
}
}
}
}
}
if ( foundLength == 0 )
fullMessage = shortMessage = "No 3D assets found";
if ( foundLength < maxNumLines )
MessageBox.information( shortMessage);
else
{
shortMessage += "List is truncated. See Message Log for full report.\n"
MessageBox.information(shortMessage);
}
MessageLog.trace( fullMessage);
if ( outFile != "" )
{
var report= new File(outFile);
report.open(2);
report.write( fullMessage );
report.close();
}
}
}
복집한 프로젝트에서 3D를 사용한 씬과 패널을 쉽게 찾을 수 있다면 수정을 해야 할 경우 작업이 편리한 이점이 있습니다.
아무래도 3D 데이터라서 시스템에 과부하가 걸리는 일이 발생할지도 모릅니다. 아래와 같이 데이터가 많은 프로젝트라면 더더욱.
3D 오브젝트가 화면을 꽉 채우는 샷인만큼 무거운 데이터로 인해 저사양 컴퓨터에서는 조금 버벅거리는 현상이 발생합니다. 이 프로젝트에서 3D는 이 씬 뿐만 아니라 다은 씬과 패널에도 상당히 많이 사용되고 있습니다.
이렇게 다양한 씬과 패널에 사용한 3D 오브젝트를 찾고 싶을 때, TB_3DReport.js 스크립트를 사용합니다.
스토리보드 프로 스크립트를 불러오는 방법은 "툰붐 스토리보드프로 스크립트 1탄!"을 참고하세요.
per Panel을 선택했을 때.
해당 패널에 사용된 3D 오브젝트의 정보가 표시됩니다.
Output to File을 선택하고 per Project를 선택했을 때.
저장할 장소를 선택하는 팝업 창에서 파일 이름을 입력하고 save를 클릭합니다.
팝업 창에 리스트가 표시되고 OK 버튼을 클릭하면 파일로 저장됩니다.
저장한 파일을 오픈하면 3D 오브젝트가 사용된 씬과 패널을 쉽게 찾을 수 있습니다.
2024.06.07 - [툰붐] - 툰붐 스토리보드프로 스크립트 1탄! 패널 익스포트 비트맵 이미지
스토리보드 감독에게 하모니를 쥐어준다면? 'My Wife The Monster' (1) | 2024.06.18 |
---|---|
툰붐 하모니 24, 스토리보드 프로 24로 만드는 The Cloud Train 비하인드 스토리 (1) | 2024.06.12 |
툰붐 스토리보드프로 스크립트 1탄! 패널 익스포트 비트맵 이미지 (1) | 2024.06.07 |
크리스티나 박(박승연) | 스토리보드 아티스트 만나보기 (0) | 2024.05.30 |
더 페스트를 만든 최정우 감독의 리깅에 대하여 (0) | 2024.05.08 |