Avangs

  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입
Avangs
  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입

NOTICE

공지사항
더보기
  • 홈페이지 개편 및 시스템 정비 작업 안내 04.13

Recently Added Games

최근 등록 게임
  • 어드벤쳐 [1치킨 수상작] 로봇 관리자 file 04.13
  • 퍼즐/보드 알파벳 용사 2 file 04.08
  • 롤플레잉 스틱 파이터 섬 1 체험판 file 03.31
  • 어드벤쳐 9th Existence file 03.26
  • 어드벤쳐 악역스타 훈발이 file 03.13
기타
2009.02.22 18:36

더블애니메이션 스크립트

백호
조회 수 1660 추천 수 0 댓글 1
크게 작게 위로 아래로 댓글로 가기 인쇄
크게 작게 위로 아래로 댓글로 가기 인쇄
애니메이션이 동시에 두개가 나가는 스크립트입니다
하나는 스킬에 지정한 애니메이션 하나는 스크립트에 지정한 애니메이션입니다
시간이 없어서 번역은 못함 ㅠ ㅈㅅ

주의사항은 너무 복잡한 애니메이션 두개를 동시에 하시면 렉이 걸릴수도있다는것;;

#---------------여기서부터
#==============================================================================
# 걾 ?긳깑귺긦긽?긘깈깛          by Claimh
#------------------------------------------------------------------------------
#  갋긚긌깑럊뾭렄궻뫮뤭뫀귺긦긽?긘깈깛귩볫뢣돸갃
#  갋딈?밒궸룉뿚궕뢣궘궶귡됀?맜궇귟갃
#-< 띋믦? >-------------------------------------------------------------------
# RPG::Sprite
#  initialize, dispose, update, effect?, x=(), y=()
#==============================================================================

module Double_Animation
  DOUBLE_ANIME = []
#==============================================================================
# 걽 긇긚??귽긛START
#==============================================================================
  # 스킬별 더블 애니메이션의 세팅 하심되요ㅎㅎㅎㅎㅎㅎ
  #  DOUBLE_ANIME [스킬ID] = 애니메이션ID
  DOUBLE_ANIME[1] = 0            #스킬에 지정하신 애니메이션하고 여기지정한 애니하고
  DOUBLE_ANIME[5] = 0        #같이 뜹니다 ㅎㅎ
#==============================================================================
# 걽 긇긚??귽긛END
#==============================================================================
  module_function
  #--------------------------------------------------------------------------
  # 걶 ?긳깑귺긦긽?긘깈깛궻롦벦
  #--------------------------------------------------------------------------
  def get_double_anime(skill_id)
    unless DOUBLE_ANIME[skill_id].nil?
      return DOUBLE_ANIME[skill_id]
    else
      return 0
    end
  end
end

#==============================================================================
# 걾 Scene_Battle
#==============================================================================
class Scene_Battle
  #--------------------------------------------------------------------------
  # 걶 긲깒??뛛륷 (긽귽깛긲긃?긛 긚긡긞긵 1 : 귺긏긘깈깛?뷈)
  #--------------------------------------------------------------------------
  alias update_phase4_step1_double_anime update_phase4_step1
  def update_phase4_step1
    # ?긳깑귺긦긽?긘깈깛궻룊딖돸
    @double_animation_id = 0
    update_phase4_step1_double_anime
  end
  #--------------------------------------------------------------------------
  # 걶 긚긌깑귺긏긘깈깛 뙅됈띿맟
  #--------------------------------------------------------------------------
  alias make_skill_action_result_double_anime make_skill_action_result
  def make_skill_action_result
    make_skill_action_result_double_anime
    if @phase4_step != 1
      # ?긳깑귺긦긽?긘깈깛궻롦벦궴SET
      @double_animation_id = Double_Animation.get_double_anime(@skill.id)
    end
  end
  #--------------------------------------------------------------------------
  # 걶 긲깒??뛛륷 (긽귽깛긲긃?긛 긚긡긞긵 4 : 뫮뤭뫀귺긦긽?긘깈깛)
  #--------------------------------------------------------------------------
  alias update_phase4_step4_double_anime update_phase4_step4
  def update_phase4_step4
    update_phase4_step4_double_anime
    # 뫮뤭뫀귺긦긽?긘깈깛 [?긳깑]
    for target in @target_battlers
      target.double_animation_id = @double_animation_id
    end
  end
