최근 수정 시각 : 2024-04-23 12:35:04

썰챗

<colbgcolor=#FF7300><colcolor=#000> 썰챗 - 영상툰
파일:썰챗_프로필.jpg
채널 개설일 2022년 6월 1일
제작팀/성별 보설(남성), 키키(여성)
구독자 27만명[A]
링크 파일:유튜브 아이콘.svg 파일:틱톡 아이콘.svg

1. 개요2. 등장 3D 모델3. 썰챗 문서 작성 팁
3.1. PC 작성 팁
3.1.1. 영상 캡처3.1.2. 모델 이름 변경

[clearfix]

1. 개요

대한민국의 유튜브 채널 '썰챗 - 영상툰'에 관한 문서.

2. 등장 3D 모델

파일:상세 내용 아이콘.svg   자세한 내용은 썰챗/등장인물 문서
번 문단을
부분을
참고하십시오.

3. 썰챗 문서 작성 팁

해당 문단은 썰챗 문서 편집을 원하는 사람이 보면 도움이 될 만한 내용을 작성한다.

3.1. PC 작성 팁

일단 작성 팁은 대부분 PC를 기준으로 작성되었고, 모바일 기기로 작성하는 것은 아무래도 제약이 많은 편이니 기본적으로 Windows 운영체제가 깔린 컴퓨터나 노트북으로 작성하는 것을 가장 추천한다.

3.1.1. 영상 캡처

썰챗에는 등장하는 모델이 많다 보니 각 이미지를 문서에 정리하기 위해서는 수많은 캡처가 필요하다.
하지만 대부분 쇼츠 영상으로 되어 있어 원하는 장면에 정지하기 어렵고,
모델들이 워낙 아크로바틱하게 움직이니 깔끔한 캡처는 쉽지 않을 것이다.
이것을 편리하게 할 수 있도록 Chrome 확장 프로그램의 쇼츠 블록과 스크린샷 기능을 활용한다.
구글 크롬 설치와 크롬의 확장 프로그램 설치에 대한 설명은 생략하고,
chrome 웹 스토어에서 'Youtube-shorts block', 'Screenshot YouTube' 2개의 확장 프로그램을 검색해 설치한다.
파일:썰챗_영상_캡처.png
설치가 완료된 후 썰챗 쇼츠 영상 하나를 재생시켜보면 쇼츠에서 재생 구간을 마음대로 조절 가능한 일반 동영상으로 바뀌고, 'Screenshot'이라고 써져 있는 버튼이 생길 것이다.
이제 영상 화질을 최고 화질로 바꾼 뒤 원하는 구간에서 멈추고 Screenshot 버튼을 누르면 본인 컴퓨터 다운로드 폴더에 영상 원본에 가까운 선명한 이미지를 받을 수 있다.

3.1.2. 모델 이름 변경

썰챗 문서의 모델 이름은 '@썰챗=@' 형식을 사용하는데, 나무위키 매개변수 시스템을 이용한 꼼수라고 보면 된다.
물론 제대로 된 매개변수 기능은 없고 편집기에 작성된 '@썰챗=@'가 결과 화면에서 숨겨지는 것 밖에는 없다.
하지만 그 점을 활용해 편집 시 '@썰챗=@'로 둘러쌓여 있는 것은 모델 이름이라는 확실한 구분을 할 수 있고,
특히 대부분의 모델 이름이 아직 정해지지 않은 썰챗은 이름 변경이 자주 발생할 여지가 있는데 그럴 경우 '찾기 및 바꾸기'로 변경 전 이름으로 작성된 글을 모두 바꾸면서 '파일:차수아.png' 같이 이미 업로드 되어 변경이 불가한 파일명 등은 건너뛸 수 있다.

파일:모델_이름_변경.png
변경 방법은 편집기 내부 아무 곳이나 클릭한 뒤 Ctrl+H[2]를 눌러서 찾기 및 바꾸기 창이 뜨면 '찾기'란에 변경 전 이름을, '바꾸기'란에 변경할 이름을 '@썰챗=@'를 포함시켜 입력 후 모두 바꾸기(Ctrl+<Alt>+Enter)를 누른다.
위 이미지처럼 만약 '@썰챗=@'를 포함시키지 않고 바꿀 경우 파일명이 바뀌어 이미지 참조를 못하게 되거나 해당 글자가 포함된 이름과는 관련 없는 글이 바뀔 수 있으니 반드시 '@썰챗=@'를 포함시켜 바꾼다.

