본문 바로가기

자막

VSFilterMod에서 $img 태그의 버그 내용 및 해결 방법

2010년 8월 11일 현재, VSFilterMod(2010년 5월 8일 오전 4시 46분에 생성된 버전 - 현재 공식 최신 버전)에는 $img 태그에 버그가 있습니다. 이 글에서는 $img 태그의 간단한 사용법과 버그 내용 및 그 해결 방법에 관해 설명하고자 합니다.

1. $img 태그 사용법
$img 태그는 ASS 스크립트에서 글자나 벡터 그림을 어떤 색깔로 칠하는 대신 그림 파일로 채우고 싶을 때 사용됩니다.
$img에서 $는 1, 2, 3, 4 가운데 하나이며, 각 숫자가 뜻하는 바는 $c 태그의 경우와 같습니다. 따라서 다음과 같이 네 종류의 img 태그가 사용 가능합니다.

1img : 기본 색 대신 그림 파일 사용. 글자나 도형의 내부를 그림 파일로 채우고 싶을 때 사용합니다.
2img : 보조 색 대신 그림 파일 사용. 보조 색은 가라오케 효과 등에서 기본 색 대신 사용되는 내부 색깔입니다.
3img : 테두리 색 대신 그림 파일 사용.
4img : 그림자 색 대신 그림 파일 사용.

그림 파일은 현재 PNG 형식만 사용가능합니다.(24 또는 32비트 PNG, 투명 채널 유무 상관없음.) 그림 파일이 채우려는 글자나 도형보다 작으면 바둑판식으로 채워집니다.

태그는 다음 형식 가운데 하나를 사용하면 됩니다.

\1img(PNG 파일 경로)
\2img(PNG 파일 경로)
\3img(PNG 파일 경로)
\4img(PNG 파일 경로)
\1img(PNG 파일 경로, 가로 상대 위치, 세로 상대 위치)
\2img(PNG 파일 경로, 가로 상대 위치, 세로 상대 위치)
\3img(PNG 파일 경로, 가로 상대 위치, 세로 상대 위치)
\4img(PNG 파일 경로, 가로 상대 위치, 세로 상대 위치)

가로, 세로 상대 위치는 옮길 픽셀 수를 지정해 주면 됩니다.(보기 - 왼쪽으로 20픽셀, 아래로 10픽셀 옮길 경우 : -20, 10)

PNG 파일 경로는 절대 경로나 상대 경로로 지정해 주면 되며, \ 대신 /를 사용하여야 합니다. 따라서 C:\Images\A.png는 C:/Images/A.png로 써야 합니다.
이를테면, ASS 스크립트 파일이 C:\ASS\ 폴더에 있고 A.png 그림 파일이 C:\ASS\Images\ 폴더에 있을 경우,
절대 경로는 C:/ASS/Images/A.png와 같이 파일의 전체 경로를 쓰는 것을 말하며,
상대 경로는 Images/A.png와 같이 스크립트 파일이 들어 있는 폴더를 기준으로 하여 대상 파일의 경로를 쓰는 것을 말합니다.

보기 : \1img(C:/ASS/Images/A.png, 0, 0) 또는 \3img(Test.png)

2. VSFilterMod 버그 내용
2010년 5월 8일에 생성된 VSFilterMod에서는 PNG 파일의 경로를 인식할 때 상대 경로로 지정되어 있으면 제대로 인식하지만 절대 경로로 지정되어 있으면 제대로 인식하지 않습니다.
따라서 절대 경로로 PNG 파일 위치가 쓰인 $img 태그가 들어 있는 ASS 파일을 재생하면 $img 태그가 적용되지 않습니다.
상대 경로로 PNG 파일 위치가 쓰인 $img 태그가 들어 있는 ASS 파일을 재생할 경우,
Avisynth나 VirtualDub에서는 제대로 재생되지만
Aegisub에서는 수정하고 있는 ASS 파일을 Windows 임시 폴더에 따로 저장하기 때문에 Windows 임시 폴더에 해당 PNG 파일이 없는 경우 제대로 재생되지 않습니다.

3. 버그 해결 방법
Avisynth나 VirtualDub으로 인코딩하려면 PNG 파일 경로를 상대 경로로 표시하여 ASS 파일과 같은 폴더에 놓고 자막을 입히면 됩니다.
Aegisub로 수정하려면 ASS 파일이 있는 폴더와 Windows 임시 폴더(탐색기의 주소 표시줄에 %TEMP%라고 입력하면 나옵니다) 두 곳 모두에 사용할 PNG 파일을 넣은 뒤 PNG 파일을 상대 경로로 표시하여 작업하면 됩니다.

또는 제가 직접 해당 버그를 부분을 고쳐 컴파일한 VSFilterMod.dll을 사용해도 됩니다. 이를 Aegisub에서 사용할 경우, 상대 경로를 이용하면 Windows 임시 폴더가 참조될 수 있으므로 PNG 파일의 경로를 절대 경로로 표시하여 PNG 파일을 Windows 임시 폴더에 따로 복사할 필요가 없게 만드는 것이 나을 것입니다. 32-bit Windows 7에서는 정상 작동하리라 예상되지만, 다른 운영체제에서의 작동은 시험해 보지 않았습니다. 제대로 작동한다면 다른 운영체제에서 사용해도 무방합니다.
짧게 말해서, 절대 경로 참조 부분을 고친 아래의 VSFilterMod를 사용하고, img 태그를 쓸 때 절대 경로로 PNG 파일을 가리키면 됩니다.

직접 소스 파일에서 고치고 싶은 분은 vsfiltermod의 src\subtitles\RTS.cpp의 2144~2150번째 줄이 주석 처리되어 있는데 이 부분을 주석 처리 해제해서 컴파일하면 됩니다.


'자막' 카테고리의 다른 글

SPiCa 2차 자막 ASS 파일  (3) 2010.07.27