- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Effet de lumière sympatique compatible VX/VXAce
Mer 8 Juin 2016 - 19:47
L'utilisation est très simple.
Il nécessite cependant 3 images à placer dans la partie "Graphic/System"
En appel de script écrire:
"start_effect(numéro)"
(bien sûr vous mettez un numéro à la place de numéro, vous l'écrivez pas tel quel )
Pour enlever l'effet il faut écrire (en appel de script toujours):
"end_effect" pour un arrêt brutal
"end_effect_fade" pour un arrêt en douceur
J'ai traduit directement les effet de lumière sur le script.
D'ailleurs le voici:
Voilà la source -> http://kaisou-ryouiki.sakura.ne.jp/
L'image -> http://kaisou-ryouiki.sakura.ne.jp/material/graphic/RE.zip
Et le script original -> http://kaisou-ryouiki.sakura.ne.jp/material/rgss3/r_effect.txt
Oh oh oh, c'est pas fini c'est Noël après tout, quelques vidéos qui montre les effets en question
https://www.youtube.com/watch?v=XOahRa-thvU&feature=youtu.be
https://www.youtube.com/watch?v=_ipHgryBxoE&feature=youtu.be
Voilà voilà, bonne fête.
Il nécessite cependant 3 images à placer dans la partie "Graphic/System"
En appel de script écrire:
"start_effect(numéro)"
(bien sûr vous mettez un numéro à la place de numéro, vous l'écrivez pas tel quel )
Pour enlever l'effet il faut écrire (en appel de script toujours):
"end_effect" pour un arrêt brutal
"end_effect_fade" pour un arrêt en douceur
J'ai traduit directement les effet de lumière sur le script.
D'ailleurs le voici:
- Code:
=begin
RGSS3
★ 光拡散エフェクト ★ Effet de diffusion de la lumière
光が広がったり、集まったり、降ったりします。
天候と似た使い方を想定しています。 l'utilisation semblable à la météo.
イベントコマンドのスクリプトから起動させてください。 commencer à partir de la commande de l'événement dans le script.
● コマンド一覧 ●===Liste des commandes========================================
start_effect(type)
--------------------------------------------------------------------
光拡散エフェクトを開始します。
引数の値によってエフェクトの種類が決定します
1 => lumière du centre vers l'extérieur
2 => Lumière de l'extérieur vers le centre
3 => Tombe vers le centre de l'écran
4 => Tombe vers le bas de l'écran
5 => Du coin haut droite vers le bas gauche
21 => Du bas de l'écran vers le haut en tournoyant
22 => Lumière du bas vers le milieu de l'écran
23 => Spirale du bas vers le haut
31 => Neige
====================================================================
end_effect
--------------------------------------------------------------------
Fin de l'effet de l'animation (brutal)
====================================================================
end_effect_fade
--------------------------------------------------------------------
Fin de l'effet de l'animation (en fondu)
====================================================================
ver1.10
Last Update : 2012/03/24
03/24 : 雪エフェクトの追加
----------------------2012--------------------------
12/17 : RGSS2からの移植
----------------------2011--------------------------
ろかん http://kaisou-ryouiki.sakura.ne.jp/
=end
$rsi ||= {}
$rsi["光拡散エフェクト"] = true
module Reffect
@@span = false
def initialize(viewport)
@sp = [0, 0] # 初期座標
@ma = [0.0, 0.0] # 移動角度(ラジアン)
@rd = 0.0 # 初期座標からの半径
super(viewport)
self.blend_type = 1
@@span ^= true
end
def width
Graphics.width
end
def height
Graphics.height
end
def zoom=(value)
self.zoom_x = self.zoom_y = value
end
def setGraphic(filename)
self.bitmap = Cache.system(filename)
self.ox = self.bitmap.width / 2
self.oy = self.bitmap.height / 2
end
def setStartPosition(typeX, typeY)
case typeX
when 0 # ランダム
@sp[0] = rand(width + 100) - 50
when 1 # 画面外(左)
@sp[0] = -30
when 2 # 中央
@sp[0] = width / 2
when 3 # 画面外(右)
@sp[0] = width + 30
end
case typeY
when 0 # ランダム
@sp[1] = rand(height + 50) - 25
when 1 # 画面外(上)
@sp[1] = -30
when 2 # 中央
@sp[1] = height / 2
when 3 # 画面外(下)
@sp[1] = height + 30
end
self.x = @sp[0]
self.y = @sp[1]
end
def setMoveAngle(ax, ay = ax)
@ma[0] = Math.cos(ax * 0.01)
@ma[1] = Math.sin(ay * 0.01)
end
def getX
@sp[0] + @rd * @ma[0]
end
def getY
@sp[1] + @rd * @ma[1]
end
def getZoom
(@rd * @ma[1] / width / 1.5 + 0.8) * (self.opacity / 200.0)
end
end
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :r_effect_sprites # 特殊効果スプライト群
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias r_effect_initialize initialize
def initialize
r_effect_initialize
@r_effect_sprites = []
end
#--------------------------------------------------------------------------
# ● 特殊効果スプライトの解放
#--------------------------------------------------------------------------
def dispose_r_effect
@r_effect_sprites.each{|sprite| sprite.dispose}
@r_effect_sprites = []
end
end
class Game_System
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :r_effect_type # 特殊効果の種類
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias r_effect_initialize initialize
def initialize
r_effect_initialize
@r_effect_type = 0
end
#--------------------------------------------------------------------------
# ● 特殊効果の開始
#--------------------------------------------------------------------------
def start_effect(type)
$game_temp.dispose_r_effect if @r_effect_type != type
@r_effect_type = type
end
#--------------------------------------------------------------------------
# ● 特殊効果の終了(瞬時)
#--------------------------------------------------------------------------
def end_effect
$game_temp.dispose_r_effect
@r_effect_type = 0
end
#--------------------------------------------------------------------------
# ● 特殊効果の終了(フェード)
#--------------------------------------------------------------------------
def end_effect_fade
@r_effect_type = 0
end
end
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 特殊効果の開始
#--------------------------------------------------------------------------
def start_effect(type)
$game_system.start_effect(type)
end
#--------------------------------------------------------------------------
# ● 特殊効果の終了(瞬時)
#--------------------------------------------------------------------------
def end_effect
$game_system.end_effect
end
#--------------------------------------------------------------------------
# ● 特殊効果の終了(フェード)
#--------------------------------------------------------------------------
def end_effect_fade
$game_system.end_effect_fade
end
end
class Sprite_Reffect_Diffusion < Sprite
#--------------------------------------------------------------------------
# ● インクルード Reffect
#--------------------------------------------------------------------------
include Reffect
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(viewport)
super(viewport)
case $game_system.r_effect_type
when 1
@rd = rand(width / 3).to_f
@moveSpeed = rand(50).next * 0.01 + 0.5
@existCount = rand(100) + 80
setStartPosition(2, 2)
setMoveAngle(rand(2 * Math::PI * 100))
setGraphic("RE_001")
when 2
@rd = rand(width / 3).to_f + 30.0
@moveSpeed = rand(50).next * -0.01 - 0.5
@existCount = rand(100) + 90
setStartPosition(2, 2)
setMoveAngle(rand(2 * Math::PI * 100))
setGraphic("RE_001")
when 3
@rd = rand(width / 2).to_f
@moveSpeed = rand(50).next * 0.01 + 0.5
@existCount = rand(100) + 80
setStartPosition(2, 1)
setMoveAngle(rand(2 * Math::PI * 100), rand(Math::PI * 100))
setGraphic("RE_001")
when 4
@rd = rand(width / 2).to_f
@moveSpeed = rand(50).next * 0.01 + 0.5
@existCount = rand(100) + 80
setStartPosition(0, 1)
setMoveAngle(rand(2 * Math::PI * 100), rand(Math::PI * 100))
setGraphic("RE_001")
when 5
@rd = rand(width / 2).to_f
@moveSpeed = rand(50).next * 0.01 + 0.5
@existCount = rand(100) + 120
setStartPosition(3, 1)
setMoveAngle(rand(Math::PI * 100) + 90, rand(Math::PI * 100))
setGraphic("RE_001")
end
@maxOpacity = rand(160) + 40
self.opacity = 1
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
if self.opacity.zero?
dispose
$game_temp.r_effect_sprites.delete(self)
else
@existCount -= 1
@rd = [@rd + @moveSpeed, 0.0].max
self.x = getX
self.y = getY
self.zoom = getZoom
self.opacity = [self.opacity + (@existCount > 0 ? 1 : -1), @maxOpacity].min
end
end
end
class Sprite_Reffect_Spiral < Sprite
#--------------------------------------------------------------------------
# ● インクルード Reffect
#--------------------------------------------------------------------------
include Reffect
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(viewport)
super(viewport)
case $game_system.r_effect_type
when 21
@rd = rand(200).next.to_f
@moveSpeed = 5.0 - @rd / 50.0
@nextAngle = rand(360).to_f
@collapseSpeed = 1
setStartPosition(2, 3)
setGraphic("RE_002")
when 22
@rd = rand(40).next.to_f
@moveSpeed = rand(100).next * 0.01 + 1.0
@nextAngle = rand(360).to_f
@collapseSpeed = rand(3).zero? ? 2 : 1
setStartPosition(0, 3)
setGraphic("RE_002")
when 23
@rd = 180
@moveSpeed = 1.7
@nextAngle = @@span ? 0.0 : 180.0
@collapseSpeed = 0
setStartPosition(2, 3)
setGraphic("RE_002")
end
@floteY = self.y.to_f
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
if self.y <= -self.oy || self.opacity.zero?
dispose
$game_temp.r_effect_sprites.delete(self)
else
@nextAngle += [@moveSpeed, 2].min
@nextAngle = 0.0 if @nextAngle >= 360
setMoveAngle(@nextAngle * 1.74533)
self.x = getX
self.y = (@floteY -= @moveSpeed).round
self.zoom = getZoom
self.opacity -= @collapseSpeed
end
end
end
class Sprite_Reffect_Snow < Sprite
#--------------------------------------------------------------------------
# ● インクルード Reffect
#--------------------------------------------------------------------------
include Reffect
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize(viewport)
super(viewport)
setStartPosition(0, 1)
setGraphic("RE_003")
case rand(100)
when 0..49
self.zoom = (3 + rand(2)) / 10.0
when 50..89
self.zoom = (6 + rand(2)) / 10.0
when 90..99
self.zoom = (9 + rand(2)) / 10.0
end
self.z = self.zoom_x * 10
@moveSpeed = self.zoom_x * 1.6
@floteY = self.y.to_f
@rd = rand(10).next.to_f
@nextAngle = rand(360).to_f
@existCount = 1500
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
if self.y > height || self.opacity.zero?
dispose
$game_temp.r_effect_sprites.delete(self)
else
@existCount -= 3
@nextAngle += [@moveSpeed, 2].min
@nextAngle = 0.0 if @nextAngle >= 360
setMoveAngle(@nextAngle * 1.74533)
self.x = getX
self.y = (@floteY += @moveSpeed).round
self.opacity = @existCount
end
end
end
class Spriteset_Map
@@re_add_count = 0
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
alias r_effect_dispose dispose
def dispose
r_effect_dispose
$game_temp.dispose_r_effect
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias r_effect_update update
def update
r_effect_update
update_r_effect
end
#--------------------------------------------------------------------------
# ● 特殊エフェクトの更新
#--------------------------------------------------------------------------
def update_r_effect
unless $game_system.r_effect_type.zero?
if @@re_add_count.zero?
case $game_system.r_effect_type
when 1..10
sprite = Sprite_Reffect_Diffusion.new(@viewport3)
@@re_add_count = 10
when 21..30
sprite = Sprite_Reffect_Spiral.new(@viewport3)
@@re_add_count = 10
when 31..40
sprite = Sprite_Reffect_Snow.new(@viewport3)
@@re_add_count = 20
end
$game_temp.r_effect_sprites << sprite
end
@@re_add_count -= 1
end
$game_temp.r_effect_sprites.each{|sprite| sprite.update}
end
end
Voilà la source -> http://kaisou-ryouiki.sakura.ne.jp/
L'image -> http://kaisou-ryouiki.sakura.ne.jp/material/graphic/RE.zip
Et le script original -> http://kaisou-ryouiki.sakura.ne.jp/material/rgss3/r_effect.txt
Oh oh oh, c'est pas fini c'est Noël après tout, quelques vidéos qui montre les effets en question
https://www.youtube.com/watch?v=XOahRa-thvU&feature=youtu.be
https://www.youtube.com/watch?v=_ipHgryBxoE&feature=youtu.be
Voilà voilà, bonne fête.
- HinolaModérateur
- Nombre de messages : 969
Age : 30
Distinction : Gagnant invaincu à ce jour de tous les concours de mapping de ce forum fait par Coco'
[Coco' ]
Grande figure du Mapping Show .
Grand admirateur de notre mascotte Vehyxine
STI Haruhiste like me [Hamu' ]
et fier de l'être ! [bibi ^^]
Un fier Homme du désert sans foi ni loi è_é [:3]
Date d'inscription : 21/05/2009
Re: Effet de lumière sympatique compatible VX/VXAce
Mer 8 Juin 2016 - 20:29
tu peut ajouter dans ton titre "effet de lumière / particules" pour plus de clarté :3
Bon sinon, c'est un script hyper situationnel ^^ bon pour quelques cinématiques écrites.
Mais l'effet est sympa
Bon sinon, c'est un script hyper situationnel ^^ bon pour quelques cinématiques écrites.
Mais l'effet est sympa
- KingdommangasMembre
- Nombre de messages : 1401
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
Re: Effet de lumière sympatique compatible VX/VXAce
Jeu 9 Juin 2016 - 2:16
Pas necessairement.
Par exemple, si tu créer un temple sacré, bien utiliser des petits effets lumineux pourrais accentuer l'effet "sacré".
Par exemple, si tu créer un temple sacré, bien utiliser des petits effets lumineux pourrais accentuer l'effet "sacré".
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|