kone
소미소프트

소미소프트

MVZ 플러그인) DarkPlasma_AutoLineBreak.js + MPP_MessageEX_AutoLineBreak_Patch.js + VisuMZ_1_MessageCore.js

01/29/2026, 10:49:17
유틸
6340 views · 5 likes

DarkPlasma_AutoLineBreak.js (ver 1.4.1) 완전 분석

이 플러그인은 쯔꾸르 MV/MZ에서 메시지창 폭을 넘는 텍스트를 자동으로 줄바꿈해주는 매우 유명하고 안정적인 플러그인입니다. 특히 한국어·일본어 같은 다바이트 언어의 금칙 처리(행두·행미 금지 문자)를 상당히 잘 구현한 플러그인으로, 창작마당에서 "자동 줄바꿈 플러그인 중 최고"로 평가받는 작품 중 하나예요.

핵심 기능 요약 (한눈에)




기능

설명

일본어/한국어 지원 수준

영어 지원 수준

난이도

자동 줄바꿈

메시지창 폭 초과 시 자동 개행

★★★★★

★★★★☆

★☆☆

행두·행미 금칙 처리

, . ) 」 등 행두 금지 문자, ( 「 등 행미 금지 문자 처리

★★★★★

★★★☆☆

★☆☆

단어 기반 개행 (Word Wrap)

반각 스페이스로 구분된 영단어 단위로 끊음 (설정 ON 시)

★★★☆☆

★★★★★

★☆☆

일시적 자동 개행 무시

\IGNOREAUTOLINEBREAK[START] ~ [FINISH] 제어 문자로 특정 구간 무시

★★★★★

★★★★★

★★☆

이름창·선택지 제외

Window_NameBox, Window_ChoiceList 등은 자동 개행 안 함

-

-

자동

전투 로그(Battle Log) 지원

전투 메시지(데미지 표시 등)도 자동 개행

★★★★☆

★★★★☆

자동


플러그인 매개변수 상세 설명




매개변수 이름

기본값

설명

추천 설정 (한국어 기준)

prohibitLineBreakBefore

,)]}、〕〉》」』】… 등 60여 개

행두에 오면 안 되는 문자 목록 (행두 금칙 문자)

그대로 두기 (완벽)

prohibitLineBreakAfter

([{〔〈《「『【… 등 20여 개

행미에 오면 안 되는 문자 목록 (행미 금칙 문자)

그대로 두기

ignoreAutoLineBreakWindows

[] (빈 배열)

자동 개행을 하지 않을 창 클래스 이름 목록 (예: ["Window_NameBox"])

필요 시 Window_NameBox 추가

lineWidthMargin

4

금칙 문자 처리 시 여유 폭 (픽셀) – 너무 크면 개행이 과도하게 일찍 됨

4~8 사이 추천

wordBaseLineBreak

false

영어 단어 단위 개행 ON/OFF (반각 스페이스로 구분)

영어 대사 많으면 true


제어 문자 (Control Character) 사용법

이 플러그인만의 특별한 제어 문자 하나만 있습니다.

  • \IGNOREAUTOLINEBREAK[START] → 이 위치부터 자동 줄바꿈 임시 무시 (강제로 한 줄로 이어짐)

  • \IGNOREAUTOLINEBREAK[FINISH] → 무시 상태 해제 (다시 자동 줄바꿈 복귀)

사용 예시 (메시지창에서)

text




 문장은 아주 길어서 자동으로 줄바꿈이 되는데
\IGNOREAUTOLINEBREAK[START]
 부분은 강제로 한 줄로 이어집니다
\IGNOREAUTOLINEBREAK[FINISH]
이제 다시 자동 줄바꿈이 됩니다.



→ 특정 대사(예: 시 구절, 코드, 긴 이름 등)를 강제로 한 줄로 유지하고 싶을 때 유용

실제 동작 원리 (간단 요약)

  1. processCharacter에서 매 글자마다 현재 줄의 폭 + 다음 글자 폭을 계산

  2. 폭이 contentsWidth() - lineWidthMargin을 넘으면 → 행두 금칙 문자인지 확인 → 아니면 개행

  3. 행미 금칙 문자가 다음에 오면 미리 개행

  4. 연속 2개 이상 금칙 문자는 일부만 처리 (완벽하지 않음)

  5. wordBaseLineBreak ON 시 → 다음 공백까지 미리 폭 계산 → 단어 단위 개행

장점 vs 단점 (현실적인 평가)

장점

  • 한국어·일본어 금칙 문자 처리 수준이 창작마당 무료 플러그인 중 최상위

  • YEP_MessageCore, MPP_ChoiceEX, MOG_PictureEffects 등과 충돌 거의 없음

  • 가볍고 (약 10KB) 업데이트도 꾸준함 (2023년까지 활발)

  • 제어 문자로 임시 무시 가능 → 유연성 최고

단점

  • 행말 금칙 문자 연속 3개 이상은 완벽 처리 못 함 (예: ))) 같은 경우)

  • 영어 단어 개행은 wordBaseLineBreak 켜야 제대로 됨 (기본 OFF)

  • 이름창·선택지는 기본적으로 제외 → 선택지 길면 별도 대책 필요

