| [VX] KGC_SpecialTransition | |
|
Auteur | Message |
---|
Vagabond Lv.5
Age : 33 Inscrit le : 17/06/2009 Messages : 78
| Sujet: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 11:33 | |
| Voici le premier script que je partage à la commu' et vous allez pas être déçu ! (enfin je pense... ^^") Je l'ai tiré d'un site japonais pommé dans le net. Je l'ai inséré dans mon chère Kipatord et Elezya désirais la recette de cette transition qui est quand même vraiment pas mal du tout. Voici un screen : Et voici le script : Auteur : KGC (???) 1er partie : - Spoiler:
- Code:
-
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ #_/ ◆ 特殊トランジション - KGC_SpecialTransition ◆ VX ◆ #_/ ◇ Last update : 2008/09/06 ◇ #_/---------------------------------------------------------------------------- #_/ 特殊なトランジションを作成します。 #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#============================================================================== # ★ カスタマイズ項目 - Customize ★ #==============================================================================
module KGC module SpecialTransition # ◆ トランジション実行中はゲームの進行を止める # true : トランジション中はトランジション以外の更新を止める。 # false : トランジション中でもゲーム進行。 # false にした場合、滑らかに動かすにはかなりのマシンパワーが必要。 STOP_WHILE_TRANSITION = true
# ◆ スプラッシュの1マスのサイズ [pixel] # 小さいほど重くなるので注意。 SPLASH_SIZE = 32 # ◆ スプラッシュの飛び散り具合 # 大きくするほど激しく飛び散る。 SPLASH_VAGUE = 7.2 # ◆ スプラッシュの各マスを回転させる # true : 回転あり。マシンパワーがないと処理落ちの可能性あり。 # false : 回転なし。 SPLASH_ROTATE = true # ◆ ランダムストライプの幅 [pixel] RAND_STRIPE_SIZE = 2
# ◆ 戦闘トランジションの形式 # 0..通常 ("Graphics/BattleStart.png" を使用) # 1..スプラッシュ # 2..ランダムストライプ DEFAULT_BATTLE_TRANSITION_TYPE = 1 # ◆ 戦闘トランジションの時間 [フレーム] DEFAULT_BATTLE_TRANSITION_DURATION = 60 # ◆ 戦闘トランジションの方向 # <スプラッシュ> # 0..中央から広がる 2..下 4..左 6..右 8..上 # <ランダムストライプ> # 0..水平 1..垂直 DEFAULT_BATTLE_TRANSITION_DIRECTION = 0 end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
$imported = {} if $imported == nil $imported["SpecialTransition"] = true
module KGC::SpecialTransition # 特殊トランジションタイプ module Type NONE = 0 # なし (通常) SPLASH = 1 # スプラッシュ RAND_STRIPE = 2 # ランダムストライプ
VALUE_RANGE = SPLASH..RAND_STRIPE end # 特殊トランジション方向 module Direction HORIZONTAL = 0 VERTICAL = 1 end end
#-------------------------------------------------------------------------- # ○ 1 or -1 を返す #-------------------------------------------------------------------------- def pmrand return (rand(2) == 0 ? 1 : -1) end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # □ KGC::Commands #==============================================================================
module KGC module Commands module_function #-------------------------------------------------------------------------- # ○ 戦闘トランジションを変更 # type : 形式 # duration : 時間 # direction : 方向 #-------------------------------------------------------------------------- def set_battle_transition(type = nil, duration = nil, direction = nil) $game_system.battle_transition_type = type $game_system.battle_transition_duration = duration $game_system.battle_transition_direction = direction end #-------------------------------------------------------------------------- # ○ 特殊トランジション設定 # type : 形式 # duration : 時間 # direction : 方向 #-------------------------------------------------------------------------- def set_special_transition(type, duration = 60, direction = 0) Graphics.set_special_transition(type, duration, direction) end end end
class Game_Interpreter include KGC::Commands end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Module_Graphics #==============================================================================
module Graphics # 特殊トランジションタイプ @@_sp_transition_type = KGC::SpecialTransition::Type::NONE # 特殊トランジション方向 @@_sp_transition_dir = 0 # 特殊トランジション用バッファ @@_sp_transition_buffer = nil # 特殊トランジション用スプライト @@_sp_transition_sprites = [] # 特殊トランジション期間 @@_sp_transition_duration_max = -1 @@_sp_transition_duration = -1
module_function unless $@ #-------------------------------------------------------------------------- # ● トランジション実行 #-------------------------------------------------------------------------- class << Graphics alias transition_KGC_SpecialTransition transition end def transition(duration = 10, filename = "", vague = 40) if @@_sp_transition_type != KGC::SpecialTransition::Type::NONE duration = 0 end
transition_KGC_SpecialTransition(duration, filename, vague)
if KGC::SpecialTransition::STOP_WHILE_TRANSITION while @@_sp_transition_duration >= 0 update end end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- class << Graphics alias update_KGC_SpecialTransition update end def update update_KGC_SpecialTransition
if @@_sp_transition_duration >= 0 update_special_transition end end end # unless @
#-------------------------------------------------------------------------- # ○ 特殊トランジション設定 # type : トランジションタイプ # duration : トランジション期間 # dir : 方向 #-------------------------------------------------------------------------- def set_special_transition(type, duration = 90, dir = 0) finish_special_transition
return unless KGC::SpecialTransition::Type::VALUE_RANGE.include?(type)
@@_sp_transition_type = type @@_sp_transition_dir = dir @@_sp_transition_duration_max = duration prepare_special_transition end #-------------------------------------------------------------------------- # ○ 特殊トランジション準備 #-------------------------------------------------------------------------- def prepare_special_transition @@_sp_transition_buffer = Graphics.snap_to_bitmap
# トランジション用変数初期化 case @@_sp_transition_type when KGC::SpecialTransition::Type::SPLASH init_splash when KGC::SpecialTransition::Type::RAND_STRIPE init_rand_stripe end Graphics.frame_reset end #-------------------------------------------------------------------------- # ○ スプラッシュ初期化 #-------------------------------------------------------------------------- def init_splash @@_sp_transition_duration = @@_sp_transition_duration_max @@_splash_dir = [] @@_splash_angle = [] size = KGC::SpecialTransition::SPLASH_SIZE hsize = size / 2 cells = (Graphics.width * Graphics.height) / (size ** 2) cols = Graphics.width / size rect = Rect.new(0, 0, size, size)
# 各セルの作成・移動方向算出 cells.times { |i| rect.x = i % cols * size rect.y = i / cols * size sprite = create_special_transition_sprite(rect) sprite.bitmap.blt(0, 0, @@_sp_transition_buffer, rect) sprite.x += hsize sprite.y += hsize sprite.ox = sprite.oy = hsize @@_sp_transition_sprites << sprite
x = rect.x / size y = rect.y / size @@_splash_dir[i] = calc_splash_move_direction(x, y, cells, cols)
if KGC::SpecialTransition::SPLASH_ROTATE @@_splash_angle[i] = rand(24) - 12 else @@_splash_angle[i] = 0 end } end #-------------------------------------------------------------------------- # ○ 特殊トランジション用スプライト生成 # rect : スプライトの位置・サイズ #-------------------------------------------------------------------------- def create_special_transition_sprite(rect) sprite = Sprite.new sprite.bitmap = Bitmap.new(rect.width, rect.height) sprite.x = rect.x sprite.y = rect.y sprite.z = 20000 return sprite end #-------------------------------------------------------------------------- # ○ スプラッシュ移動方向計算 # x, y : 基準位置 # cells : セル数 # cols : 列数 #-------------------------------------------------------------------------- def calc_splash_move_direction(x, y, cells, cols) vague = KGC::SpecialTransition::SPLASH_VAGUE vx = vy = 0 case @@_sp_transition_dir when 0 # 中央から広がる x -= cols >> 1 y -= (cells / cols) >> 1 r = Math.sqrt(x ** 2 + y ** 2) / vague if r != 0 vx = x / r vy = y / r else vx = ( x != 0 ? (x * 1.5) : (pmrand * vague) ) vy = ( y != 0 ? (y * 1.5) : (pmrand * vague) ) end vx += (rand - 0.5) * vague vy += (rand - 0.5) * vague when 2 # 下 rows = cells / cols vx = (rand(50) - 25) / 10.0 vy = 1 + vague * (rows - y) / rows * (1.0 + rand / 5.0) when 4 # 左 vx = -1 - vague * (x + 1) / cols * (1.0 + rand / 5.0) vy = (rand(50) - 25) / 10.0 when 6 # 右 vx = 1 + vague * (cols - x) / cols * (1.0 + rand / 5.0) vy = (rand(50) - 25) / 10.0 when 8 # 上 rows = cells / cols vx = (rand(50) - 25) / 10.0 vy = -1 - vague * (y + 1) / rows * (1.0 + rand / 5.0) end
mag = 60.0 / @@_sp_transition_duration_max return [vx * mag, vy * mag] end #-------------------------------------------------------------------------- # ○ ランダムストライプ初期化 #-------------------------------------------------------------------------- def init_rand_stripe case @@_sp_transition_dir when KGC::SpecialTransition::Direction::VERTICAL @@_rand_stripe_direction = 0 else @@_rand_stripe_direction = 1 end size = KGC::SpecialTransition::RAND_STRIPE_SIZE bands = (@@_rand_stripe_direction == 0 ? Graphics.width : Graphics.height) / size
@@_sp_transition_duration = @@_sp_transition_duration_max @@_rand_stripe_deleted = [] @@_rand_stripe_deleted_count = 0 # ランダム消去用配列を生成 ary = (0...bands).to_a @@_rand_stripe_index_array = ary.sort_by { rand }
sprite = create_special_transition_sprite(@@_sp_transition_buffer.rect) sprite.bitmap = Bitmap.new(Graphics.width, Graphics.height) sprite.bitmap.blt(0, 0, @@_sp_transition_buffer, @@_sp_transition_buffer.rect) @@_sp_transition_sprites << sprite end
Dernière édition par Jess le Ven 19 Juin 2009 - 11:34, édité 1 fois |
|
| |
Vagabond Lv.5
Age : 33 Inscrit le : 17/06/2009 Messages : 78
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 11:34 | |
| Suite : - Spoiler:
- Code:
-
#-------------------------------------------------------------------------- # ○ 特殊トランジション更新 #-------------------------------------------------------------------------- def update_special_transition if @@_sp_transition_duration == 0 finish_special_transition return end
case @@_sp_transition_type when KGC::SpecialTransition::Type::SPLASH update_splash when KGC::SpecialTransition::Type::RAND_STRIPE update_rand_stripe end @@_sp_transition_duration -= 1 end #-------------------------------------------------------------------------- # ○ スプラッシュ更新 #-------------------------------------------------------------------------- def update_splash opacity = 384 * @@_sp_transition_duration / @@_sp_transition_duration_max
# セルを移動 @@_sp_transition_sprites.each_with_index { |sprite, i| sprite.x += @@_splash_dir[i][0] sprite.y += @@_splash_dir[i][1] sprite.angle += @@_splash_angle[i] sprite.opacity = opacity } end #-------------------------------------------------------------------------- # ○ ランダムストライプ更新 #-------------------------------------------------------------------------- def update_rand_stripe dir = @@_rand_stripe_direction size = KGC::SpecialTransition::RAND_STRIPE_SIZE bands = (dir == 0 ? Graphics.width : Graphics.height) / size rect = Rect.new(0, 0, (dir == 0 ? size : Graphics.width), (dir == 0 ? Graphics.height : size)) buffer = @@_sp_transition_buffer sprite = @@_sp_transition_sprites[0] phase = @@_sp_transition_duration_max - @@_sp_transition_duration
# 消去箇所を設定 count = (bands - bands * @@_sp_transition_duration / @@_sp_transition_duration_max) - @@_rand_stripe_deleted_count while count > 0 @@_rand_stripe_deleted[@@_rand_stripe_index_array.pop] = true @@_rand_stripe_deleted_count += 1 count -= 1 end
# 未消去部分のみ描画 sprite.bitmap.clear bands.times { |i| unless @@_rand_stripe_deleted[i] if dir == 0 # 縦 rect.x = i * size sprite.bitmap.blt(rect.x, 0, buffer, rect) else # 横 rect.y = i * size sprite.bitmap.blt(0, rect.y, buffer, rect) end end } end #-------------------------------------------------------------------------- # ○ 特殊トランジション終了 #-------------------------------------------------------------------------- def finish_special_transition if @@_sp_transition_buffer != nil @@_sp_transition_buffer.dispose @@_sp_transition_buffer = nil end
case @@_sp_transition_type when KGC::SpecialTransition::Type::SPLASH @@_splash_dir = nil @@_splash_angle = nil when KGC::SpecialTransition::Type::RAND_STRIPE @@_rand_stripe_direction = nil @@_rand_stripe_deleted = nil @@_rand_stripe_deleted_count = nil @@_rand_stripe_index_array = nil end @@_sp_transition_type = KGC::SpecialTransition::Type::NONE
@@_sp_transition_sprites.each { |sprite| sprite.bitmap.dispose sprite.dispose } @@_sp_transition_sprites = [] @@_sp_transition_duration_max = -1 @@_sp_transition_duration = -1 end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Game_System #==============================================================================
class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_writer :battle_transition_type # 戦闘トランジション : 形式 attr_writer :battle_transition_duration # 戦闘トランジション : 時間 attr_writer :battle_transition_direction # 戦闘トランジション : 方向 #-------------------------------------------------------------------------- # ○ 戦闘トランジション : 形式 #-------------------------------------------------------------------------- def battle_transition_type if @battle_transition_type == nil return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_TYPE else return @battle_transition_type end end #-------------------------------------------------------------------------- # ○ 戦闘トランジション : 時間 #-------------------------------------------------------------------------- def battle_transition_duration if @battle_transition_duration == nil return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_DURATION else return @battle_transition_duration end end #-------------------------------------------------------------------------- # ○ 戦闘トランジション : 方向 #-------------------------------------------------------------------------- def battle_transition_direction if @battle_transition_direction == nil return KGC::SpecialTransition::DEFAULT_BATTLE_TRANSITION_DIRECTION else return @battle_transition_direction end end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Scene_Map #==============================================================================
class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● バトル画面への切り替え #-------------------------------------------------------------------------- alias call_battle_KGC_SpecialTransition call_battle def call_battle call_battle_KGC_SpecialTransition
KGC::Commands.set_special_transition( $game_system.battle_transition_type, $game_system.battle_transition_duration, $game_system.battle_transition_direction) end end
Toujours pareil pour l'installation c'est pas compliqué, j'espère que vous connaissez la fonction copié/collé. >< Et puis bah... pour l'utilisation tout marche nickel une fois le script installé, à part que pour personnaliser il faut un appel de script, mais j'ai pas trop compris... et puis le résultat de base est déjà super. Enfin, si quelqu'un veux essayer de décrypter ce charabia, merci beaucoup ! Allez bye et bon making à tous. ^^ |
|
| |
Ex-Admin-Script
Age : 42 Inscrit le : 26/05/2008 Messages : 2360
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 13:44 | |
| Du KGC Software tout craché. Merci du partage... +1 en script.
(Faudrait que je pense à remercier Tomy pour tous les scripts qu'on leur prend.)
[HS: Tomy est à la tête du groupe KGC Software] |
|
| |
Voyageur Lv.10
Age : 36 Inscrit le : 24/04/2009 Messages : 407
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 14:01 | |
| Intéressant comme script!^^ Par contre, pourrais-tu rajouter des balises "code" dans les spoiler? (les balises codes permettent de conserver les espaces aux début de certaines lignes de script. Ces espaces n'affectent en rien le fonctionnement des script, mais aide à leur lecture et compréhension par d'autres scripteurs) |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 14:11 | |
| Sihn > Ou de simples utilisateurs =3.
KGC fabrique toujours de très bons script, ça m'étonne même pas que cela vienne d'eux ^^.
Thx Jess =]. |
|
| |
Vagabond Lv.5
Age : 33 Inscrit le : 17/06/2009 Messages : 78
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 15:43 | |
| Oui ils sont très forts ! O_o Je vais d'ailleurs regarder d'autre script à eux histoire de voir si je peux pas améliorer mon projet. |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] KGC_SpecialTransition Ven 19 Juin 2009 - 18:11 | |
| http://mraprojects.wordpress.com/2008/09/17/kgc-scripts-library/ Pour tout les scripts de KGC, y'en a 61, ils sont tous traduits en anglais par Mr. Anonymous La p'tite liste : - Spoiler:
# KGC_MapLightening # KGC_LimitBreak # KGC_InterfaceForWin32API # KGC_FileEncryption2 # KGC_CompressSaveFile # KGC_ScreenCapture # KGC_ChangeSystemTerms # KGC_DrawFormatText # KGC_HelpExtension # KGC_FrameShadowText # KGC_MathReinforce # KGC_OldEventCommands # KGC_ContinueBGM # # KCG_CustomMenuCommand # KGC_CursorAnimation # KGC_PlaceMission(Incomplete, Disabled) # MRA_LocationPlayTimeWindow(I made this one) # # KGC_TitleDirection # KGC_SpecialTransition # # KGC_EnemyGuide # KGC_Outline # # KGC_ExtraDropItem # KGC_BattleDifficulty # KGC_VariableExpGold # KGC_ForceStopVictoryME # KGC_AdjustBattleWait # # KGC_DayNight # KGC_LargeParty # KGC_TilesetExtension # KGC_Dash_8DirMove # KGC_MiniMap # # KGC_CategorizeItem # KGC_AddEquipmentOptions # KGC_ExtendedEquipScene # KGC_EquipExtension # KGC_UsableEquipment # KGC_ComposeItem # # KGC_CategorizeSkill # KGC_HiddenSkill # KGC_ReproduceFunctions # KGC_EquipLearnSkill # KGC_SkillCPSystem # KGC_PassiveSkill # KGC_DelaySkill # KGC_OverDrive # KGC_Steal # KGC_MPCostAlter # KGC_SlipDamageExtension # KGC_TargetExtension # KGC_Counter # KGC_RateDamage # KGC_GuardRecover # # KGC_DistributeParameter # KGC_ClassDetailSetting(Incomplete, Disabled) # KGC_DetailedBareHands # KGC_SetAttackElement # KGC_SeparationCommand # # KGC_BattleCount # KGC_BattleCount2 # KGC_OnScreenStatus # KGC_OnScreenStatusSlim
Et la démo =) : http://www.mediafire.com/download.php?jxouo3iebco Enjoy ! (Sinon bon script !) |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] KGC_SpecialTransition Sam 20 Juin 2009 - 7:43 | |
| Merci du partage |
|
| |
Citadin Lv.7
Age : 27 Avertissements : 1 Inscrit le : 14/06/2010 Messages : 182
| Sujet: Re: [VX] KGC_SpecialTransition Mer 16 Juin 2010 - 13:02 | |
| Ce script est nul ! Il me met erreur syntax juste avant le Game System au end : - Code:
-
@@_sp_transition_sprites = [] @@_sp_transition_duration_max = -1 @@_sp_transition_duration = -1 end end
#★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
#============================================================================== # ■ Game_System #============================================================================== |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] KGC_SpecialTransition Mer 16 Juin 2010 - 13:04 | |
| Et un deuxième averto pour psp ! Va te présenter, merci, deuxième édition. |
|
| |
| Sujet: Re: [VX] KGC_SpecialTransition | |
| |
|
| |
| [VX] KGC_SpecialTransition | |
|