kone
sub_icon

소미소프트

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

2026-04-11 08:20:55
유틸
조회 8696 · 좋아요 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
[AI번역]슈가 라이프(버그 있음)
번역
솔라셀
05.27 14452 88
RJ01389782 비밀 노출 마나카 커스텀 미션 번역본 복구 요청드립니다.
요청
merch3n
05.27 1357 0
JJJJJ가 쓰는 카린형무소 후기 및 어쩌다 도M공략
후기 및 공략
gooddaytodie
05.27 1770 2
[미번][이종간][구매보급] RJ208892 シーイルサーバー
미번
샤이닝
05.27 5902 30
[복구요청] 사실은 에로했던 동화 빨간망토
요청
asdmqwmle
05.27 2232 0
예전에 봤던 동인지인데 제목아는사람..
질문
thalthvmxm
05.27 1209 0
[복구요청]【한국어 자막판】뒷계정 여자의 오호 신음소리 자위&섹스 음성 투고【오호고에】
요청
그드즈브
05.27 1004 1
자작 게임) 마법소녀 사키 ~악으로 떨어져 타락~
창작
곰돌123
05.27 4640 117
Tsukumaru-TS해서 파파의 야한 딸이 되는 아르바이트 그리고 딸로 타락할 때까지가 세트
동인
k8625
05.27 8484 52
[AI번역][구매보급]무치 무지 착각속의 생활 + 신생 무치 무치 시골 생활 (수정1)
번역
솔라셀
05.27 14776 98
만화 하나 찾아주세용
질문
hwang7
05.27 914 0
[배틀 퍽][일부 움떡][역간] 서큐버스 아카데미아 어펜드 개조 버전 공유
번역
V
05.27 14546 139
Iapoc-칠칠맞은 시스터
동인
k8625
05.27 9887 54
꼴리는게 보장되어있는 태그
일반
alumni
05.27 1258 3
ai번역 손식질 학생회 회장의 가슴이 표적이 되고 있다
동인
1Q2W3E4R
05.27 7979 42
[구매보급]다우너 소꿉친구의 진짜 질투! 코트가 열리면... ... 마이크로 비키니 차림!?
소리
이름뭐하지
05.27 3759 48
에로검열관 DLC 후기
후기 및 공략
그레이스
05.27 3515 9
여주 타락 ntr겜 맛있는거 없나
질문
rhrnak
05.27 1463 0
퇴근 했다~~~야겜해야지
일반
sinbiru
05.27 683 0
1차 수정 [AI/이미지 번역] 소와 양의 잡화점 ver1.01 (이미지 번역 합본)
번역
미식이네
05.27 14457 133
AI (하드: 능욕, 출산후 이종출산포함주의!) 능욕출산후 모유수유
야짤
진한농도
05.27 2981 8
로리퀘2 하다가 맘 꺾여버림
일반
wonny4455
05.27 704 0
나 빡대가리임....
질문
rodosudo2
05.27 766 -6
옛날에 했던 적있는 게임인데 이름이 기억이 안납니다
질문
KuKure
05.27 635 0
섀도우버스WB 카드 누패
유틸
나나바
05.27 1608 9
야겜 추천좀
질문
zatsidjc
05.27 495 0
세계멸망직전 당신의 선택
일반
에로탐구가
05.27 842 0
맥북 안되는게 참 많네
질문
mudeog802
05.27 588 1
[복구요청] RJ01242234 Witch's Dungeon
요청
Arckhia
05.27 947 0
대마인 RPGX 아키야마 린코 드라마 CD 「암소 대마인 사육 중, 모집) 젖 짜기 사육사」
소리
shiroi
05.27 3866 51