실제 추천 설정 (한국어 게임 기준)

text




prohibitLineBreakBefore : 그대로 두기 (기본값 최고)
prohibitLineBreakAfter  : 그대로 두기
ignoreAutoLineBreakWindows : ["Window_NameBox", "Window_ChoiceList"]  ← 이름창·선택지 제외
lineWidthMargin : 6~8 (한국어 글꼴에 따라 조금 여유 주는 게 예쁨)
wordBaseLineBreak : false (한국어 위주면 OFF, 영어 섞이면 ON)



결론 (2026년 기준 평가)

점수: ★★★★☆ (5점 만점에 4.5점)구독 가치: 무료로도 최고 수준, 꼭 깔아야 할 자동 줄바꿈 플러그인 중 1~2위

MessageAutoWrap.js와 비교하면

  • DarkPlasma 버전: 금칙 처리 + 제어 문자 더 세밀

  • Triacontane 버전: 호환성 + 영어 단어 개행이 조금 더 강력

한국어 위주 게임이라면 DarkPlasma_AutoLineBreak가 조금 더 자연스럽게 보입니다.

필요하면 이 플러그인 설치 후 긴 대사 + 선택지 예쁘게 나오는 이벤트 예시 만들어드릴게요! 궁금한 점 있으시면 언제든 말씀해주세요~ 😊


//


MPP_MessageEX_AutoLineBreak_Patch.js 분석

이 플러그인은 목성펭귄(木星ペンギン)이 2022년에 만든 패치 플러그인으로, MPP_MessageEX.js (목성펭귄의 메시지창 확장 플러그인)와 DarkPlasma_AutoLineBreak.js (DarkPlasma의 자동 줄바꿈 플러그인)를 함께 사용할 때 자동 줄바꿈이 제대로 작동하도록 연결해주는 호환 패치입니다.

핵심 목적 (한 문장 요약)

MPP_MessageEX.js의 확장된 메시지 처리(루비, 그룹 문자, 아이콘 등)와 DarkPlasma_AutoLineBreak.js의 자동 줄바꿈 기능을 서로 충돌 없이 동작하게 만드는 패치 플러그인

→ 두 플러그인을 단독으로 쓰면 잘 되지만, 같이 쓰면 자동 개행이 깨지거나 루비·아이콘이 잘리는 문제가 생기는데, 이 패치가 그 부분을 수정해줍니다.

주요 동작 원리

이 플러그인은 Window_Message.prototype의 기존 메서드를 오버라이드(재정의)해서 DarkPlasma_AutoLineBreak의 자동 개행 로직을 MPP_MessageEX의 특수 문자 처리에도 적용합니다.

오버라이드된 주요 메서드 4개

  1. processNormalCharacter (일반 문자 처리)

    • DarkPlasma의 mustLineBreak 체크를 먼저 수행

    • 개행이 필요하면 processNewLine 호출 후 문자 처리

  2. processDrawIcon (아이콘 표시 \I[n])

    • 아이콘 폭(pw + 4)을 고려해서 개행 필요 여부 판단

    • 개행 필요 시 새 줄로 이동 후 아이콘 그림

  3. processGroupCharacter (그룹 문자 – MPP_MessageEX의 특수 문자 묶음)

    • 그룹 첫 글자 폭만 체크해서 개행 여부 판단

    • 개행 후 그룹 문자 전체 처리

  4. processRubyCharacter (루비 문자 – MPP_MessageEX의 루비 기능)

    • 루비 + 본문 글자 중 더 넓은 쪽 폭을 기준으로 개행 판단

    • 개행 시 루비 높이만큼 y축 이동 (루비가 잘리지 않게)

