kone
sub_icon

소미소프트

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

2026-04-11 08:20:55
유틸
조회 8725 · 좋아요 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
청아) [구매보급] 건방진 여동생은 빈틈투성이! ~허세 부리는 메스가키 여동생과 허접 절정 질내사정 교미~ [RJ01373159]
영상
농의악마
05.26 31310 197
[요청복구] RJ01414102 이상한 형무소와 음욕의 지하 미궁 ~빈틈투성이인 나나의 H한 프리즌 브레이크~
미번
retanya
05.26 7393 17
[AI 번역] [むきぐり工房] 언니에게 거유를 자랑하다 유출되서 혼쭐난 여동생
동인
ed123
05.26 13668 23
유니슨코드 포탈 진입 질문
질문
somisofttokki
05.26 1803 1
세레나 음란모드 존버 힘들다...
일반
망령
05.26 1299 0
변색, 착색 다루는 겜 뭐 없나
질문
chingchang
05.26 1516 1
에뮬레이터 쓸때 폰갤러리에 게임사진 못지우나??
질문
simai1201
05.26 1181 0
그록)AI를 이용하여 매직아이를 만들어보았다(깨닳은점 추가)
야짤
uyajini
05.26 3852 11
NTS 깨달았다. 순애보다 숭고한 사랑
일반
asdkjn
05.26 1313 4
9시8분에 올라온 시골스키 근황
정보
sorbe123
05.26 4566 19
[복구요청] [트름] 게프린세스~게프의 나라에서 젬마조펫토가 된 나. ~내 게프로 사정해 주세요♡
요청
갱생
05.26 2576 0
린네 Full 영상 (명조)
영상
브레머튼
05.26 16274 106
니라마레 퀘스트 미식가 츠치노코 퀘스트 깬사람 있음?
질문
noooorrm
05.26 2144 1
[신작] 카지노 (블아) 4k / 1080p
영상
브레머튼
05.26 27466 286
(복구요청)RJ01388052 鬼っ子孕ませ祭り
요청
homura
05.26 1565 1
소미소프트를 다섯번 외쳐보세요.
일반
아이기스맘
05.26 1816 0
유니슨 코드 돈벌이 질문
질문
ENE
05.26 1408 1
씨빨쏔쓰!!!!!!!!!
작업현황
ㅇㅇ
05.25 7809 54
5월 30일을 새로운 기념일로 지정합니다
정보
촉촉한촉수
05.25 9152 28
과거 봤던 만화 질문입니다.
질문
favear
05.25 1717 0
[복구 요청] 자궁문신 데니아 (명조)
요청
dulbrona
05.25 2857 0
Mr. No Face 스파키x스파클
영상
참새
05.25 14790 105
AI 번역, 검수) Orange Piece 써클 10개 모음집
번역
playthesean
05.25 25369 103
90일, 2.33 GB) RJ262862 [神乳] 아일랜드 사가 -Island SAGA- v1.0.6 +.7z
복구
ㅇㅇ
05.25 14747 47
天平キツネ A39 밀티나
영상
참새
05.25 13958 96
[복구 요청] 아일랜드 사가 1.0.6
요청
lollp
05.25 2278 1
망가 하나 찾습니다
질문
aa14256
05.25 1204 -1
[복구요청] 만차율 300 3 dlc 3 세이브파일
요청
posgo8288
05.25 1747 0
던브 암컷 드래곤 어떻게 만나나요?
질문
yohanijoa
05.25 2716 0
[구매보급/자체한글] 세뇌앱2 apk
WOEAKE222
05.25 9247 64