질문과 답변

Extra Form

 

여러 가지 글을 찾아봤는데 ,

 

http://avangs.info/kin/1471341#comment_1471530

 

요기서 사용하는 시스템을 저도 사용하고 있어서 

 

댓글 처럼 수정을 했는데, 투명화가 안됩니다. 

 

아마 제가 대화창이 팝업(말풍선형식)으로 나오는 시스템을 함께 사용하고 있어서 그 스크립트의 어떤 부분이랑 겹치는 것 같은데 

 

아래는 해당 스크립트 전문 입니다.

 

ㅡㅡㅡㅡㅡㅡㅡ 

 

#==============================================================================

# ¥ Yami Engine Ace - Pop Message
# -- Last Updated: 2012.05.11
# -- Level: Normal
# -- Requires: n/a

#==============================================================================

$imported = {} if $imported.nil?
$imported["YSE-PopMessage"] = true

#==============================================================================
# ¥ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.05.11 - Fixed Message Position.
#            - Remove Requirement: YSE - Fix Events Order.
# 2012.05.07 - Fixed Face position.
#            - Added Requirement: YSE - Fix Events Order.
# 2012.04.06 - You can change Bubble Tag filename.
# 2012.03.28 - Fixed Default Message Position and Sizes.
# 2012.03.27 - Fixed Default Message.
# 2012.03.27 - Added Bubble Tag.
# 2012.03.25 - Fixed Escape Message.
# 2012.03.24 - Fixed Battle Message.
# 2012.03.24 - Rewrote script.

#==============================================================================
# ¥ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ¥ Materials/‘fÞ but above ¥ Main. Remember to save.

# -----------------------------------------------------------------------------
# Message Window text Codes - These go inside of your message window.
# -----------------------------------------------------------------------------
#  Position:   Effect:
#    \bm[x]    - Sets Message Window position to event x. *Note
#    \cbm      - Cancel bubble message.
#
#              *Note: Set to 0 to sets position to Game Player.
#
#==============================================================================
# ¥ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.

#==============================================================================

module YSE
  module POP_MESSAGE
    
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Visual Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    LIMIT = { # Start.
      :limit_width    =>  0,  # Set to 0 to disable limit.
      :limit_line     =>  6,  # Set to 0 to disable limit.
    } # End.
    
    POSITION = { # Start.
      :x_buffer       =>  0,
      :y_buffer       =>  -36,
      :face_x_buffer  =>  8,
      :face_y_buffer  =>  24,
      :tag_y_buffer   =>  -6,
      :name_x_buffer  =>  112, # Require YEA - Message System.
    } # End.
    
    EFFECT = { # Start.
      :fade_face       =>  true,
      :move_face       =>  true,
      :use_bubble_tag  =>  true,
      :bubble_tag_name => "BubbleTag",
    } # End.
    
  end
end

#==============================================================================
# ¥ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

#==============================================================================
# ¡ Spriteset_Map
#==============================================================================

class Spriteset_Map
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :character_sprites
  
end # Spriteset_Map

#==============================================================================
# ¡ Window_Message_Face
#==============================================================================

class Window_Message_Face < Window_Base
  
  #--------------------------------------------------------------------------
  # initialize
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 120, 120)
    self.opacity = 0
    @face_name = ""
    @face_index = 0
    @move_x = 0
    self.z = 301
    close
  end
  
  #--------------------------------------------------------------------------
  # message_window=
  #--------------------------------------------------------------------------
  def message_window=(window)
    @message_window = window
  end
  
  #--------------------------------------------------------------------------
  # set_face
  #--------------------------------------------------------------------------
  def set_face
    contents.clear
    return unless @message_window
    if !$game_message.face_name.empty?
      draw_face($game_message.face_name, $game_message.face_index, 0, 0)
      set_position
      show_face
    else
      hide_face
    end
  end
  
  #--------------------------------------------------------------------------
  # set_position
  #--------------------------------------------------------------------------
  def set_position
    return unless @message_window
    self.x = @message_window.x
    self.y = @message_window.y - 96
    self.x += YSE::POP_MESSAGE::POSITION[:face_x_buffer]
    self.y += YSE::POP_MESSAGE::POSITION[:face_y_buffer]
    self.y += (@message_window.real_lines - 1) * 24
    if (@face_name != $game_message.face_name || @face_index != $game_message.face_index)
      if YSE::POP_MESSAGE::EFFECT[:move_face]
        @move_x = 30
        self.x -= 30
      end
      @face_name = $game_message.face_name
      @face_index = $game_message.face_index
      self.contents_opacity = 0 if YSE::POP_MESSAGE::EFFECT[:fade_face]
    end
  end
  
  #--------------------------------------------------------------------------
  # show_face
  #--------------------------------------------------------------------------
  def show_face
    open
  end
  
  #--------------------------------------------------------------------------
  # hide_face
  #--------------------------------------------------------------------------
  def hide_face
    contents.clear
    close
  end
  
  #--------------------------------------------------------------------------
  # update
  #--------------------------------------------------------------------------
  def update
    super
    self.contents_opacity += 15 if self.contents_opacity < 255
    unless @move_x <= 0
      self.x += 2
      @move_x -= 2
    end
  end
  