특징 & 제한사항 (도움말 그대로)

  • 금칙 문자(행두·행미 금지 문자)지원 안 함 → DarkPlasma_AutoLineBreak의 금칙 처리를 그대로 가져오지 않고 단순 폭 체크만 함 → , . ) 」 같은 문자가 행두에 오는 경우가 생길 수 있음

  • 루비 높이 반영이 완벽하지 않음 → 일부 상황에서 루비가 잘리거나 위치가 어긋날 수 있음 (도움말에도 명시)

  • 페이지 송리 포즈(자동 개행 후 기다림) 미지원 → 일부 제어 문자에서는 자동 개행 후 자동으로 페이지 넘김 대기(!)가 안 걸림

  • 설치 순서 엄격MPP_MessageEX.jsDarkPlasma_AutoLineBreak.js보다 아래에 설치해야 함 (플러그인 관리자에서 가장 아래쪽으로)

실제로 필요한 사람

  • MPP_MessageEX.js를 이미 쓰고 있는 사람

  • DarkPlasma_AutoLineBreak.js로 자동 줄바꿈을 하고 싶은 사람

  • 특히 루비(후리가나)그룹 문자, 아이콘 포함 긴 대사를 자주 쓰는 사람

이 두 플러그인 중 하나만 쓰고 있다면 이 패치는 필요 없습니다.

호환성 & 추천 순서 (2026년 기준)

text




(위 → 아래 순서로 설치)
1. YEP_MessageCore (있으면)
2. MPP_MessageEX.js
3. DarkPlasma_AutoLineBreak.js
4. MPP_MessageEX_AutoLineBreak_Patch.js   ← 이 패치 가장 아래



결론 평가

필요성: ★★★★☆ (두 플러그인을 같이 쓸 때만 필수) 완성도: ★★★☆☆ (금칙 처리 미지원, 루비 미세 어긋남 있음) 대안:

  • 금칙 처리가 꼭 필요하면 DarkPlasma_AutoLineBreak 단독 + MPP_MessageEX 포기

  • 아니면 VisuMZ Message Core (MZ 전용)로 넘어가면 자동 줄바꿈 + 루비 + 금칙 모두 기본 지원

이 패치 덕분에 MPP + DarkPlasma 조합을 쓰는 한국 유저들이 꽤 많아요. 루비나 아이콘 때문에 대사가 잘리는 게 고민이었다면 이 패치 하나로 해결되는 경우가 많습니다.

필요하면 이 패치 적용 후 루비 + 긴 대사 예쁘게 나오는 이벤트 예시 만들어드릴게요! 궁금한 거 있으시면 말씀해주세요~ 😊


//


VisuMZ_1_MessageCore.js 플러그인 분석

VisuMZ_1_MessageCore.js는 RPG Maker MZ(RMMZ)용 플러그인으로, VisuStella 팀(주로 Yanfly로 알려짐)이 개발한 Tier 1 코어 플러그인입니다. 이 플러그인은 RMMZ의 기본 메시지 시스템을 확장하고 강화하여, 게임 개발자가 메시지 창의 워크플로우를 더 유연하게 커스터마이징할 수 있게 합니다. 기본적으로 메시지 표시, 텍스트 효과, 자동 처리 등을 개선하며, 다른 VisuStella 플러그인(예: Battle Core, Options Core)과 연동되어 추가 기능을 제공합니다. 플러그인 버전은 1.54로, 코드가 난독화(obfuscated)되어 있어 상세한 내부 구현 분석이 어렵지만, 공식 문서와 업데이트 로그를 기반으로 주요 기능을 요약하겠습니다. 이 플러그인은 RMMZ의 소스 코드 버그를 수정하고, 메시지 관련 QoL(Quality of Life) 기능을 추가하는 데 초점을 맞춥니다.


