查看: 2089|回复: 5

[已经过期] 怎么弄出幻影效果

[复制链接]
梦石
0
星屑
55
在线时间
100 小时
注册时间
2014-10-22
回帖
148
发表于 2014-11-21 11:42:33 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
怎么才可以做出泡泡堂的幻影效果,加到行走图的话太麻烦,而且做不出不动的时候有一个幻影渐渐消失的效果,最好是脚本(因为事件将会狠狠麻烦)



这些是超级幻影和最新的蜜蜂狙击幻影
{~0ZI5}%W0C7ON([}55M6HH.jpg
4037_16294861[1].jpg

开一个坑,废一个坑
梦石
0
星屑
3677
在线时间
4468 小时
注册时间
2008-6-12
回帖
776
发表于 2014-11-21 12:28:46 | 显示全部楼层
[pre lang="ruby" line="1"]#◆◇◆◇◆  マップ残像スクリプト ver 1・02  ◇◆◇◆◇
#  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
#   by みんと

=begin

■ 更新履歴

○ ver 1.02(2010/12/28)
  アニメ表示で落ちるミスを修正

○ ver 1.01(2010/12/20)
  スクロールに対応していなかったミスを修正

○ ver 1.00(2009/05/24)
  公開

■ 説明

マップ上のキャラに残像を表示させます。
イベントの演出に一役買ってくれるかもしれません。

残像を表示するには、
フラッシュに 残像表示 という名前のSEが設定されているアニメを、
残像をつけたいキャラクターに表示してください。
以降は残像が維持されます。
1フレームのアニメに、フラッシュ[残像表示]だけで構いません。

残像を解放するには、
フラッシュに 残像解放 という名前のSE設定されているアニメを、
残像を解放したいキャラクターに表示してください

残像の色はフラッシュの色がそのまま適用されます。

発生する残像の数はフラッシュの時間を使用します。
ただし、あまり多くすると重くなるので、
6程度を目安にしてください。

=end

#==============================================================================
# ☆ MINTO
#------------------------------------------------------------------------------
#   様々なフラグを扱うメインモジュールです。
#==============================================================================

module MINTO
  
  # 残像スクリプトを有効化 ( true で有効 / false で無効 )
  RGSS["残像スクリプト"] = true
  
end

# 残像スクリプトが有効な場合に以降の処理を実行する
if MINTO::RGSS["残像スクリプト"] == true then
  
#==============================================================================
# ■ Sprite
#------------------------------------------------------------------------------
#  スプライト表示を扱う組み込みクラスです。
#==============================================================================

class Sprite
  #--------------------------------------------------------------------------
  # ● 残像用の複製の作成
  #--------------------------------------------------------------------------
  def blink
    # 各データをコピー
    sprite = Sprite.new(self.viewport)
    sprite.bitmap = self.bitmap.dup if self.bitmap
    sprite.x = self.x
    sprite.y = self.y
    sprite.z = self.z - 1
    sprite.visible = false
    sprite.ox = self.ox
    sprite.oy = self.oy
    sprite.angle = self.angle
    sprite.mirror = self.mirror
    sprite.opacity = self.opacity * 80 / 255
    sprite.blend_type = 0
    sprite.color = self.color.dup
    sprite.src_rect = self.src_rect.dup
    sprite.zoom_x = self.zoom_x
    sprite.zoom_y = self.zoom_y
    return sprite
  end
  #--------------------------------------------------------------------------
  # ● データの取得
  #--------------------------------------------------------------------------
  def data_copy(data)
    return if data.disposed? or self.disposed?
    # 各データをコピー
    self.x = data.x
    self.y = data.y
    self.z = data.z - 1
    self.visible = data.visible
    self.ox = data.ox
    self.oy = data.oy
    self.angle = data.angle
    self.mirror = data.mirror
    self.src_rect = data.src_rect
    self.zoom_x = data.zoom_x
    self.zoom_y = data.zoom_y
    self.opacity = data.opacity * 190 / 255
  end
end
#==============================================================================
# ■ Blink_Sprite
#------------------------------------------------------------------------------
#  残像スプライト表示を扱う組み込みクラスです。
#==============================================================================

class Blink_Sprite
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #    sprite : オリジナルの画像
  #--------------------------------------------------------------------------
  def initialize(sprite, size)
    @dx = $game_map.display_x / 4
    @dy = $game_map.display_y / 4
    # 残像のサイズを取得
    @size = size
    # 残像用の配列を作成
    @blink = []
    # ループ処理
    (0...@size).each do |i|
      # 残像スプライトを作成
      @blink = sprite.blink
    end
  end
  #--------------------------------------------------------------------------
  # ● 可視状態の変更
  #    flag : 新しい可視状態
  #--------------------------------------------------------------------------
  def visible=(flag)
    # ループ処理
    for sprite in @blink do
      # 可視状態を変更
      sprite.visible = flag
    end
  end
  #--------------------------------------------------------------------------
  # ● 残像カラーの変更
  #    color : 新しいカラー
  #--------------------------------------------------------------------------
  def color_set(color)
    # ループ処理
    for sprite in @blink do
      # 残像カラーを変更
      #sprite.color = color.dup
    end
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    # ループ処理
    for sprite in @blink do
      # 残像スプライトが存在する場合
      unless sprite.nil? then
        # 残像スプライトが未解放の場合
        unless sprite.disposed? then
          # 残像スプライトを解放
          sprite.dispose
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #    sprite : オリジナルの画像
  #--------------------------------------------------------------------------
  def update(sprite)
    # 残像が可視状態でない場合
    if @blink[0].visible == false then
      # メソッドを返す
      return
    end
    # ループ処理
    (0...@size).each do |i|
      s = @blink[(@size - 1) - i]
      # 前の残像データを渡す
      s.data_copy(@blink[(@size - 1) - (i + 1)])
      s.ox = s.ox + $game_map.display_x / 4 - @dx
      s.oy = s.oy + $game_map.display_y / 4 - @dy
    end
    @dx = $game_map.display_x / 4
    @dy = $game_map.display_y / 4
    # 残像データを更新
    @blink[0].data_copy(sprite)
  end
end
#==============================================================================
# ☆ MINTO_Sprite_Battler_02
#------------------------------------------------------------------------------
#   Sprite_Battlerクラスの強化システムモジュールです。
#==============================================================================

module MINTO_Sprite_Battler_02
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    # 残像の解放
    dispose_blink
    # 継承先の処理に移行
    super
  end
  #--------------------------------------------------------------------------
  # ● 残像の解放
  #--------------------------------------------------------------------------
  def dispose_blink
    # 残像データが有効な場合
    unless @blink_anime.nil? then
      # 残像を解放
      @blink_anime.dispose
      @blink_anime = nil
    end
  end
  #--------------------------------------------------------------------------
  # ● SEとフラッシュのタイミング処理
  #    timing : タイミングデータ (RPG::Animation::Timing)
  #    hit    : ヒットフラグ
  #--------------------------------------------------------------------------
  def animation_process_timing(timing, hit)
    # SE "残像表示" が設定されている場合
    if timing.se.name == "残像表示" then
      # 残像の解放
      dispose_blink
      # 残像用のデータを定義
      @blink_anime = Blink_Sprite.new(self, timing.flash_duration)
      # 残像を可視状態にする
      @blink_anime.visible = true
      # 残像のカラーを定義
      @blink_anime.color_set(timing.flash_color)
      # メソッドを返す
      return
    # SE "残像解放" が設定されている場合
    elsif timing.se.name == "残像解放" then
      # 残像の解放
      dispose_blink
      # メソッドを返す
      return
    end
    # 継承先の処理に移行
    super(timing, hit)
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # 残像データが有効な場合
    unless @blink_anime.nil? then
      # 残像を更新
      @blink_anime.update(self)
    end
    # 継承先の処理に移行
    super
  end
end
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
#  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを
# 監視し、スプライトの状態を自動的に変化させます。
#==============================================================================

class Sprite_Character < RPG::Sprite
  #--------------------------------------------------------------------------
  # ● システムインクルード
  #--------------------------------------------------------------------------
  include MINTO_Sprite_Battler_02         # みんとスプライトバトラー
end

end
[/pre]
使用方法是对需要残像效果的事件播放一个动画,动画里添加一个效果是播放se,se的名称是“残像表示”(这个音效文件是否存在无所谓)即可。

点评

额,动画我会弄,主要是事件就这么简单?公共事件还是什么,动画做好容易,还有,大小是多少,不过还是顶一下  发表于 2014-11-21 18:04
本人三无老人,请大神轻拍
回复

使用道具 举报

梦石
0
星屑
55
在线时间
100 小时
注册时间
2014-10-22
回帖
148
 楼主| 发表于 2014-11-21 20:54:36 | 显示全部楼层
如果需要幻影的是人物怎么办?

开一个坑,废一个坑
回复

使用道具 举报

梦石
0
星屑
55
在线时间
100 小时
注册时间
2014-10-22
回帖
148
 楼主| 发表于 2014-11-21 21:04:31 | 显示全部楼层
你的脚本不行,不能用,可能是我太笨了吧。。。。。。
6KCN(Z%{0B[W5Z%~B5C~[FN.jpg

点评

那是什么,本人脚本渣  发表于 2014-11-24 19:06
在module MINTO里少个初始化: RGSS={}  发表于 2014-11-23 13:02
可能需要前置脚本  发表于 2014-11-22 10:56

开一个坑,废一个坑
回复

使用道具 举报

梦石
0
星屑
175
在线时间
332 小时
注册时间
2013-7-6
回帖
316
发表于 2014-11-24 19:11:28 | 显示全部楼层
1745236314 发表于 2014-11-21 21:04
你的脚本不行,不能用,可能是我太笨了吧。。。。。。

就是在48行加上RGSS={}

点评

你指的什么表格,说明白点。。。  发表于 2014-11-30 21:48
我自己在行走图上加了幻影,对不会ps的我简直。。。。。还有ps的表格怎么弄,表示我还没下载ps= =0美图秀秀没有表格,图画也不行我还不会ps...  发表于 2014-11-28 17:20
偶是熬夜学编程的傻子
回复

使用道具 举报

梦石
0
星屑
55
在线时间
100 小时
注册时间
2014-10-22
回帖
148
 楼主| 发表于 2015-9-22 19:13:34 | 显示全部楼层
于是是否还有更好的点子,这贴不许坟!

评分

参与人数 1星屑 -10 收起 理由
RyanBern -10 不要将坟贴顶起,如果有需求请重开一帖.

查看全部评分


开一个坑,废一个坑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部