ASS 오버라이드 태그 제거
또는 자막 텍스트를 붙여넣으세요
옵션
상자 하나에 선택지 일곱, 각각 자기 페이지가 있습니다. 기울임, 굵게, 밑줄, 색은 그 한 종류의 범위만 지우고 줄의 나머지 스타일은 그대로 둡니다. 모두는 도구가 모델링하는 모든 범위, 즉 그 네 가지에 가라오케 타이밍까지 지우면서 텍스트의 나머지는 건드리지 않습니다. HTML은 같은 일을 한 뒤 도구가 모델링하지 않아 텍스트에 남아 있던 꺾쇠 표기까지 쓸어 냅니다. VTT의 <v Bob> 화자 태그나 <c.className> 같은 것입니다. ASS는 대신 덮어쓰기 블록에 같은 일을 하여, 파싱할 때 인식하지 못한 {...} 코드를 지웁니다. {\fad(500,500)} 같은 것입니다. 이 페이지는 제목이 말하는 값을 상자에 채우고 다른 값은 나열하지 않습니다.
타이밍을 어떤 프레임 레이트 기준으로 세는지 정합니다. 형식 안내 페이지에서는 MicroDVD가 이 값을 필요로 합니다. 시간을 프레임 번호로 저장하기 때문입니다. 프레임 레이트 페이지에서는 이 파일이 어느 프레임 레이트를 기준으로 만들어졌는지, 즉 자막을 만든 판본의 값을 뜻하며, 페이지의 두 번째 상자에는 이 자막을 사용할 영상의 프레임 레이트를 넣습니다. 흔히 쓰는 값은 23.976, 24, 25, 29.97, 30, 50, 59.94, 60입니다. 잘못 넣으면 시간축 전체가 어긋나고, 프레임 레이트 페이지에서는 고정된 양이 아니라 비율로 어긋납니다.
이 페이지는 ASS나 SSA 파일에서 오버라이드 코드를 걷어냅니다. 서식 범위, 노래방 타이밍, 텍스트에 남아 있던 효과 블록, 그리고 위치 지정까지 지웁니다. 결과는 서식 없는 시간 기록 텍스트입니다. 글자와 큐 시각, 파일 구조는 남고 줄은 이름 있는 스타일이 정하는 자리에 놓입니다.
ASS는 가장 많은 것을 말할 수 있는 형식이고, 말할 수 있는 것의 대부분을 줄 텍스트 안의 오버라이드 코드로 적습니다. 그중 일부는 도구가 모델링하는 서식입니다. `{\i1}`, `{\b1}`, `{\c&H...&}`, `{\k50}`이 그렇습니다. 나머지는 모델링하지 않는 효과입니다. 페이드, 이동, 확대, 흐림이 모두 같은 모양의 블록으로 적힙니다. 도구가 읽지 못하는 마크업을 먹어 버리면 데이터를 잃는 일이므로, 읽는 동안 그 블록은 일부러 텍스트에 그대로 둡니다. 그것을 쓸어내는 페이지가 바로 이것입니다.
위치 지정도 여기서 지워지며, 이것이 단순히 마크업만 지우는 것이 아닌 유일한 부분입니다. 줄이 어디에 놓이는지는 글자 위의 범위가 아니라 이벤트 전체의 성질이므로, 위치가 지정된 줄은 이름 있는 스타일이 놓는 자리로 돌아갑니다. 그래야 출력이 진짜로 평범해집니다. 이름 있는 스타일시트 자체는 그대로 둡니다. 스타일이 굵게인 큐는 계속 굵게 보입니다. 굵음이 글자가 아니라 스타일에 속하기 때문입니다.
코드 하나는 남고, 페이지가 그것을 숨기지 않고 알려 줍니다. `{\an8}` 같은 9칸 정렬은 쓰인 그대로 보존됩니다. 그것은 가로 위치와 세로 위치를 함께 담는데, 도구의 정렬 개념은 왼쪽·가운데·오른쪽만 덮어서 나머지 절반을 둘 곳이 없습니다. 절반만 이해하면 왕복 변환이 틀어지는 파일이 됩니다. 업로드는 없습니다. 지울 것이 없는 파일은 바이트 단위로 그대로 돌아옵니다.
예시
서식과 남아 있던 효과 블록
입력
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\fad(500,500)}{\i1}hello{\i0}
결과물
[Script Info]
Title: fade
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello
`{\fad(500,500)}`은 줄이 양쪽으로 0.5초씩 페이드 인·아웃되도록 재생기에 요청하는 코드입니다. 도구가 모델링하지 않아서 텍스트에 남아 있다가 이 실행에서 쓸려 나갔고, 옆의 이탤릭 짝도 같은 길로 갔습니다. 출력 어디에도 페이드가 있었다는 기록은 남지 않습니다.
위치가 지정된 줄
입력
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}hello there
결과물
[Script Info]
Title: position
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,hello there
줄은 더 이상 어디에 놓이라고 지시받지 않으므로 그 이벤트에 지정된 스타일이 놓는 자리로 돌아갑니다. 이 실행에서 단순히 마크업을 지우는 것이 아닌 유일한 부분이며, 서식을 없애는 것을 넘어 파일을 진짜 평범하게 만들어야 할 때 이 페이지가 맞는 이유입니다.
남아 있는 9칸 정렬
입력
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an8}hello there
결과물
[Script Info]
Title: alignment
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,0,0,0,0,100,100,0,0,1,1,1,2,10,10,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,{\an8}hello there
이 줄은 바뀌지 않고 돌아오며 그것은 빠뜨린 것이 아닙니다. `{\an8}`은 위쪽과 가운데를 동시에 말하는데 도구의 정렬은 왼쪽·가운데·오른쪽만 덮습니다. 세로 절반을 둘 자리가 없으므로 태그를 절반만 이해하는 대신 통째로 보존합니다. 위치 코드는 지워지고 이 정렬 코드는 지워지지 않습니다.
자주 묻는 질문
9칸 정렬 태그가 이 페이지에서 살아남는 이유는 무엇인가요?
도구가 그것을 정확히 표현할 수 없기 때문입니다. `{\an8}` 같은 정렬은 9칸 가운데 하나를 가리키며 가로 위치와 세로 위치를 동시에 담습니다. 반면 도구의 정렬은 왼쪽·가운데·오른쪽만 있습니다. 가로 절반만 저장하고 나머지를 버리면 파일의 왕복 변환이 틀어지므로 태그를 통째로 보존합니다. 위치 코드는 지워지고 정렬 코드는 지워지지 않으며, 페이지는 그것을 숨기지 않고 알려 줍니다.
오버라이드 블록은 무엇이고 왜 텍스트 안에 있나요?
줄 텍스트 안의 중괄호 사이에 적힌 지시 묶음으로, 재생기에게 그 줄의 서식을 바꾸거나 애니메이션을 넣거나 페이드·이동을 하라고 말합니다. 도구는 흔한 서식 하위 집합을 모델링해 자기 구조로 읽지만 나머지는 찾은 자리에 그대로 둡니다. 페이드, 이동, 흐림 같은 것은 버리지 않고 그대로 둡니다. 읽는 쪽이 이해하지 못하는 마크업을 조용히 버리면 데이터를 잃는 일이기 때문입니다. 이 페이지에서 그것들이 마침내 사라집니다.
오버라이드 코드를 지우면 타이밍이나 글자가 달라지나요?
아니요. 글자는 바이트 단위로 같게 돌아오고, 모든 큐가 시작·끝 시각을 밀리초까지 유지하며, 큐 순서도 파일의 것입니다. 큐 안의 줄 바꿈은 서식이 아니라 큐의 일부이므로 파일이 둔 자리에 남습니다. 달라지는 것은 글자 둘레의 지시이고, 경우에 따라 줄이 화면 어디에 놓이는지입니다.
코드를 지운 뒤에도 출력이 제대로 재생되나요?
네, 오히려 전보다 예측 가능합니다. 재생기가 이해하지 못하는 오버라이드 코드는 잘해야 무시되고 못하면 잘못 해석되며, 특히 효과 코드는 재생기마다 해석이 갈립니다. 서식 없는 시간 기록 텍스트에는 그런 모호함이 없습니다. 다만 파일이 특정 장면 위에 캡션을 얹으려고 위치 지정에 기대고 있었다면 그 위치는 사라지고 줄은 스타일이 정하는 자리에 놓입니다.
스타일시트의 이름 있는 스타일도 함께 지우나요?
아니요. 스타일시트와 각 큐가 가리키는 스타일은 있던 그대로 둡니다. 이 페이지는 줄 텍스트 안에 적힌 코드를 다루며, 이름 있는 스타일이 굵게인 큐는 실행 뒤에도 굵게 보입니다. 굵음이 줄 자체의 텍스트가 아니라 스타일에서 오기 때문입니다. 스타일시트를 정리하는 일은 별개의 작업이고 아직 그 페이지는 없습니다.
ASS와 SSA에서만 쓸 수 있나요, SRT에도 쓸 수 있나요?
사이트가 읽는 형식이라면 무엇이든 넣을 수 있습니다. SRT나 WebVTT 파일에서는 앞쪽 절반이 여전히 일합니다. 서식 범위가 사라지기 때문입니다. 중괄호 블록은 그 형식에 존재하지 않으므로 쓸어내기는 지울 것을 찾지 못합니다. 서식도 중괄호 블록도 없는 파일은 바이트 단위로 그대로 돌아오며, 할 일이 없던 실행의 정직한 결과입니다.