플러그인 목적과 소개

  • 주요 목적: RMMZ의 메시지 창(대화 상자)을 더 세밀하게 제어할 수 있게 합니다. 기본 메시지 기능의 한계를 넘어, 텍스트 코드 확장, 자동 색상 적용, 매크로 시스템 등을 통해 개발 효율성을 높입니다. 예를 들어, 대화 텍스트에 아이콘, 색상, 애니메이션 등을 쉽게 추가할 수 있습니다.

  • 필수 요구사항: VisuMZ_0_CoreEngine 플러그인 이후에 로드되어야 합니다(@orderAfter 지시자 참조). 다른 VisuStella 플러그인과 함께 사용하면 옵션 메뉴에 통합 옵션이 추가됩니다.

  • 대상: RMMZ 사용자, 특히 메시지 중심의 스토리텔링 게임 개발자.

주요 기능(Features)

이 플러그인은 다음과 같은 기능을 제공합니다. 이는 공식 위키와 업데이트 로그에서 추출된 내용입니다.

  • 일반 메시지 설정 제어: 메시지 창의 크기, 위치, 행 수, 배경 등을 플러그인 파라미터로 조정 가능. 예: 행 수를 4에서 6으로 늘리거나, 창 투명도 설정.

  • 자동 색상(Auto-Color): 키워드나 데이터베이스 항목(아이템, 스킬 이름 등)에 자동으로 색상을 적용. 특수 문자(예: !, ?, [, ])가 포함된 이름은 무시하여 오류 방지.

  • 텍스트 코드 확장: 기본 RMMZ 텍스트 코드(\c[n] 색상 등) 외에 새로운 코드 추가. 예: \ActorFace[x] (액터 얼굴 표시), \WordWrap (단어 줄바꿈), 정렬 태그(<LEFT>, <CENTER>, <RIGHT>).

  • 커스텀 텍스트 코드: 개발자가 사용자 정의 텍스트 코드를 구현 가능. 예: 문자열 대체(JS: Text)나 액션(JS: Action) 추가.

  • 매크로 시스템: 반복되는 텍스트 패턴을 매크로로 등록하여 개발 속도 향상. 예: \macro[name]으로 호출.

  • 워드 랩(Word Wrap) 및 줄 바꿈: 텍스트가 창을 넘치지 않게 자동 줄 바꿈. 왼쪽/가운데/오른쪽 정렬 지원. 줄 바꿈 간격 버그 수정됨.

  • 이름 창(Name Window): 대화자 이름 표시 창 추가. 위치, 스타일 커스터마이징.

  • 사운드 효과: 텍스트 표시 시 SE(Sound Effect) 재생, 타이핑 사운드 등.

  • 기타 QoL: 메시지 로그 통합(별도 플러그인 필요), 옵션 메뉴 연동(예: 마스터 볼륨, 윈도우 톤), 버그 픽스(예: 빈 이름 액터 하이라이트 오류).


기능 카테고리

세부 설명

예시 사용

메시지 창 커스터마이징

창 크기, 위치, 행 수 조정

플러그인 파라미터 > General > Row Count: 6

자동 색상

데이터베이스 항목 자동 강조

아이템 이름에 색상 적용

텍스트 코드

새로운 효과 추가

\ActorFace[1]으로 액터 1의 얼굴 표시

매크로

반복 텍스트 간소화

\macro[hello] = "안녕하세요!"

워드 랩

텍스트 오버플로 방지

<WordWrap> 긴 문장 </WordWrap>

플러그인 파라미터(Plugin Parameters)

플러그인 관리자에서 설정 가능한 옵션입니다. @help 섹션(문서 시작 부분)에 상세히 나와 있지만, truncated된 부분을 기반으로 주요 카테고리를 요약:

  • General Settings: 메시지 행 수(기본 4), 창 너비/높이, 배경 타입(윈도우/투명/어두움).

  • Auto Color Settings: 자동 색상 적용 대상(키워드, 액터 이름, 아이템 등), 색상 코드 지정.

  • Text Code Replacements: 기존 텍스트 코드 대체(예: \ActorFace JS 코드 수정).

  • Macro Settings: 매크로 목록 등록(이름-값 쌍).

  • Name Window Settings: 이름 창 위치(왼쪽/가운데/오른쪽), 스타일, 폰트 등.

  • Sound Settings: 텍스트 타이핑 SE, 볼륨/피치/팬 설정.

