kone
sub_icon

소미소프트

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

2026-04-11 08:20:55
유틸
조회 8721 · 좋아요 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
[복구요청][후타] Mage Kanade's Futanari Dungeon Quest
요청
Tkdcap
05.18 3717 3
[요청복구] RJ01067533 NTR RPG 외전 〜충간의 서
복구
sample098
05.18 13417 28
AI, 짧) 팬티가 묶여버린 무표정쨩
야짤
miso5
05.18 9444 65
촉수 / 야애니) 낙원침촉 - 망자의 섬
영상
darkunicorn
05.18 26708 103
mⓞzⓤkⓤ 모음집 (일부 없을수도 있음)
영상
darkunicorn
05.18 20013 67
아이만들기 온천 손번역 진행상황
작업현황
sjdwj
05.18 8176 39
추천부탁드립니다 형님들
질문
paprika123
05.18 2806 0
[미번] [ORC SOFT] かがち様お慰め奉ります廻 ~寝取られ村淫夜噺~
미번
돔마
05.18 10129 32
시니시스터2 배신자 도전과제 다리 수리하고나면 못깨는건가?
질문
chronoro
05.18 3095 0
의술사 진행 퀘 질문드립니다
질문
rummy
05.18 2615 0
아이와 악마와 음욕의 저주같은 여주물 더 없으려나요...?
질문
ddaljang
05.18 2086 0
Wakura 메이플 애프터 스쿨
동인
SK
05.18 23577 112
Koudera Sachi 기분 좋은 것을 우선시합니다
동인
SK
05.18 25951 162
Koudera Sachi 뒷계로 낚은 남자랑 떡치는걸 못관두겠어요
동인
SK
05.18 31493 121
생각보다 빨랐던 파라서큐 업데이트
정보
NG
05.18 4874 6
[개조] 비월선행록 V1.29 개조 버전 공유
번역
V
05.18 109593 1048
[복구 요청] RJ01148319 STARWORKS(철상의사람 鉄箱のひと)
요청
ashleria
05.18 2283 1
비월선행록 건달 어떻게 잡아요?
질문
맛트
05.18 3332 1
MZ 플러긴 오류 해결법 아는사람 ?
질문
demonhunter
05.18 4142 -1
[구매보급][한국어 자막판][굉음 오호]모녀 붕괴 ~같은 남자를 사랑한 모녀는 레즈섹스승부로 천박하게 자● 쟁탈~
소리
이름뭐하지
05.18 19801 99
이세계 NTR여관 제작자:무엇을 상상해도, 그 이상을 보여주겠다.
정보
ksw112
05.18 8178 21
카린의 형무소 질문
질문
starlight123
05.18 3105 0
[복구요청] RJ01359797 야외 노출 소녀 레나
요청
nyong
05.18 3631 3
작년? 기대작중에 흑백에 도트에 호러?
질문
madnightbad
05.18 2141 0
님들 의술사 1.044 한글 패치 파일로
질문
dirpachlrh
05.18 2357 0
비월선행록 퀘스트 진행 안되는거 해결 하신분 있나요?
질문
맛트
05.18 3156 0
조이플레이 글자 색 어케 바꾸나요
질문
waybacx
05.18 6991 0
vam mmd 자작 짧은 거 하나
영상
dnsdgk12
05.18 16767 51
ㅋㅋ 비월선행록 패트리온 다운받는 중
일반
su3838su287
05.18 7710 -1
[버전업 알림] 아득한 세레스피아 1.0.5
번역
제로콜라라이트
05.18 34824 150