【RGSS3】小ネタスクリプト改造04

執筆者:神凪洸

  • 更新:2024/06/01 「茂みの不透明度を変更したい!」

全てVXAce(RGSS3)の小ネタっす。

この記事では ■MAP画面系 を集めてあります。

変更する箇所は、その部分をコピペしてコメントアウトして取っておき

どこを変更したかわかりやすいよう、 #記号などで目印をつけておくと便利っすよ!


■MAP画面系

◆MAPのBGM自動切り替えを一時的に停止したい!

Game_Mapの●BGM/BGS自動切り替え を探しましょう。

def autoplay

@map.bgm.play if @map.autoplay_bgm && !$game_switches[id]

@map.bgs.play if @map.autoplay_bgs && !$game_switches[id]

end

とすれば、指定したスイッチをONにした時だけ、 機能を停止し

すでに再生している音楽を引き継げるっす。


◆ピクチャ回転の速度が早すぎ、もっとゆっくりにしたい!

Game_Pictureの●回転の更新 を探しましょう。

@angle += @rotate_speed / 2.0 の数値を大きくすれば、ゆっくり回す事が出来るっすよ!


◆床ダメージの基本値をどうにかしたい!

Game_Actorの●床ダメージの基本値を取得 を探しましょう。

return 10 の数値を変更するだけっす。

if文を使用すれば、複雑に設定出来るっす。

難易度で変わる、アクターレベルが高ければ高いほど変わる……など。

例: return 10 + @level * 2 if @level <= 10 #レベル10までは、10+現在のレベル*2のダメージ

return 80 + @level * 5 if @level >= 11 and @level <= 20

#レベル11~20までは、80+現在のレベル*5のダメージ

return 350 + @level * 5 if @level >= 81 and $game_variables[3] == "ノーマル"

#レベル81以上且つ難易度がノーマルだった場合、350+レベル*5のダメージ


◆スリップ/床ダメージのフラッシュが眩しい!or色を変えたい!

Game_Screenの●フラッシュの開始(毒・ダメージ床) を探しましょう。

start_flash(Color.new(255,0,0,128), 8)

の数値を変えるだけっす。

start_flash(Color.new(赤,緑,青,不透明度), 表示フレーム) となってるっす。


◆会話中でも並列イベントを作動し続けたい!

Game_Interpreterの96行目辺りの●実行 を探しましょう。

wait_for_message をコメントアウトするだけっす!

さらに応用!!ヽ(`Д´)ノ

if文を使用し、特定条件の時だけ効果を無効にするなども出来るっす。


◆茂みの半透明範囲を変えたい!

Game_CharacterBaseの●茂み深さの更新 を探しましょう。

@bush_depth = 8 unless moving? の数値を変えるだけっす。

さらに応用!!ヽ(`Д´)ノ

@bush_depth = $game_variables[id] unless moving?

とする事で、指定変数の数値分が半透明範囲になるっす。

草むらと水辺で使い分ける……等が出来るっすね!


◆茂みの不透明度を変更したい!

Sprite_Characterの●その他の更新 を探しましょう。

self.bush_depth = @character.bush_depth の下に

self.bush_opacity = 0 #(不透明度を指定する任意の数値)

を追加するだけ!

0=透明 255=不透明っす。場合によって変更したい時は

$game_variables[id]を入れると変数の値で不透明度を変化させられるぞ!


◆フキダシアイコンの表示速度が遅い!

Sprite_Characterの●フキダシアイコンの表示速度

●フキダシ最終フレームのウェイト時間 を探しましょう。

数値を変えるだけっす。すぱすぱと進行させたいときは、数値を小さくすればいいっすね!


◆常時ダッシュさせたい!

Game_Playerの●ダッシュ状態判定 を探しましょう。

return Input.press?(:A) を

return !(Input.press?(:A)) に変更する事で、ダッシュキーの判定が逆になるっす。


◆天候で嵐とかにした時、強くすると暗すぎる!

or最大にしてもなんか弱い!

Spriteset_Weatherの●スプライトの最大数を取得 ●暗さの取得 を探しましょう。

数値を変えるだけっす。

スプライトの方は、数値を大きくし過ぎると重くなるので注意。 


◆天候で吹雪を表現したいのに、それっぽくない!

Spriteset_Weatherの●スプライトの更新[雪] を探しましょう。

sprite.x -= 1

sprite.y += 3  をコメントアウト。

sprite.x -= $game_variables[n]

sprite.y += $game_variables[m]

としましょう。 指定した変数の値によって、動きを変えられるっす。

天候を変える直前に変数に代入しておきましょう。

xを-3 yを6とすると、嵐と似たような感じになり、吹雪っぽくなるっす。


◆遠景がループ設定してないのに同期せず動く!

不具合修正としてよそでスクリプトが配布されていますが、

既存部分を変えるだけで出来るのでご紹介。

Game_Mapの●遠景表示の原点 X 座標の計算 と

遠景表示の原点 Y 座標の計算を探しましょう。

 @parallax_x * 16 * w1 / w2 @parallax_y * 16 * h1 / h2

16を32に変えるだけっす。

これで遠景がちゃんとプレイヤーと同期するようになるっす。


◆遠景をイベントの途中で変更したい!

改造ではないですが、遠景ついでに便利なものをご紹介。

イベントコマンドのスクリプトに

$game_map.instance_variable_set(:@parallax_name, "ファイル名")

で表示遠景を変更できるぞ。

遠景を非表示にしたい場合はファイル名をいれず""だけにすることでできるっす。

$game_map.instance_variable_set( :@parallax_sx,n)

で横ループの指定ができるぞ。停止させる場合は0をいれよう。

同じく縦ループさせたい時は:@parallax_sx を :@parallax_sy にするだけ。

遠景MAPでも列車内の背景に遠景を使う時でもこれを使うと便利だ!!

0コメント

  • 1000 / 1000