kone
sub_icon

소미소프트

줄 바꿈, RPGM VXA 스크립트) ▼ シーン ## 자동 줄바꿈.txt

2026-04-11 08:20:55
유틸
조회 8808 · 좋아요 2
스크립트
# DarkPlasma_AutoLineBreak for RPG Maker VX Ace
# 버전: 1.0.5 (LINE_MARGIN 상수 참조 수정 + 약간의 안정성 개선)
# 목표: 최대한 간단하게 유지하면서 에러 제거

module DarkPlasma
  module AutoLineBreak
    PROHIBIT_BEFORE = ',)]}、〕〉》」』】〙〗〟’”⦆»ゝゞーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇷ゚ㇺㇻㇼㇽㇾㇿ々〻‐゠–〜~?!‼⁇⁈⁉・:;/。.'.freeze
    PROHIBIT_AFTER  = '([{〔〈《「『【〘〖〝‘“⦅«'.freeze
    
    LINE_MARGIN     = 4
    WORD_BASE       = false   # true = 영어 단어 단위 시도 (아주 제한적)

    IGNORE_CLASS_NAMES = []   # 필요하면 여기에 클래스 이름 추가
  end
end

class Window_Base
  attr_accessor :ignore_auto_linebreak_temp

  def ignore_auto_linebreak?
    DarkPlasma::AutoLineBreak::IGNORE_CLASS_NAMES.include?(self.class.name) ||
    @ignore_auto_linebreak_temp
  end

  def start_ignore_auto_linebreak
    @ignore_auto_linebreak_temp = true
  end

  def finish_ignore_auto_linebreak
    @ignore_auto_linebreak_temp = false
  end

  def auto_line_width
    contents.width - DarkPlasma::AutoLineBreak::LINE_MARGIN
  end

  def prohibit_before?(char)
    DarkPlasma::AutoLineBreak::PROHIBIT_BEFORE.include?(char)
  end

  def prohibit_after?(char)
    DarkPlasma::AutoLineBreak::PROHIBIT_AFTER.include?(char)
  end

  # 자동 줄바꿈 필요 여부 판단 (VX Ace 한계로 매우 단순화됨)
  def should_auto_break_here?(c, pos)
    return false if ignore_auto_linebreak?
    return false if c == "\n" || c.nil? || c.empty?

    char_width = begin
      contents.text_width(c)
    rescue
      12   # 폰트/문자 문제 시 기본값
    end

    current_x = pos[:x]

    # 1. 기본 폭 초과 → 행두 금지 문자가 아니면 줄바꿈
    if current_x + char_width > auto_line_width
      return !prohibit_before?(c)
    end

    # 2. 행미 금지 문자 + 여유 공간 부족 시 강제 줄바꿈 시도
    if prohibit_after?(c) && current_x + char_width + DarkPlasma::AutoLineBreak::LINE_MARGIN > auto_line_width
      return true
    end

    # 3. 영어 단어 단위 (매우 제한적 – lookahead 불가)
    if DarkPlasma::AutoLineBreak::WORD_BASE &&
       pos[:last_char] == ' ' && c != ' ' && c =~ /\w/
      if current_x + char_width * 4 > auto_line_width   # 임의 예측
        return true
      end
    end

    false
  end
end

class Window_Base
  alias dp_alb_process_character process_character
  def process_character(c, text, pos)
    if ignore_auto_linebreak?
      dp_alb_process_character(c, text, pos)
      return
    end

    # 자동 줄바꿈 필요 시 먼저 줄 바꿈
    if should_auto_break_here?(c, pos)
      process_new_line(text, pos)
      pos[:x] = pos[:new_x]   # x 위치 초기화 (중요!)
    end

    # 마지막 문자 기억 (영어 옵션용)
    pos[:last_char] = c if c =~ /[\w\s]/

    # 원본 처리
    dp_alb_process_character(c, text, pos)
  end

  # \ALB[START] / \ALB[FINISH] 간단 구현
  alias dp_alb_process_escape_character process_escape_character
  def process_escape_character(code, text, pos)
    if code.upcase == 'ALB'
      if text.sub!(/^\[START\]/i, '')
        start_ignore_auto_linebreak
        return
      elsif text.sub!(/^\[FINISH\]/i, '')
        finish_ignore_auto_linebreak
        return
      end
    end

    dp_alb_process_escape_character(code, text, pos)
  end
end

# 레이아웃이 깨지기 쉬운 윈도우는 자동 줄바꿈 끄기
class Window_ChoiceList < Window_Command
  def ignore_auto_linebreak?
    true
  end
