나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-11-19 11:52:31

썰챗

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


[clearfix]

1. 개요

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

2. 특징

무서운 이야기를 중심으로 다룬다.
그림 애니메이션으로 표현하는 보통의 영상툰과는 달리 썰챗은 VRChat이라는 가상현실 플랫폼을 이용한 3D 모델링으로 표현하는 독특한 방식으로 영상을 제작하는데,
구체적으로는 유니티 등의 프로그램으로 모델이나 맵을 제작한 뒤, VRChat에서 실현시켜 VR기기를 이용해 모션을 연기하고 편집하는 방식이다.
주로 스토리 및 VR연기는 보설이 담당하며 모델, 맵 제작은 키키가 담당한다. 링크
각 캐릭터 성우는 보설과 키키 둘 모두가 맡으며 음성 변조를 통해 다양한 모델의 목소리를 연기하고, 가끔 다른 사람이나 TTS를 사용하기도 한다.
사람들이 쉽게 보고 넘길 수 있는 이야기를 다루지만, 모델이나 맵에서 현실적인 부분을 자세히 연출하거나 대충 봐서는 인식하기 어려운 디테일한 요소를 볼 수 있는 것이 가장 큰 특징이다. 물론 디테일 요소 대부분이 썰챗 구독 부탁이다
초기에는 진지한 느낌이 강했지만 최근에는 여러 개그요소[2]를 넣어 공포스럽지만 개그스러운 느낌도 강해졌다.

3. 등장 3D 모델

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

4. 영상 목록

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

==# 썰챗 문서 작성 팁 #==
해당 문단은 썰챗 문서 편집을 원하는 사람이 보면 도움이 될 만한 내용을 작성한다.
===# PC 작성 팁 #===
일단 작성 팁은 대부분 PC를 기준으로 작성되었고, 모바일 기기로 작성하는 것은 아무래도 제약이 많은 편이니 기본적으로 Windows 운영체제가 깔린 컴퓨터나 노트북으로 작성하는 것을 가장 추천한다.
====# 영상 캡처 #====
썰챗에는 등장하는 모델이 많다 보니 각 이미지를 문서에 정리하기 위해서는 수많은 캡처가 필요하다.
하지만 대부분 쇼츠 영상으로 되어 있어 원하는 장면에 정지하기 어렵고,
모델들이 워낙 아크로바틱하게 움직이니 깔끔한 캡처는 쉽지 않을 것이다.
이것을 편리하게 할 수 있도록 Chrome 확장 프로그램의 쇼츠 블록과 스크린샷 기능을 활용한다.
구글 크롬 설치와 크롬의 확장 프로그램 설치에 대한 설명은 생략하고,
chrome 웹 스토어에서 'Youtube-shorts block', 'Screenshot YouTube' 2개의 확장 프로그램을 검색해 설치한다.
파일:썰챗_영상_캡처.png
설치가 완료된 후 썰챗 쇼츠 영상 하나를 재생시켜보면 쇼츠에서 재생 구간을 마음대로 조절 가능한 일반 동영상으로 바뀌고, 'Screenshot'이라고 써져 있는 버튼이 생길 것이다.
이제 영상 화질을 최고 화질로 바꾼 뒤 원하는 구간에서 멈추고 Screenshot 버튼을 누르면 본인 컴퓨터 다운로드 폴더에 영상 원본에 가까운 선명한 이미지를 받을 수 있다.
====# 모델 이름 변경 #====
썰챗 문서의 모델 이름은 '@썰챗=@' 형식을 사용하는데, 나무위키 매개변수 시스템을 이용한 꼼수라고 보면 된다.
물론 제대로 된 매개변수 기능은 없고 편집기에 작성된 '@썰챗=@'가 결과 화면에서 숨겨지는 것 밖에는 없다.
하지만 그 점을 활용해 편집 시 '@썰챗=@'로 둘러싸여 있는 것은 모델 이름이라는 확실한 구분을 할 수 있고,
특히 대부분의 모델 이름이 아직 정해지지 않은 썰챗은 이름 변경이 자주 발생할 여지가 있는데 그럴 경우 '찾기 및 바꾸기'로 변경 전 이름으로 작성된 글을 모두 바꾸면서 '파일:차수아.png' 같이 이미 업로드 되어 변경이 불가한 파일명 등은 건너뛸 수 있다.

파일:모델_이름_변경.png
변경 방법은 편집기 내부 아무 곳이나 클릭한 뒤 Ctrl+H[3]를 눌러서 찾기 및 바꾸기 창이 뜨면 '찾기'란에 변경 전 이름을, '바꾸기'란에 변경할 이름을 '@썰챗=@'를 포함시켜 입력 후 모두 바꾸기(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 편집 상태의 글 전체를 복사해 붙여 넣어 저장 한다.[4]
'target_tup'내의 'target_str'에 해당되는 문자열들은 기본 모델 이름 형식인 '@썰챗=@' 뒤의 조사를 변경하기 위한 "@", 링크가 있는 '~썰챗=차수아@]]'같은 형식 뒤의 조사도 변경하기 위한 "@]]" 2개를 넣었고 원한다면 사용자가 더 추가할 수 있다.
'josa_tup'은 받침에 따른 조사를 모아둔 튜플[5], 'lr_tup'은 리을 예외가 있는 조사를 따로 모아둔 튜플[6], 'punctuation'은 'target_str'부터 해당 요소까지의 텍스트가 조사인지 판별하기 위한 공백이나 부호 등을 모아둔 튜플[7]로 이것들 역시 사용자가 더 추가할 수 있다.
'target_str' 없이 일반적인 글에 작성된 조사는 인식을 못하는 점 참고.


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

분류