设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2692|回复: 5
打印 上一主题 下一主题

[已经解决] 请问如何在标题画面制作漂浮光点效果?

[复制链接]

Lv2.观梦者

梦石
0
星屑
429
在线时间
43 小时
注册时间
2020-7-28
帖子
21
跳转到指定楼层
1
发表于 2020-8-1 11:30:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,想在标题画面上制作一个漂浮光点的效果,可以直接在RMVA中设置实现吗,或者有没有相关的脚本?
求个解答。非常感谢TT

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2020-8-1 12:53:53 | 只看该作者
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
429
在线时间
43 小时
注册时间
2020-7-28
帖子
21
3
 楼主| 发表于 2020-8-1 14:38:36 | 只看该作者
alexncf125 发表于 2020-8-1 12:53
https://rpg.blue/thread-397218-1-1.html
https://rpg.blue/forum.php?mod=viewthread&tid=304811

!!非常感谢!!!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
429
在线时间
43 小时
注册时间
2020-7-28
帖子
21
4
 楼主| 发表于 2020-8-1 14:58:52 | 只看该作者
alexncf125 发表于 2020-8-1 12:53
https://rpg.blue/thread-397218-1-1.html
https://rpg.blue/forum.php?mod=viewthread&tid=304811

_(:з」∠)_那个,其实是想问一下能不能直接在系统默认标题画面实现,试过那个脚本但是实在是太卡了()
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
5
发表于 2020-8-1 15:33:10 | 只看该作者
Azure冰月 发表于 2020-8-1 14:58
_(:з」∠)_那个,其实是想问一下能不能直接在系统默认标题画面实现,试过那个脚本但是实在是太卡了() ...

