kone
소미소프트

소미소프트

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

04/11/2026, 08:20:55
유틸
8846 views · 2 likes
스크립트
# 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 comment
Sign in to comment
감사합니다
Sign in to comment
ai, 붕스) 은랑에게 섹스 해달라고 졸라 보았다
야짤
kjh9304
05/16 17796 152
[구매보급] [번역요청] [NTR] RJ01604442 퇴마부 하메촬영 활동 기록, RJ01622409 꿈마의 관
미번
r4gsdrg
05/16 21355 36
QW5pZmxvdw== 영상 모음
영상
karatro
05/16 20496 59
업뎃알림) 야리나리 RJ01249935
미번
rlans
05/16 21248 28
[구매보급] RJ01625476 RJ01539088 RJ01617969
소리
IIIIIIIlllllllIIIIII
05/16 13053 62
AI) 클로저스 슬비
야짤
kifbodo245
05/15 15607 71
잠결에 쓰는 던브, 던전 앤 브라이드 통합 모드 개인적인 팁
후기 및 공략
hacom
05/15 19185 16
はるとし 신작 메구밍 더빙판
영상
ㅇㅇ
05/15 17863 69
니트사장 신작 블아 히요리
영상
ㅇㅇ
05/15 17459 150
Rinhee 신작 카린아스나시나노
영상
ㅇㅇ
05/15 23428 203
AI번역, unacchi) 아가씨 완전 패배 2
동인
sexe1
05/15 51615 254
26.05.19, 14개) 무기한 리스트
복구
ㅇㅇ
05/15 61970 203
미번,스압,다테로쿠신작) 의붓 아버지의 성욕처리는 저희들 3자매의 담당
동인
kjalar
05/15 30598 69
(보태배 포함)음태의 의식
동인
에우리알레
05/15 25442 112
ai) 맥도날드에서... + 모음집 추가
야짤
Ghost
05/15 22261 84
수간)성처리 도구 ZZZ
영상
이상한 사람
05/15 32901 74
ai) ----스압---- 방도리
야짤
Ghost
05/15 9168 18
ai) ----스압---- 블루아카이브 미카 노아 수노미 아코
야짤
Ghost
05/15 6612 27
[ai번역][미검수][완결][한글패치만] Star Knightess Aura [v1.3.3] [수정5]
번역
aahit
05/15 37531 129
【다우너/공의존】 백일몽・오버도즈 ~비 오는 날 주운 다우너 소녀의 하얗고 달콤한 독에 빠져 목 조르기 절정으로 사회 부적응자가 되다~
소리
키리안
05/15 15224 54
[구매보급][자막] RJ01041160
소리
puella
05/15 17857 91
구매보급 번역요청 RJ01595506 마녀의 유산 도움!!!!!!
미번
pigeons9
05/15 28676 64
AI, 셀레스포니아) 최면 바디페인팅 치어리딩
야짤
miso5
05/15 14024 83
개인적으로 생각하는 ntr 작가 TOP5
정보
gtx3080ti
05/15 18227 35
(이미지 번역 파일만) [RJ01544753] モブ顔でドスケベボディなおねえちゃん (모브얼굴에 개변태바디인 누나)
번역
5dk2io1
05/15 27357 151
WebP_Converter 코네 다운로드하다 WebP 불편해서 만든 프로그램
유틸
noname
05/15 12728 16
(코이카츠) 최근에 풀린 프리셋 공유
유틸
pst0025
05/15 12601 34
[구매보급][번역요청] 牛と羊の雑貨屋さん
미번
쮸쮸
05/15 12942 59
[미번/번역요청]그 녀석하고 한 번만 했으면 좋았을 텐데
동인
아돌
05/15 14029 24
[이미지번역][RJ01048672] 요몽원: The Nightmaretaker ~악마에 씌인 남자~ v1.7.2
번역
losress
05/15 64106 279