노트 태그(Notetags)나 이벤트 명령어와 연동되어 데이터베이스(액터, 아이템 등)에 적용 가능. 예: 액터 노트에 <Message Name Color: #RRGGBB>로 색상 지정.


텍스트 코드(Text Codes) 기본 RMMZ 코드 외에 추가된 하드코딩된 코드 목록(위키에서 발췌): \AutoColorOn / \AutoColorOff: 자동 색상 토글. \Name[x]: 이름 창에 x 표시. \Icon[x]: 아이콘 x 삽입. \OutlineColor[x]: 아웃라인 색상 변경. \FontSize[x]: 폰트 크기 변경. <WordWrap> / </WordWrap>: 단어 줄 바꿈 활성화. <Align: type>: 텍스트 정렬(left, center, right). 기타: \ActorFace[actorId], \PartyMember[pos] 등. 커스텀 코드 추가 가능(플러그인 파라미터 > Custom Text Codes).



플러그인 명령어(Plugin Commands)

메시지 관련 명령어로 이벤트에서 호출:

  • Show Message: 확장된 옵션(위치, 배경 등).

  • Message Settings: 런타임 중 설정 변경(예: 행 수 동적 변경).

  • Name Window: 이름 창 표시/숨김.

코드 구조 분석

제공된 파일은 다음과 같은 구조입니다:

  • 헤더(Header): //============================================================================= 로 시작, Imported와 VisuMZ 네임스페이스 설정. 버전 1.54.

  • @help 섹션: 플러그인 설명, 파라미터, 텍스트 코드 등. 하지만 문서에서 345583자 truncated되어 전체가 보이지 않음.

  • 본체 코드: 난독화된 JavaScript. 예: "this['y']=0x0"처럼 변수/함수가 16진수와 문자열로 obfuscated. 이는 상업 플러그인의 표준으로, 역공학 방지 목적. 주요 부분은 Window_Message 클래스 확장, drawTextEx 오버라이드, 새로운 메서드 추가(예: processEscapeCharacter 확장).

  • 끝부분: 정렬/위치 관련 함수(예: <TOP>, <MIDDLE>, <BOTTOM> 태그 처리). RegExp로 태그 매칭 후 x/y 좌표 조정.

난독화로 인해 상세 디버깅은 어렵지만, 기능적으로는 Window_Base와 Scene_Message를 수정하여 동작합니다. 버그 픽스 예: 버전 1.01에서 \ActorFace[x] 수정("$gameActors.actor(1)" → "$gameActors.actor(actorId)"), WordWrap 지원 추가.

추가 팁과 주의사항

  • 업데이트 로그(Changelog): 초기 버전(1.00)에서 WordWrap 버그, 빈 이름 오류 등이 수정됨. 최신 버전에서 left/center/right 정렬 지원 추가.

  • 호환성: 다른 VisuStella 플러그인과 잘 연동(예: Message Log 플러그인으로 로그 기능 확장). RMMZ 기본 플러그인과 충돌 가능성 있으니 플러그인 매니저 순서 주의.

  • 사용 예시: 샘플 프로젝트(VisuStella MZ Sample Game)에서 이 플러그인이 사용됨. 대화 이벤트에서 텍스트 코드 테스트 추천.

  • 문제 해결: 만약 코드 실행 오류가 발생하면, 플러그인을 재설치하거나 JS: Text 파라미터 확인.

이 플러그인은 RMMZ 메시지 시스템의 필수 확장으로, 스토리 중심 게임에 특히 유용합니다. 더 구체적인 코드 부분 분석이 필요하시면 추가 쿼리를 부탁드려요!


//


1


aHR0cHM6Ly9raW8uYWMvYy9iY2VTS19tWW9EUTJIWkpHMUVjeldi


자동 줄바꿈 관련 플러그인 찾아서 올림