end # Sprite_Message_Face

#==============================================================================
# ¡ Window_Message
#==============================================================================

class Window_Message < Window_Base
  
  #--------------------------------------------------------------------------
  # new method: face_window=
  #--------------------------------------------------------------------------
  def face_window=(window)
    @face_window = window
  end
  
  #--------------------------------------------------------------------------
  # new method: bubble_tag=
  #--------------------------------------------------------------------------
  def bubble_tag=(sprite)
    @bubble_tag = sprite
  end
  
  #--------------------------------------------------------------------------
  # new method: message_escape_characters_pop_message
  #--------------------------------------------------------------------------
  def message_escape_characters_pop_message(result)
    result.gsub!(/\eBM\[(\d+)\]/i) { event_pop_message_setup($1.to_i, false) }
    result.gsub!(/\eBMF\[(\d+)\]/i) { event_pop_message_setup($1.to_i, true) }
    result.gsub!(/\eCBM/i) { event_pop_message_setup(nil, false) }
    result
  end
  
  #--------------------------------------------------------------------------
  # alias method: convert_escape_characters
  #--------------------------------------------------------------------------
  alias yse_convert_escape_characters_pm convert_escape_characters
  def convert_escape_characters(text)
    result = yse_convert_escape_characters_pm(text)
    result = message_escape_characters_pop_message(result)
    result
  end
  
  #--------------------------------------------------------------------------
  # new method: event_pop_message_setup
  #--------------------------------------------------------------------------
  def event_pop_message_setup(event_id, follower = false)
    if follower && $game_player.followers[event_id].nil?
      @event_pop_id = nil
      @event_pop_follower = false
      return ""
    end
    @event_pop_follower = follower
    @event_pop_id = event_id
    return ""
  end
  
  #--------------------------------------------------------------------------
  # new method: set_face_position
  #--------------------------------------------------------------------------
  def set_face_position
    return unless SceneManager.scene_is?(Scene_Map)
    return unless @event_pop_id
    return unless @face_window
    contents.clear
    @face_window.set_face
    self.z = 300
    return unless $imported["YEA-MessageSystem"]
    @name_window.x = self.x + YSE::POP_MESSAGE::POSITION[:face_x_buffer] + YSE::POP_MESSAGE::POSITION[:name_x_buffer] if (@name_position == 1 || @name_position == 2)
  end
  
  #--------------------------------------------------------------------------
  # alias method: new_page
  #--------------------------------------------------------------------------
  alias window_message_new_page_pm_yse new_page
  def new_page(text, pos)
    window_message_new_page_pm_yse(text, pos)
    set_face_position
  end
  
  #--------------------------------------------------------------------------
  # alias method: close
  #--------------------------------------------------------------------------
  alias pop_message_close close
  def close
    pop_message_close
    return unless SceneManager.scene_is?(Scene_Map) 
    return unless @event_pop_id
    @event_pop_id = nil
    @event_pop_follower = false
    @face_window.hide_face
    return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
    @bubble_tag.visible = false if @bubble_tag
  end
  
  #--------------------------------------------------------------------------
  # alias method: open_and_wait
  #--------------------------------------------------------------------------
  alias pop_message_open_and_wait open_and_wait
  def open_and_wait
    pop_message_open_and_wait
    return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
    @bubble_tag.visible = true if @event_pop_id && @bubble_tag
  end
  
  #--------------------------------------------------------------------------
  # alias method: process_all_text
  #--------------------------------------------------------------------------
  alias pop_message_process_all_text process_all_text
  def process_all_text
    @event_pop_id = nil
    convert_escape_characters($game_message.all_text)
    update_placement
    adjust_pop_message($game_message.all_text)
    pop_message_process_all_text
  end

  #--------------------------------------------------------------------------
  # alias method: update_placement
  #--------------------------------------------------------------------------
  alias event_pop_message_update_placement update_placement
  def update_placement
    if SceneManager.scene_is?(Scene_Map) 
      if @event_pop_id.nil?
        fix_default_message
        event_pop_message_update_placement
      elsif @event_pop_id == 0
        character = $game_player
        self.y = character.screen_y - self.height + YSE::POP_MESSAGE::POSITION[:y_buffer]
        self.x = character.screen_x - self.width / 2 + YSE::POP_MESSAGE::POSITION[:x_buffer]
        fix_position_bubble(character)
        set_bubble_tag(character)
      elsif @event_pop_id > 0
        hash = @event_pop_follower ? $game_player.followers : $game_map.events
        character = hash[@event_pop_id]
        self.y = character.screen_y - self.height + YSE::POP_MESSAGE::POSITION[:y_buffer]
        self.x = character.screen_x - self.width / 2 + YSE::POP_MESSAGE::POSITION[:x_buffer]
        fix_position_bubble(character)
        set_bubble_tag(character)
      end
    else
      event_pop_message_update_placement
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: fix_default_message
  #--------------------------------------------------------------------------
  def fix_default_message
    self.width = window_width
    self.height = window_height
    self.x = 0
    @face_window.hide_face if @face_window
    create_contents
    return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
    @bubble_tag.visible = false if @bubble_tag
  end
  
  #--------------------------------------------------------------------------
  # new method: fix_position_bubble
  #--------------------------------------------------------------------------
  def fix_position_bubble(character)
    end_x = self.x + self.width
    end_y = self.y + self.height
    self.x = 0 if self.x < 0
    self.y = character.screen_y if self.y < 0
    self.x = Graphics.width - self.width if end_x > Graphics.width
    self.y = Graphics.height - self.height if end_y > Graphics.height
  end
  
  #--------------------------------------------------------------------------
  # new method: set_bubble_tag
  #--------------------------------------------------------------------------
  def set_bubble_tag(character)
    return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
    return unless @bubble_tag
    up = self.y == character.screen_y
    self.y += up ? @bubble_tag.height / 2 : -@bubble_tag.height / 2
    @bubble_tag.x = character.screen_x - @bubble_tag.width / 2
    if up
      @bubble_tag.src_rect.set(0, @bubble_tag.height, @bubble_tag.width, @bubble_tag.height)
      @bubble_tag.y = self.y - @bubble_tag.height - YSE::POP_MESSAGE::POSITION[:tag_y_buffer]
    else
      @bubble_tag.src_rect.set(0, 0, @bubble_tag.width, @bubble_tag.height)
      @bubble_tag.y = self.y + self.height + YSE::POP_MESSAGE::POSITION[:tag_y_buffer]
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: cal_number_line
  #--------------------------------------------------------------------------
  def cal_number_line(text)
    result = 0
    text.each_line { result += 1 }
    return result
  end
  
  #--------------------------------------------------------------------------
  # new method: cal_width_line
  #--------------------------------------------------------------------------
  def cal_width_line(text)
    result = 0
    text.each_line { |line|
      result = text_size(line).width if result < text_size(line).width
    }
    return result
  end

  #--------------------------------------------------------------------------
  # alias method: adjust_message_window_size
  #--------------------------------------------------------------------------
  if $imported["YEA-MessageSystem"]
  alias yse_pop_message_adjust_message_window_size adjust_message_window_size
  def adjust_message_window_size
    start_name_window if @event_pop_id
    return if @event_pop_id
    yse_pop_message_adjust_message_window_size
  end
  end
  
  #--------------------------------------------------------------------------
  # new method: adjust_pop_message
  #--------------------------------------------------------------------------
  def adjust_pop_message(text = " ")
    return unless SceneManager.scene_is?(Scene_Map) 
    unless @event_pop_id
      if $imported["YEA-MessageSystem"]
        adjust_message_window_size 
      end
      return
    end
    n_line = cal_number_line(text)
    n_line = YSE::POP_MESSAGE::LIMIT[:limit_line] if YSE::POP_MESSAGE::LIMIT[:limit_line] > 0 && cal_number_line(text) > YSE::POP_MESSAGE::LIMIT[:limit_line]
    @real_lines = n_line
    self.height = fitting_height(n_line)
    self.width = cal_width_line(text) + 24
    self.width += new_line_x
    if self.width > YSE::POP_MESSAGE::LIMIT[:limit_width] && YSE::POP_MESSAGE::LIMIT[:limit_width] > 0
      self.width = YSE::POP_MESSAGE::LIMIT[:limit_width]
    end
    create_contents
    update_placement
  end
  
  #--------------------------------------------------------------------------
  # overwrite method: new_line_x
  #--------------------------------------------------------------------------
  def new_line_x
    if $game_message.face_name.empty?
      return 0
    else
      result = YSE::POP_MESSAGE::POSITION[:face_x_buffer]
      p_x = $imported["YEA-MessageSystem"] ? YEA::MESSAGE::FACE_INDENT_X : 112
      result += p_x
      return result
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: real_lines
  #--------------------------------------------------------------------------
  def real_lines
    @real_lines
  end
  
