kone
sub_icon

소미소프트

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

2026-04-11 08:20:55
유틸
조회 8714 · 좋아요 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
부계에 잠든 왕녀의 아바돈 할 사람 이거 보고 가!
일반
이상성애
05.18 2783 6
던브 무르무르전 존나어렵네
일반
nagisa8262
05.18 2615 1
세레스피아 원래 이런 느낌인가
후기 및 공략
삣삐세여
05.18 6717 1
직번) [Yamamoto Zenzen] 학원원교일기 Comix 2화
동인
qlalfsla
05.18 22825 91
[구매보급]철벽인 성녀와 육식음마 두 사람 사이좋게 섹스승부 ~누구를 신부로 맞이할 거야?~
소리
이름뭐하지
05.18 9817 73
비월선행록 처음부터 어떻게 하는거임?
질문
alsjdiwjw3
05.18 2438 0
서양쪽은 뷰어 쓸만한게 없나
질문
jiska0
05.18 2180 0
꽐라거유녀 엄마로 만들기
야짤
superkiller123
05.18 6418 8
[손번역][초반번역]RJ01526327 어서오세요! 어린이 만들기 온천 마을 1.01
번역
sjdwj
05.18 45277 251
AI,청아)그록 살아있던 시절 뽑은 영상들
영상
ㅇㅇ
05.18 26103 60
근친 망가 질문
질문
dascoreal
05.18 4849 0
AI) 눈팅하다 찾은 작가꺼 올려봄....
영상
교배아저씨
05.18 14735 80
시니시스타2 dl판 r18패치 해야함?
질문
higher365
05.18 1695 0
Yes I Am Furry 버전
미번
britz69
05.18 3975 7
근친망가인데 대사는 기억나는데 좀 도와주세여
질문
pripara1005
05.18 2965 0
원치않은 성희롱 스택 슈발
일반
메론맛바밤바
05.18 7781 0
[복구요청] 아리사 그리모어 アリサグリモア
요청
bbbbbuuuu
05.18 4181 4
알미오시온의 의술사 후기
후기 및 공략
드라군
05.18 5063 6
에테르게이저 지금 시작
야짤
정실은스쿨드
05.18 6746 5
의술사 성화탑 퍼즐 어케 뚫어야함?
질문
ballongdoor555
05.18 3269 1
양쪽 귀에 "싸라", "싸지 마" 하는 동음이 있었는데
질문
hukug
05.18 1683 0
염월선행록 지금 드가도 됨?
질문
렐루
05.18 2721 -1
AI 작품관련 업로드
질문
simoene2
05.18 1790 1
어지럽네... 이게 양지 작품이라니
일반
seiya
05.18 3899 5
[복구요청]RJ01360136 엘프소녀 리피아와 몽환의 미궁 ver1.06 노모패치
요청
kekera133
05.18 3228 0
TU1EdHlwZTg3 모음집 업데이트 알림
영상
hannanas
05.18 10989 32
[요청없는 복구] 이것저것 잡탕 모음집
복구
yeondooooo
05.18 67026 336
스포) 근데 의술사 주인공이 너무 불쌍하네
후기 및 공략
ㅇㅇ
05.18 5881 2
익 x 자동 다운로더 드디어 만들었다
일반
stricken5448
05.18 3588 4
의술사 구시가지 대성당 이후로는 무한맵임?
질문
simya1557
05.18 1970 0