그런데 이렇게 변경된 모델 이름이 변경 전과 비교했을 때 만약 받침 여부, 즉 종성이 다를 경우 '은', '는', '이', '가' 등의 조사까지는 변경을 못하니 글이 어색해지는 문제가 발생한다.
일일이 조사를 찾아서 바꾸기에는 상당히 번거로울테니 편리하게 바꾸기 위해 파이썬 코드를 이용한다.
일단 본인 컴퓨터에 'Spyder' 등의 파이썬 프로그램을 설치해두고,
아래는 생성형 인공지능(ChatGPT)의 도움을 받아 작성한 코드다. 통째로 복사해서 사용하도록 하자.
#!syntax python
target_tup = ("@", "@]]")
josa_tup = (("은", "는"), ("이", "가"), ("을", "를"), ("과", "와"), ("과는", "와는"),
            ("아", "야"), ("이나", "나"), ("이랑", "랑"), ("이다", "다"), ("이며", "며"), ("이여", "여"))
lr_tup = (("으로", "로"), ("으로서", "로서"), ("으로써", "로써"), ("으로부터", "로부터"))
punctuation = (" ", ".", ",", "!", "?", "(", "[")

input_file_path = r"C:\Users\user\Desktop\임시\test.txt"
output_file_path = r"C:\Users\user\Desktop\임시\result.txt"


def replace_josa(input_str, target_tup, josa_tup, lr_tup, punctuation):
    replaced_str = input_str
    for target_str in target_tup:
        idx = replaced_str.find(target_str)
        while idx != -1:
            start_idx = idx + len(target_str)
            end_index = min(replaced_str.find(i, start_idx) if replaced_str.find(
                i, start_idx) != -1 else len(replaced_str) for i in punctuation)
            if end_index == -1:
                josa = replaced_str[start_idx:]
            else:
                josa = replaced_str[start_idx:end_index]
            geulja = replaced_str[idx - 1]
            jongseong = 0xAC00 <= ord(geulja) <= 0xD7A3 and (
                ord(geulja) - 0xAC00) % 28
            replacement = None
            for tup in josa_tup:
                if josa in tup:
                    replacement = tup[int(jongseong == 0)]
                    break
            if replacement is None:
                for tup in lr_tup:
                    if josa in tup:
                        replacement = tup[int(jongseong in (0, 8))]
                        break
            if replacement:
                replaced_str = replaced_str[:start_idx] + \
                    replacement + replaced_str[start_idx + len(josa):]
            idx = replaced_str.find(target_str, start_idx)
    return replaced_str


with open(input_file_path, 'r', encoding='utf-8') as f:
    original_text = f.read()

modified_text = replace_josa(
    original_text, target_tup, josa_tup, lr_tup, punctuation)

with open(output_file_path, 'w', encoding='utf-8') as f:
    f.write(modified_text)

해당 코드는 'input_file_path'에 해당되는 'test.txt'파일에 있는 텍스트를 읽어 들여 'target_tup'내의 'target_str'을 찾아서 그 뒤의 조사를 올바르게 바꾼 뒤 'output_file_path'에 해당되는 'result.txt'파일로 만들어 내는 것이다.
'input_file_path'와 'output_file_path'는 사용자가 직접 주소를 수정하고 'input_file_path'에 맞게 'test.txt'파일을 만든 뒤 편집할 썰챗 문서를 편집기 또는 RAW 편집 상태의 글 전체를 복사해 붙여 넣어 저장 한다.[3]
'target_tup'내의 'target_str'에 해당되는 문자열들은 기본 모델 이름 형식인 '@썰챗=@' 뒤의 조사를 변경하기 위한 "@", 링크가 있는 '~썰챗=차수아@]]'같은 형식 뒤의 조사도 변경하기 위한 "@]]" 2개를 넣었고 원한다면 사용자가 더 추가할 수 있다.
'josa_tup'은 받침에 따른 조사를 모아둔 튜플[4], 'lr_tup'은 리을 예외가 있는 조사를 따로 모아둔 튜플[5], 'punctuation'은 'target_str'부터 해당 요소까지의 텍스트가 조사인지 판별하기 위한 공백이나 부호 등을 모아둔 튜플[6]로 이것들 역시 사용자가 더 추가할 수 있다.
'target_str' 없이 일반적인 글에 작성된 조사는 인식을 못하는 점 참고.


[A] 2024년 4월 9일 기준[2] 편집기 내부에 커서가 없이 Ctrl+H를 누르면 Chrome 기준으로 방문 기록이 나타날 것이다.[3] 예를 들어 r"C:\\Users\\user\\Desktop\\임시\\test.txt" 이것은 C 드라이브에서 'user'의 바탕화면에 있는 '임시' 폴더 내 'test.txt' 파일을 읽어들인다는 뜻이므로 바탕화면에 '임시' 폴더를 만들고 'test.txt' 파일을 새로 만든다.[4] 첫 번째가 받침이 있는 것, 두 번째가 받침이 없는 것[5] 첫 번째가 받침이 있는 것, 두 번째가 받침이 없거나 종성이 리을인 것[6] 예를 들어 공백은 "@썰챗=차수아@는 ", 느낌표는 "@썰챗=차수아@다!" 등