end # Window_Message

#==============================================================================
# ¡ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
  
  #--------------------------------------------------------------------------
  # alias method: create_message_window
  #--------------------------------------------------------------------------
  alias yse_pm_create_message_window create_message_window
  def create_message_window
    yse_pm_create_message_window
    @face_window = Window_Message_Face.new
    @face_window.message_window = @message_window
    if YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
      @bubble_tag_sprite = Sprite.new
      @bubble_tag_sprite.visible = false
      @bubble_tag_sprite.bitmap = Cache.system(YSE::POP_MESSAGE::EFFECT[:bubble_tag_name])
      @bubble_tag_sprite.src_rect.set(0, 0, @bubble_tag_sprite.width, @bubble_tag_sprite.height / 2)
      @message_window.bubble_tag = @bubble_tag_sprite
    end
    @message_window.face_window = @face_window
  end
  
  #--------------------------------------------------------------------------
  # alias method: dispose_spriteset
  #--------------------------------------------------------------------------
  alias pop_message_dispose_spriteset dispose_spriteset
  def dispose_spriteset
    pop_message_dispose_spriteset
    return unless @bubble_tag_sprite
    @bubble_tag_sprite.dispose
  end
  
end # Scene_Map

#==============================================================================

# ¥ End of File

#==============================================================================

 

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

 