end

#==============================================================================
# 걾 Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # 걶 뚺둎귽깛긚?깛긚빾릶
  #--------------------------------------------------------------------------
  attr_accessor :double_animation_id    # ?긳깑귺긦긽?긘깈깛 ID
  #--------------------------------------------------------------------------
  # 걶 긆긳긙긃긏긣룊딖돸
  #--------------------------------------------------------------------------
  alias init_double_anime initialize
  def initialize
    init_double_anime
    @double_animation_id = 0
  end
end

#==============================================================================
# 걾 Sprite_Battler
#==============================================================================
class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # 걶 긲깒??뛛륷
  #--------------------------------------------------------------------------
  alias update_double_anime update
  def update
    # 긫긣깋?궕 nil 궻뤾뜃
    if @battler == nil
      return
    end
    # 됀럨궻뤾뜃
    if @battler_visible
      # ?긳깑귺긦긽?긘깈깛
      if @battler.double_animation_id != 0
        animation = $data_animations[@battler.double_animation_id]
        animation2(animation, @battler.animation_hit)
        @battler.double_animation_id = 0
      end
    end
    update_double_anime
  end
end


#==============================================================================
# 걾 RPG::Sprite
#==============================================================================
module RPG
  class Sprite < ::Sprite
    @@_animations2 = []
    @@_reference_count2 = {}
    # 귽긦긘긿깑룉뿚 [띋믦?]
    def initialize(viewport = nil)
      super(viewport)
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
      @_collapse_duration = 0
      @_damage_duration = 0
      @_animation_duration = 0
      @_animation_duration2 = 0
      @_blink = false
    end
    # 긚긵깋귽긣뤑땸 [띋믦?]
    def dispose
      dispose_damage
      dispose_animation
      dispose_animation2
      dispose_loop_animation
      super
    end
    # 귺긦긽?긘깈깛띿맟 [?긳깑]
    def animation2(animation, hit)
      dispose_animation2
      @_animation2 = animation
      return if @_animation2 == nil
      @_animation_hit2 = hit
      @_animation_duration2 = @_animation2.frame_max
      animation_name = @_animation2.animation_name
      animation_hue = @_animation2.animation_hue
      bitmap = RPG::Cache.animation(animation_name, animation_hue)
      if @@_reference_count2.include?(bitmap)
        @@_reference_count2[bitmap] += 1
      else
        @@_reference_count2[bitmap] = 1
      end
      @_animation_sprites2 = []
      if @_animation2.position != 3 or not @@_animations2.include?(animation)
        for i in 0..15
          sprite = ::Sprite.new(self.viewport)
          sprite.bitmap = bitmap
          sprite.visible = false
          @_animation_sprites2.push(sprite)
        end
        unless @@_animations2.include?(animation)
          @@_animations2.push(animation)
        end
      end
      update_animation2
    end
    # 귺긦긽?긘깈깛뤑땸 [?긳깑]
    def dispose_animation2
      if @_animation_sprites2 != nil
        sprite = @_animation_sprites2[0]
        if sprite != nil
          @@_reference_count2[sprite.bitmap] -= 1
          if @@_reference_count2[sprite.bitmap] == 0
            sprite.bitmap.dispose
          end
        end
        for sprite in @_animation_sprites2
          sprite.dispose
        end
        @_animation_sprites2 = nil
        @_animation2 = nil
      end
    end
    # 긄긲긃긏긣뭷갎  [띋믦?]
    def effect?
      @_whiten_duration > 0 or
      @_appear_duration > 0 or
      @_escape_duration > 0 or
      @_collapse_duration > 0 or
      @_damage_duration > 0 or
      @_animation_duration > 0 or
      @_animation_duration2 > 0
    end
    # 긚긵깋귽긣?긲깒??뛛륷 [띋믦?]
    def update
      super
      if @_whiten_duration > 0
        @_whiten_duration -= 1
        self.color.alpha = 128 - (16 - @_whiten_duration) * 10
      end
      if @_appear_duration > 0
        @_appear_duration -= 1
        self.opacity = (16 - @_appear_duration) * 16
      end
      if @_escape_duration > 0
        @_escape_duration -= 1
        self.opacity = 256 - (32 - @_escape_duration) * 10
      end
      if @_collapse_duration > 0
        @_collapse_duration -= 1
        self.opacity = 256 - (48 - @_collapse_duration) * 6
      end
      if @_damage_duration > 0
        @_damage_duration -= 1
        case @_damage_duration
        when 38..39
          @_damage_sprite.y -= 4
        when 36..37
          @_damage_sprite.y -= 2
        when 34..35
          @_damage_sprite.y += 2
        when 28..33
          @_damage_sprite.y += 4
        end
        @_damage_sprite.opacity = 256 - (12 - @_damage_duration) * 32
        if @_damage_duration == 0
          dispose_damage
        end
      end
      if @_animation != nil and (Graphics.frame_count % 2 == 0)
        @_animation_duration -= 1
        update_animation
      end
      if @_animation2 != nil and (Graphics.frame_count % 2 == 0)
        @_animation_duration2 -= 1
        update_animation2
      end
      if @_loop_animation != nil and (Graphics.frame_count % 2 == 0)
        update_loop_animation
        @_loop_animation_index += 1
        @_loop_animation_index %= @_loop_animation.frame_max
      end
      if @_blink
        @_blink_count = (@_blink_count + 1) % 32
        if @_blink_count < 16
          alpha = (16 - @_blink_count) * 6
        else
          alpha = (@_blink_count - 16) * 6
        end
        self.color.set(255, 255, 255, alpha)
      end
      @@_animations.clear
      @@_animations2.clear
    end
    # 귺긦긽?긘깈깛뛛륷 [?긳깑]
    def update_animation2
      if @_animation_duration2 > 0
        frame_index = @_animation2.frame_max - @_animation_duration2
        cell_data = @_animation2.frames[frame_index].cell_data
        position = @_animation2.position
        animation_set_sprites(@_animation_sprites2, cell_data, position)
        for timing in @_animation2.timings
          if timing.frame == frame_index
            animation_process_timing(timing, @_animation_hit2)
          end
        end
      else
        dispose_animation2
      end
    end
    # 긚긵깋귽긣x댧뭫뛛륷  [띋믦?]
    def x=(x)
      sx = x - self.x
      if sx != 0
        if @_animation_sprites != nil
          for i in 0..15
            @_animation_sprites[i].x += sx
          end
        end
        if @_animation_sprites2 != nil
          for i in 0..15
            @_animation_sprites2[i].x += sx
          end
        end
        if @_loop_animation_sprites != nil
          for i in 0..15
            @_loop_animation_sprites[i].x += sx
          end
        end
      end
      super
    end
    # 긚긵깋귽긣y댧뭫뛛륷  [띋믦?]
    def y=(y)
      sy = y - self.y
      if sy != 0
        if @_animation_sprites != nil
          for i in 0..15
            @_animation_sprites[i].y += sy
          end
        end
        if @_animation_sprites2 != nil
          for i in 0..15
            @_animation_sprites2[i].y += sy
          end
        end
        if @_loop_animation_sprites != nil
          for i in 0..15
            @_loop_animation_sprites[i].y += sy
          end
        end
      end
      super
    end
  end
