kone
sub_icon

소미소프트

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

2026-04-11 08:20:55
유틸
조회 8819 · 좋아요 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
MMD 모션,음악 통팩 공유
유틸
pst0025
04.26 8771 56
미번,구매보급) 러브러브에치시뮬레이션(live 2d)
미번
lalolo
04.26 10846 32
AI, 셀레스포니아) 가짜에게 지고 벽엉덩이
야짤
miso5
04.26 14943 156
[AI번역][미검수] RJ01045491 [happypink] 최면의 공주기사 ver1.092
번역
coupon
04.26 52101 174
[업데이트 안내] 간호사 콜 경비원 +DLC1 v1.26.4.24 (자칭 : 자택경비원3)
번역
kkkkkk0909
04.26 42665 171
[Nunnu] Funny Fuck! | 퍼니 퍽!
동인
kifbodo245
04.26 15514 57
(청아 NTR 후타 등) 오오랜만에 다시 들고 와쓰
영상
bisesdop
04.26 35672 180
[업데이트 안내] 존재감 없는 여동생과의 소박한 일상 1.08rev.3
번역
kkkkkk0909
04.26 38235 118
[Togami] 분홍빛 여우 색기의 술! ~무참히 패배한 암여우의 임신 묘상화~
동인
ashgray
04.26 23413 117
[미번,구매보급] RJ01605204 ゆりかごのプエルステラ
미번
sfman6348
04.26 17198 34
RJ01412500 NightHigh5 mono Auto ko.7z
번역
ㅇㅇ
04.26 29419 98
6Zu25pum6JOd6Z+z 작가 영상 2개
영상
asd0222
04.26 14037 57
[Almondman] 마마 선생님들과 러브러브 놀이 시간
동인
멜신
04.26 32062 247
[구매보급]【패배메스타락특화】복수의 쿠노이치 아야메 굴욕의 패배 절정
소리
이름뭐하지
04.26 12132 72
[AI번역]음모일기 8+ 순애편
동인
mobilejoara
04.26 21467 36
[harusawa] 나를 좋아하는 문학여친이 NTR 섹파에게 범해져 타락하기까지
동인
agnet666
04.26 21933 35
[수정1][AI번역][미검수] RJ437935 성활 Hotel v1.0.3
번역
ㅇㅇ
04.25 43074 151
(노모화) [Shiwasu No Okina] 100번 차여버린 인기없는 나를 불쌍히 여겨준 남친 있는 여자사람 친구가...
동인
xbox
04.25 49021 289
Poriuretan 산악 드라이브에서 의기투합
동인
uzaki
04.25 23763 64
Poriuretan 친구네 누나
동인
uzaki
04.25 35356 91
Poriuretan 보란듯이 보여줌
동인
uzaki
04.25 23853 62
Poriuretan 노출증 환자의 할로윈
동인
uzaki
04.25 15202 45
Poriuretan 냄새 페티시
동인
uzaki
04.25 16072 39
돌보기 좋아하는 엄마, 아들한테 박혀버리다
동인
haroishi
04.25 25020 63
Poriuretan 들이닥친 갸루 a (무삭제 판)
동인
uzaki
04.25 25662 52
Poriuretan 아이의 씨를 원하는 유부녀
동인
uzaki
04.25 18335 35
Poriuretan 선배의 선택
동인
uzaki
04.25 17511 37
Poriuretan 보이시한 소꿉친구
동인
uzaki
04.25 20781 28
Poriuretan 세련된 선도부원
동인
uzaki
04.25 18014 34
Poriuretan 유부녀 요가 피트니스 (무삭제판)
동인
uzaki
04.25 21242 35