어느 부분 때문에 투명화가 안되는 걸까요 ㅠㅠ

 

투명도 뿐이아니라

 

Font.default_name = '궁서'
Font.default_size = 20
 

라는식으로 폰트나 사이즈 수정도 불가능하네요. ㅠㅠ 

폰트 사이즈를 키우면 그냥 대화 팝업창만 커지는군요.

(맨처음 타이틀 화면에서는 적용이됩니다.)

 

 

 

Comment '1'
  • ?
    Alkaid 2016.04.02 21:25
    폰트와 폰트 사이즈의 경우 다른 스크립트로 자체설정한 것을 쓰고 있을 가능성이 있습니다. font란 문구를 현재 프로젝트에서 사용하는 모든 스크립트에서 찾아서 그 중에 폰트설정 관련이 있는지 찾아보기 바랍니다.

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 13180
RMVXA 잃은 능력치에 비례해서 데미지 증가하는법 (데미지 공식) 4 테오드라 2016.04.04 212
RMVXA 몬스터마다 특정한 순서대로 스킬.. 2 JobSangIn 2016.04.03 131
RMVXA 이 스크립트 적용에 대해서 질문이요 AccelHacker 2016.04.03 94
기타 미디파일의 자체음량을 조절하는 방법은 없습니까? 3 미상 2016.04.03 334
RMVXA n번 눌러야 실행되는 이벤트 5 그런가 2016.04.03 112
RMVXA 동영상 재생 문제 2 file 엘드로드 2016.04.03 391
RMVXA 맵배치에대해 질문드립니다. 5 file 프리마리모 2016.04.02 189
기타 게임만드는xp다운받는곳 주소 ㄱㄱ 3 file BJ로딩TV 2016.04.02 297
RMVXA 애니메이션 대상숨기기에 관하여 1 file 기폭 2016.04.01 144
RMVXA 2차원 배열 선언 및 사용법좀 알려주세요. 10 A구몽 2016.04.01 270
RMVXA 전투시 적과 아군에게 걸수있는 버프수가 얼마나 되죠? 1 마차군 2016.04.01 115
RMVX 사진 스크립트 질문이요 1 겜웅이 2016.03.31 105
RMVXA 아이템 타입에 접근하는 스크립트가 무엇인가요? 11 프리마리모 2016.03.31 191
RMVXA 스크립트 질문 2개 있습니다. 1 발로르 2016.03.30 115
RMVX 사용하기 쉬운 액알좀 알려주세요 ㅠㅠ 1 게임을만들자! 2016.03.29 251
RMVXA 대화창 투명도에 대한 질문. 1 프리마리모 2016.03.29 283
사이트 이용 추천 기대작 투표기간이 언제 까지 인가요?? 1 드래곤규 2016.03.29 180
RMVXA 이벤트 에서 사용하는 변수를 스크립트에서 사용할 수 는 없나요? 4 프리마리모 2016.03.28 135
RMVXA 배틀 질문 2 RPGvvxx 2016.03.27 113
RMVXA 적캐릭터(Enemies)정보 습득 불가 버그.. 6 file 프리마리모 2016.03.27 188
Board Pagination Prev 1 ... 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 ... 517 Next
/ 517