5
6 comments
01/29
뭔진 몰겠지만 굉장한거라 이말이구만
01/29
요즘은 드물지만 옛 게임들은 번역하다보면 자꾸 화면 밖으로 나감 그거 대비용
LB> 처럼 한국어 띄워쓰기 잘려버리는거 공백 해결해주는 플러그인도 있을려나
01/29
03/05
포레스티아 1.3.2 회상룸 강제 개방
유틸
how-72
01/30 8664 6
RPG MV 실시간 번역기 설치가이드
유틸
mrpls
01/30 19824 17
RPG MV/MZ 실시간 번역기 1.6 - 프린세스 시너지 업데이트
유틸
mrpls
01/30 22619 34
엄크 방지 프로그램
유틸
cloud
01/29 23932 42
MVZ 플러그인) DarkPlasma_AutoLineBreak.js + MPP_MessageEX_AutoLineBreak_Patch.js + VisuMZ_1_MessageCore.js
유틸
ㅇㅇ
01/29 6340 5
[수정2] 안 돼! 동거 라이프 v1.11 치트파일
유틸
kts
01/29 13763 24
시니시스타 2 1.2.1 모드 총집편 + 추가 노모화
유틸
sims9876
01/28 29920 79
동거라이프 스테이터스 창 안닫히는거 우회
유틸
kts
01/27 8369 14
EZ + Ehnd 미포함) MVZ 자동 번역 + EZ서버(+ 기본 파일) + 언팩 툴
유틸
ㅇㅇ
01/25 19760 18
SEED OF THE DEAD 2 모자이크 제거패치+본편 진행도100% 세이브
유틸
귤뽁
01/24 23074 34
master 폴더 개선) RJ01144461 [むねにくたべたい] 폐급 스트리머 미라이짱~엣치한 코멘트 접수중~
유틸
ㅇㅇ
01/22 12225 10
RJ01209336 반찬 어플 소문 메모 버그 수정
유틸
daraaa
01/22 7147 9
RJ01168428 초보 가출 소녀와 나【다국어 버전】 RunawayGirl-Ver1.06 (일부노모)
유틸
류제로
01/21 15243 45
MVMZ 정규식으로 필요한 파일 위치 찾기(공통 이벤트, 변수)
유틸
ㅇㅇ
01/20 5264 3
방주 RJ중복 찾기
유틸
봇치
01/20 6621 11
MV 플러그인: ParallaxLayerMap.js
유틸
ㅇㅇ
01/19 6425 6
던전 위드 걸 1.1.3 AI 노모
유틸
물크스
01/19 17725 63
홍련사주 퓨어 엘레멘츠 치트 플러그인 적용 방법
유틸
sucksucke
01/19 8970 11
MV 플러그인: TemplateEvent.js
유틸
ㅇㅇ
01/18 5156 2
MV 플러그인: HIME_GameOverEvents.js
유틸
ㅇㅇ
01/18 7336 4
RJ01154724 이세계 환생 매지컬 자지 완전판 노모패치(DLC포함)
유틸
류제로
01/17 28045 83
MV 플러그인: HalfMove.js
유틸
ㅇㅇ
01/17 7722 4
요청 개조) RJ01509483 아스테라 사가 체력바 추가 플러그인.7z
유틸
ㅇㅇ
01/15 4254 12
RPG-Maker-MV-MZ-Cheat 에서 숫자가 잘 안먹힐 때에 (예시: 언홀리 메이든)
유틸
cybuster
01/15 10194 25
MV 플러그인: MPP_ChoiceEX.js
유틸
ㅇㅇ
01/14 3902 5
RPG MV/MZ 치트 플러그인 개조 버전 v3.0
유틸
4HHHH
01/13 12808 20
🔞슬레이 더 스파이어 NSFW 아이언클래드 및 기타 카드
유틸
Rasmodia
01/12 33629 34
참고용 ai 프롬프트(이미지) 모음
유틸
urakan915
01/11 12454 18
개조를 위한 모음(img, battlebacks1, enemies, Picture)
유틸
ㅇㅇ
01/10 6034 7
🔞 슬레이 더 스파이어 NSFW 이벤트 및 휴식 리텍스쳐
유틸
Rasmodia
01/09 14033 37