解压放进Graphics;System里.rar (3.82 KB, 下载次数: 87)
RUBY 代码复制
  1. =begin
  2.       RGSS3
  3.       
  4.       ★ 光拡散エフェクト ★
  5.  
  6.       光が広がったり、集まったり、降ったりします。
  7.       天候と似た使い方を想定しています。
  8.       
  9.       イベントコマンドのスクリプトから起動させてください。
  10.       
  11.       ● コマンド一覧 ●==================================================
  12.       start_effect(type)
  13.       --------------------------------------------------------------------
  14.       光拡散エフェクトを開始します。
  15.       引数の値によってエフェクトの種類が決定します
  16.         1  => 中心から発散
  17.         2  => 中心へ収束
  18.         3  => 中央上部から下へ
  19.         4  => 上部全体から下へ
  20.         5  => 右上から左下へ
  21.        
  22.         21 => 不規則な螺旋を描いて上昇
  23.         22 => ゆらゆらと上昇
  24.         23 => 規則正しい螺旋を描いて上昇
  25.        
  26.         31 => 雪
  27.       ====================================================================
  28.       end_effect
  29.       --------------------------------------------------------------------
  30.       エフェクトの終了。画面上のエフェクトをすべて一気に開放します。
  31.       ====================================================================
  32.       end_effect_fade
  33.       --------------------------------------------------------------------
  34.       エフェクトの終了。画面上のエフェクトを少しづつ開放します。
  35.       ====================================================================
  36.       
  37.       ver1.11
  38.  
  39.       Last Update : 2012/03/24
  40.       02/22 : 「特殊エフェクト - タイトル表示プラグイン」併用時、
  41.          : ニューゲーム選択時にスプライトが解放されない不具合を修正
  42.       ----------------------2019--------------------------
  43.       03/24 : 雪エフェクトの追加
  44.       ----------------------2012--------------------------
  45.       12/17 : RGSS2からの移植
  46.       ----------------------2011--------------------------
  47.       
  48.       ろかん   [url]http://kaisou-ryouiki.sakura.ne.jp/[/url]
  49. =end
  50.  
  51. $rsi ||= {}
  52. $rsi["光拡散エフェクト"] = true
  53.  
  54. module Reffect
  55.   @@span = false
  56.   def initialize(viewport)
  57.     @sp = [0, 0]     # 初期座標
  58.     @ma = [0.0, 0.0] # 移動角度(ラジアン)
  59.     @rd = 0.0        # 初期座標からの半径
  60.     super(viewport)
  61.     self.blend_type = 1
  62.     @@span ^= true
  63.   end
  64.   def width
  65.     Graphics.width
  66.   end
  67.   def height
  68.     Graphics.height
  69.   end
  70.   def zoom=(value)
  71.     self.zoom_x = self.zoom_y = value
  72.   end
  73.   def setGraphic(filename)
  74.     self.bitmap = Cache.system(filename)
  75.     self.ox = self.bitmap.width / 2
  76.     self.oy = self.bitmap.height / 2
  77.   end
  78.   def setStartPosition(typeX, typeY)
  79.     case typeX
  80.     when 0 # ランダム
  81.       @sp[0] = rand(width + 100) - 50
  82.     when 1 # 画面外(左)
  83.       @sp[0] = -30
  84.     when 2 # 中央
  85.       @sp[0] = width / 2
  86.     when 3 # 画面外(右)
  87.       @sp[0] = width + 30
  88.     end
  89.     case typeY
  90.     when 0 # ランダム
  91.       @sp[1] = rand(height + 50) - 25
  92.     when 1 # 画面外(上)
  93.       @sp[1] = -30
  94.     when 2 # 中央
  95.       @sp[1] = height / 2
  96.     when 3 # 画面外(下)
  97.       @sp[1] = height + 30
  98.     end
  99.     self.x = @sp[0]
  100.     self.y = @sp[1]
  101.   end
  102.   def setMoveAngle(ax, ay = ax)
  103.     @ma[0] = Math.cos(ax * 0.01)
  104.     @ma[1] = Math.sin(ay * 0.01)
  105.   end
  106.   def getX
  107.     @sp[0] + @rd * @ma[0]
  108.   end
  109.   def getY
  110.     @sp[1] + @rd * @ma[1]
  111.   end
  112.   def getZoom
  113.     (@rd * @ma[1] / width / 1.5 + 0.8) * (self.opacity / 200.0)
  114.   end
  115. end
  116.  
  117. class Game_Temp
  118.   #--------------------------------------------------------------------------
  119.   # ● 公開インスタンス変数
  120.   #--------------------------------------------------------------------------
  121.   attr_accessor :r_effect_sprites # 特殊効果スプライト群
  122.   #--------------------------------------------------------------------------
  123.   # ● オブジェクト初期化
  124.   #--------------------------------------------------------------------------
  125.   alias r_effect_initialize initialize
  126.   def initialize
  127.     r_effect_initialize
  128.     @r_effect_sprites = $game_temp ? $game_temp.r_effect_sprites : []
  129.   end
  130.   #--------------------------------------------------------------------------
  131.   # ● 特殊効果スプライトの解放
  132.   #--------------------------------------------------------------------------
  133.   def dispose_r_effect
  134.     @r_effect_sprites.each{|sprite| sprite.dispose}
  135.     @r_effect_sprites = []
  136.   end
  137. end
  138.  
  139. class Game_System
  140.   #--------------------------------------------------------------------------
  141.   # ● 公開インスタンス変数
  142.   #--------------------------------------------------------------------------
  143.   attr_accessor :r_effect_type # 特殊効果の種類
  144.   #--------------------------------------------------------------------------
  145.   # ● オブジェクト初期化
  146.   #--------------------------------------------------------------------------
  147.   alias r_effect_initialize initialize
  148.   def initialize
  149.     r_effect_initialize
  150.     @r_effect_type = 0
  151.   end
  152.   #--------------------------------------------------------------------------
  153.   # ● 特殊効果の開始
  154.   #--------------------------------------------------------------------------
  155.   def start_effect(type)
  156.     $game_temp.dispose_r_effect if @r_effect_type != type
  157.     @r_effect_type = type
  158.   end
  159.   #--------------------------------------------------------------------------
  160.   # ● 特殊効果の終了(瞬時)
  161.   #--------------------------------------------------------------------------
  162.   def end_effect
  163.     $game_temp.dispose_r_effect
  164.     @r_effect_type = 0
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● 特殊効果の終了(フェード)
  168.   #--------------------------------------------------------------------------
  169.   def end_effect_fade
  170.     @r_effect_type = 0
  171.   end
  172. end
  173.  
  174. class Game_Interpreter
  175.   #--------------------------------------------------------------------------
  176.   # ● 特殊効果の開始
  177.   #--------------------------------------------------------------------------
  178.   def start_effect(type)
  179.     $game_system.start_effect(type)
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 特殊効果の終了(瞬時)
  183.   #--------------------------------------------------------------------------
  184.   def end_effect
  185.     $game_system.end_effect
  186.   end
  187.   #--------------------------------------------------------------------------
  188.   # ● 特殊効果の終了(フェード)
  189.   #--------------------------------------------------------------------------
  190.   def end_effect_fade
  191.     $game_system.end_effect_fade
  192.   end
  193. end
  194.  
  195. class Sprite_Reffect_Diffusion < Sprite
  196.   #--------------------------------------------------------------------------
  197.   # ● インクルード Reffect
  198.   #--------------------------------------------------------------------------
  199.   include Reffect
  200.   #--------------------------------------------------------------------------
  201.   # ● オブジェクト初期化
  202.   #--------------------------------------------------------------------------
  203.   def initialize(viewport)
  204.     super(viewport)
  205.     case $game_system.r_effect_type
  206.     when 1
  207.       @rd = rand(width / 3).to_f
  208.       @moveSpeed = rand(50).next * 0.01 + 0.5
  209.       @existCount = rand(100) + 80
  210.       setStartPosition(2, 2)
  211.       setMoveAngle(rand(2 * Math::PI * 100))
  212.       setGraphic("RE_001")
  213.     when 2
  214.       @rd = rand(width / 3).to_f + 30.0
  215.       @moveSpeed = rand(50).next * -0.01 - 0.5
  216.       @existCount = rand(100) + 90
  217.       setStartPosition(2, 2)
  218.       setMoveAngle(rand(2 * Math::PI * 100))
  219.       setGraphic("RE_001")
  220.     when 3
  221.       @rd = rand(width / 2).to_f
  222.       @moveSpeed = rand(50).next * 0.01 + 0.5
  223.       @existCount = rand(100) + 80
  224.       setStartPosition(2, 1)
  225.       setMoveAngle(rand(2 * Math::PI * 100), rand(Math::PI * 100))
  226.       setGraphic("RE_001")
  227.     when 4
  228.       @rd = rand(width / 2).to_f
  229.       @moveSpeed = rand(50).next * 0.01 + 0.5
  230.       @existCount = rand(100) + 80
  231.       setStartPosition(0, 1)
  232.       setMoveAngle(rand(2 * Math::PI * 100), rand(Math::PI * 100))
  233.       setGraphic("RE_001")
  234.     when 5
  235.       @rd = rand(width / 2).to_f
  236.       @moveSpeed = rand(50).next * 0.01 + 0.5
  237.       @existCount = rand(100) + 120
  238.       setStartPosition(3, 1)
  239.       setMoveAngle(rand(Math::PI * 100) + 90, rand(Math::PI * 100))
  240.       setGraphic("RE_001")
  241.     end
  242.     @maxOpacity = rand(160) + 40
  243.     self.opacity = 1
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● フレーム更新
  247.   #--------------------------------------------------------------------------
  248.   def update
  249.     if self.opacity.zero?
  250.       dispose
  251.       $game_temp.r_effect_sprites.delete(self)
  252.     else
  253.       @existCount -= 1
  254.       @rd = [@rd + @moveSpeed, 0.0].max
  255.       self.x = getX
  256.       self.y = getY
  257.       self.zoom = getZoom
  258.       self.opacity = [self.opacity + (@existCount > 0 ? 1 : -1), @maxOpacity].min
  259.     end
  260.   end
  261. end
  262.  
  263. class Sprite_Reffect_Spiral < Sprite
  264.   #--------------------------------------------------------------------------
  265.   # ● インクルード Reffect
  266.   #--------------------------------------------------------------------------
  267.   include Reffect
  268.   #--------------------------------------------------------------------------
  269.   # ● オブジェクト初期化
  270.   #--------------------------------------------------------------------------
  271.   def initialize(viewport)
  272.     super(viewport)
  273.     case $game_system.r_effect_type
  274.     when 21
  275.       @rd = rand(200).next.to_f
  276.       @moveSpeed = 5.0 - @rd / 50.0
  277.       @nextAngle = rand(360).to_f
  278.       @collapseSpeed = 1
  279.       setStartPosition(2, 3)
  280.       setGraphic("RE_002")
  281.     when 22
  282.       @rd = rand(40).next.to_f
  283.       @moveSpeed = rand(100).next * 0.01 + 1.0
  284.       @nextAngle = rand(360).to_f
  285.       @collapseSpeed = rand(3).zero? ? 2 : 1
  286.       setStartPosition(0, 3)
  287.       setGraphic("RE_002")
  288.     when 23
  289.       @rd = 180
  290.       @moveSpeed = 1.7
  291.       @nextAngle = @@span ? 0.0 : 180.0
  292.       @collapseSpeed = 0
  293.       setStartPosition(2, 3)
  294.       setGraphic("RE_002")
  295.     end
  296.     @floteY = self.y.to_f
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # ● フレーム更新
  300.   #--------------------------------------------------------------------------
  301.   def update
  302.     if self.y <= -self.oy || self.opacity.zero?
  303.       dispose
  304.       $game_temp.r_effect_sprites.delete(self)
  305.     else
  306.       @nextAngle += [@moveSpeed, 2].min
  307.       @nextAngle = 0.0 if @nextAngle >= 360
  308.       setMoveAngle(@nextAngle * 1.74533)
  309.       self.x = getX
  310.       self.y = (@floteY -= @moveSpeed).round
  311.       self.zoom = getZoom
  312.       self.opacity -= @collapseSpeed
  313.     end
  314.   end
  315. end
  316.  
  317. class Sprite_Reffect_Snow < Sprite
  318.   #--------------------------------------------------------------------------
  319.   # ● インクルード Reffect
  320.   #--------------------------------------------------------------------------
  321.   include Reffect
  322.   #--------------------------------------------------------------------------
  323.   # ● オブジェクト初期化
  324.   #--------------------------------------------------------------------------
  325.   def initialize(viewport)
  326.     super(viewport)
  327.     setStartPosition(0, 1)
  328.     setGraphic("RE_003")
  329.     case rand(100)
  330.     when 0..49
  331.       self.zoom = (3 + rand(2)) / 10.0
  332.     when 50..89
  333.       self.zoom = (6 + rand(2)) / 10.0
  334.     when 90..99
  335.       self.zoom = (9 + rand(2)) / 10.0
  336.     end
  337.     self.z = self.zoom_x * 10
  338.     @moveSpeed = self.zoom_x * 1.6
  339.     @floteY = self.y.to_f
  340.     @rd = rand(10).next.to_f
  341.     @nextAngle = rand(360).to_f
  342.     @existCount = 1500
  343.   end
  344.   #--------------------------------------------------------------------------
  345.   # ● フレーム更新
  346.   #--------------------------------------------------------------------------
  347.   def update
  348.     if self.y > height || self.opacity.zero?
  349.       dispose
  350.       $game_temp.r_effect_sprites.delete(self)
  351.     else
  352.       @existCount -= 3
  353.       @nextAngle += [@moveSpeed, 2].min
  354.       @nextAngle = 0.0 if @nextAngle >= 360
  355.       setMoveAngle(@nextAngle * 1.74533)
  356.       self.x = getX
  357.       self.y = (@floteY += @moveSpeed).round
  358.       self.opacity = @existCount
  359.     end
  360.   end
  361. end
  362.  
  363. class Spriteset_Map
  364.   @@re_add_count = 0
  365.   #--------------------------------------------------------------------------
  366.   # ● 解放
  367.   #--------------------------------------------------------------------------
  368.   alias r_effect_dispose dispose
  369.   def dispose
  370.     r_effect_dispose
  371.     $game_temp.dispose_r_effect
  372.   end
  373.   #--------------------------------------------------------------------------
  374.   # ● フレーム更新
  375.   #--------------------------------------------------------------------------
  376.   alias r_effect_update update
  377.   def update
  378.     r_effect_update
  379.     update_r_effect
  380.   end
  381.   #--------------------------------------------------------------------------
  382.   # ● 特殊エフェクトの更新
  383.   #--------------------------------------------------------------------------
  384.   def update_r_effect
  385.     unless $game_system.r_effect_type.zero?
  386.       if @@re_add_count.zero?
  387.         case $game_system.r_effect_type
  388.         when  1..10
  389.           sprite = Sprite_Reffect_Diffusion.new(@viewport3)
  390.           @@re_add_count = 10
  391.         when 21..30
  392.           sprite = Sprite_Reffect_Spiral.new(@viewport3)
  393.           @@re_add_count = 10
  394.         when 31..40
  395.           sprite = Sprite_Reffect_Snow.new(@viewport3)
  396.           @@re_add_count = 20
  397.         end
  398.         $game_temp.r_effect_sprites << sprite
  399.       end
  400.       @@re_add_count -= 1
  401.     end
  402.     $game_temp.r_effect_sprites.each{|sprite| sprite.update}
  403.   end
  404. end