end
#-----------------끝!!

사용법
우선 찔르신후  16~19줄에 가보시면 제가 주석으로 설명을 대충 적었지만 모를수도 있으니
대충 설명더 해드립니다.
16~19줄가시면
 DOUBLE_ANIME[1] = 0  이런거 잇을건데요
여기서  DOUBLE_ANIME[스킬id(번호임)] = 애니메이션아이디(번호)
이렇게 지정하시면 됩니다.
스크립트에 지정한 애니메이션과 스킬에 지정한것이 동시에 나갑니다

출처는  Code Crush 입니다

Who's 백호

?

이상혁입니다.

http://elab.kr

0 추천 0 비추천
Facebook Twitter Google Pinterest KakaoStory Band
위로 아래로 댓글로 가기 인쇄
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comment '1'
  • ?
    이럭저력 2010.05.22 18:12

    감사하빈다.

    댓글

Category
  • 그래픽(16)
  • 맵/타일(15)
  • 메뉴(88)
  • 메시지(26)
  • 미니맵(9)
  • 버그픽스(0)
  • 변수/스위치(10)
  • 상점(14)
  • 상태/속성(8)
  • 스킬(49)
  • 아이템(34)
  • 액터(4)
  • 원경(0)
  • 영상(7)
  • 오디오(8)
  • 온라인(23)
  • 이동 및 탈것(62)
  • 이름입력(10)
  • 장비(34)
  • 저장(34)
  • 전투(174)
  • 제작도구(1)
  • 직업(2)
  • 퀘스트(3)
  • 키입력(18)
  • 타이틀/게임오버(24)
  • 파티(11)
  • HUD(34)
  • 기타(254)
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 스크립트 자료 게시물 작성시 주의사항 습작 2012.12.24 9769
1021 제작도구 [XP/VX/VXA] Doodad's Editor by newold Alkaid 2020.07.12 597
1020 메시지 Taylor's Simple Message System 2000 Alkaid 2020.07.05 426
1019 이름입력 한글조합입력기(영어가능) file 조규진1 2019.11.10 731
1018 맵/타일 맵연결 스크립트 (데모첨부) file 게임애호가 2018.06.15 900
1017 전투 전투중에 장비들 교체하기 file 레이스89 2017.08.19 930
1016 온라인 인터넷 웹 상에서의 시간을 취득하는 스크립트 1 이우 2016.05.24 1085
1015 장비 착용한 장비에 따라 모습이 달라지는 스크립트 예제 5 file 게임애호가 2015.02.14 2244
1014 기타 [All RGSS] File-Ex file Cheapmunk 2014.12.29 1097
1013 기타 [All RGSS] FileTest (Unicode) file Cheapmunk 2014.12.29 745
1012 기타 [RGSS XP] 게임 해상도 조절 스크립트 (*2) 11 file Cheapmunk 2014.10.03 2826
1011 그래픽 Drago - Custom Resolution II 1 Alkaid 2014.09.10 1242
1010 기타 레벨업스크립트(xp) 2 게임을만들자! 2014.08.05 1929
1009 메뉴 MOG - Scroll Bar for XP file 습작 2014.07.06 1714
1008 기타 [All RGSS] 윈도우 메세지박스 스크립트 (Completed ver) 5 file Cheapmunk 2014.06.22 2374
1007 기타 [All RGSS] 게임 다중 실행 방지 스크립트 1 file Cheapmunk 2014.05.24 1544
1006 기타 RM2kXP file 습작 2014.03.17 1696
1005 기타 [All RGSS] 윈도우 커서 숨기기/보이기 1 file Cheapmunk 2014.03.02 2140
1004 기타 Drago - Custom Resolution by LiTTleDRAgo Alkaid 2014.02.13 1301
1003 그래픽 [XP/VX/VXA] Drago - Transition Pack Alkaid 2014.02.13 1365
1002 기타 [XP/VX/VXA] Map Screenshot by LiTTleDRAgo 1 Alkaid 2014.02.13 1019
쓰기
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 52 Next
/ 52
AVANGS

게임 제작, 창작, 자료, 강좌를 연결하는 커뮤니티

  • 개인정보 취급방침

Copyright © 2026 Avangs