end

class Window_BattleLog < Window_Selectable
  def ignore_auto_linebreak?
    true
  end
end


적용된 게임 참조: https://kone.gg/s/somisoft/bC8e92EXqwOp90q_d0MzWb


용머리 게임 텍스트 자동 줄바꿈 스크립트

aHR0cHM6Ly9raW8uYWMvYy9jN251a3lBamxNSzZ6NERfQUZFNTBi


업로드한 파일은 바로 적용 못함

에디터로 스크립트 넣을 수 있는 상태에서 복사 붙여넣기용


▼ シーン ## 자동 줄바꿈.txt


▼ 적용 위치 ## 스크립트명

2
댓글 1개
댓글 쓰기
감사합니다
0 / 500
[기번/체험판] 약탈 소녀 레이라 ~세계를 위해 이 몸을 바치는 공의 계약~
번역
미식이네
04.23 74177 175
이블린 슈발리에 [ZZZ] (누드 + 스타킹 버전)
영상
브레머튼
04.23 39930 142
(노모) [Momokumo] 요물의 방
동인
04.23 52911 321
Daily lives of my countryside 퀘스트 손번역 (3%)
번역
감자떡사요
04.23 32887 179
[미번/구매보급] RJ01600694 CRYNARIA
미번
exin
04.23 26247 119
[Hirno] 백황월희 래빗 세레나 #촉수괴인패배편
동인
ashgray
04.23 30736 127
[버전업][자체한글]변태여친 ~나와 그녀의 두근두근♡ 생방송~ v1.13(26.04.22)
번역
diniel
04.23 57753 230
올해 기대중인 작품들
야짤
ㅇㅇ
04.23 23847 45
[일반애니/프리큐어 BD 특전모음] 2013년~2025년
영상
imakotou
04.23 23602 67
[구매보급]독설 메이드 냄새 맡기 오호고에 타락 세뇌 ~상식 개변·강제 냄새 페티시화~
소리
코끼리땃쥐
04.23 23187 79
여동생신관 DLC 대형업데이트 24일 확정
정보
여동생킬러
04.23 13114 33
[기계번역] The stereotype that only girls play healers isn’t true at all!!! v0.2.8 (번역 파일만)
번역
karuparu13
04.23 35894 70
AI, 블아) 철도가키 W펠라
야짤
miso5
04.23 12134 55
빙글빙글 치한전차 (중국어판)
zeroel
04.23 25051 28
[구매보급] 교역 거리의 검은 위병 append 합본 2.1.1
미번
404-not-found
04.23 14759 51
RPG MV/MZ 안실시간 미리번역 업데이트
유틸
mrpls
04.23 7623 27
후타나리 한계 사축(36세)는, 막 배운 자위를 그만두지 못한다 [KANI the WORLD]
동인
ㅇㅇ
04.23 19548 68
[미번/번역요청] TS 마법소녀 나오! 2nd!! (Ver.2019-12-19 パッケージ版)
미번
googleyrak
04.23 15112 32
[구매보급]순애♡흑화 마법 소녀 ~질척한 러브 섹스 진심 교미 해버리는 이야기~
소리
이름뭐하지
04.23 32683 85
미검수/기번/NTR/이상성욕] [리버스데이-뮤턴트전기] & FGM.104
번역
laskokoi
04.23 53292 133
안돼! 동거라이프 대충채색_후기
후기 및 공략
donaban
04.22 13932 51
[후원보급]bmFqYXI= 치유키와 하즈키 파트3 단면버전
영상
pangya
04.22 28694 161
비밀 노출 -배덕의 달콤함에 물든 마나카- 후기
후기 및 공략
Nate Higgerson
04.22 12170 17
후타, 청아, 방뇨)3학년 B반 말자지 선생 ~후타나리 체육교사 • 모리타 리츠코~
동인
haroishi
04.22 34167 74
[QHD 96f] 해바라기는 밤에 핀다
영상
Shinjiro
04.22 30079 130
[요청복구] VJ011811 [CatwalkNero] 아나스타샤와 7인의 공주여신 -음문의낙인-
복구
karatro
04.22 35152 60
존재감 여동생 제작자 사과문 좀 간단하게 요약하자면
정보
kokori
04.22 23769 47
[Ai 후원] 투럽 모미오카 리사 메이드 [365p]
야짤
Ghost
04.22 16249 20
존재감 여동생 22일 공지(번역기)
정보
pajama
04.22 18564 23
[Ai 후원] 에로망가 진노 메구미 [340p]
야짤
Ghost
04.22 28264 24