RUBY 代码复制
  1. =begin
  2.       RGSS3
  3.       
  4.       ★特殊エフェクト - タイトル表示プラグイン★
  5.       
  6.       マップで表示することを想定している「光拡散エフェクト」「スクリーンノイズ」
  7.       をタイトルでも表示できるようにします。
  8.       
  9.       ver1.10
  10.  
  11.       Last Update : 2014/09/05
  12.       09/05 : 「光拡散エフェクト」のエフェクト番号31(雪)の表示に対応していなかった為、修正
  13.       ----------------------2012-------------------------
  14.       01/19 : RGSS2からの移植
  15.       ----------------------2012-------------------------
  16.       
  17.       ろかん   [url]http://kaisou-ryouiki.sakura.ne.jp/[/url]
  18. =end
  19.  
  20. #===========================================
  21. #   設定箇所
  22. #===========================================
  23. module Rokan
  24. module Title_in_Reffect
  25.     # 光拡散エフェクト
  26.     # 有効にする場合は「光拡散エフェクト」を別途導入してください。
  27.     Reffective = true
  28.     ReffectType = 4  # エフェクトの種類を指定
  29.  
  30.     # スクリーンノイズ
  31.     # 有効にする場合は「スクリーンノイズ」を別途導入してください。
  32.     NoiseEffective = false
  33. end
  34. end
  35. #===========================================
  36. #   ここまで
  37. #===========================================
  38.  
  39. $rsi ||= {}
  40. $rsi["特殊エフェクト - タイトル表示プラグイン"] = true
  41.  
  42. class Scene_Title < Scene_Base
  43.   #--------------------------------------------------------------------------
  44.   # ● インクルード Rokan::Title_in_Reffect
  45.   #--------------------------------------------------------------------------
  46.   include Rokan::Title_in_Reffect
  47.   #--------------------------------------------------------------------------
  48.   # ● 開始処理
  49.   #--------------------------------------------------------------------------
  50.   alias _reffect_start start
  51.   def start
  52.     _reffect_start
  53.     create_reffect
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 終了処理
  57.   #--------------------------------------------------------------------------
  58.   alias _reffect_terminate terminate
  59.   def terminate
  60.     _reffect_terminate
  61.     dispose_reffect
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● フレーム更新
  65.   #--------------------------------------------------------------------------
  66.   alias _reffect_update update unless $!
  67.   def update
  68.     _reffect_update
  69.     update_reffect
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● 特殊エフェクトの作成
  73.   #--------------------------------------------------------------------------
  74.   def create_reffect
  75.     if Reffective
  76.       @re_add_count = 0
  77.       @viewport = Viewport.new
  78.       @viewport.z = 70
  79.       $game_system.r_effect_type = ReffectType
  80.     end
  81.     if NoiseEffective
  82.       $game_temp.r_noise_effect_spriteset = Spriteset_Noise.new
  83.       $game_system.start_noise
  84.     end
  85.   end
  86.   #--------------------------------------------------------------------------
  87.   # ● 特殊エフェクトの解放
  88.   #--------------------------------------------------------------------------
  89.   def dispose_reffect
  90.     if Reffective
  91.       $game_system.r_effect_type = 0
  92.       $game_temp.dispose_r_effect
  93.       @viewport.dispose
  94.     end
  95.     if NoiseEffective && $game_temp.r_noise_effect_spriteset
  96.       $game_system.r_noise_effect = false
  97.       $game_temp.r_noise_effect_spriteset.dispose_noise
  98.     end
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 特殊エフェクトのフレーム更新
  102.   #--------------------------------------------------------------------------
  103.   def update_reffect
  104.     if Reffective
  105.       unless $game_system.r_effect_type.zero?
  106.         if @re_add_count.zero?
  107.           case $game_system.r_effect_type
  108.           when  1..10
  109.             sprite = Sprite_Reffect_Diffusion.new(@viewport)
  110.             @re_add_count = 10
  111.           when 21..30
  112.             sprite = Sprite_Reffect_Spiral.new(@viewport)
  113.             @re_add_count = 10
  114.           when 31..40
  115.             sprite = Sprite_Reffect_Snow.new(@viewport3)
  116.             @re_add_count = 20
  117.           end
  118.           $game_temp.r_effect_sprites << sprite
  119.         end
  120.         @re_add_count -= 1
  121.       end
  122.       $game_temp.r_effect_sprites.each{|sprite| sprite.update}
  123.     end
  124.     if NoiseEffective && $game_temp.r_noise_effect_spriteset
  125.       $game_temp.r_noise_effect_spriteset.update
  126.     end
  127.   end
  128.   #--------------------------------------------------------------------------
  129.   # ● 背景の作成
  130.   #--------------------------------------------------------------------------
  131.   alias _reffect_create_background create_background
  132.   def create_background
  133.     _reffect_create_background
  134.     @sprite2.z = 80
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ● コマンドウィンドウの作成
  138.   #--------------------------------------------------------------------------
  139.   alias _reffect_create_command_window create_command_window
  140.   def create_command_window
  141.     _reffect_create_command_window
  142.     @command_window.z = 95
  143.   end
  144. end

点评

非常感谢!!!!!!!!  发表于 2020-8-1 16:13

评分

参与人数 2星屑 +100 +1 收起 理由
VIPArcher + 100 认可答案
Azure冰月 + 1 塞糖

查看全部评分

回复 支持 2 反对 0

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 04:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表