鳥小屋.txt

ゲーム作ったり、Web的なことしたり、ぐだぐだしたりしますねヽ(・x・)ノ

VXAce(RGSS3)でTweenアニメーションするスクリプトつくった


実は僕、Flashなどではお馴染みのTweenアニメーションって
全然つかったことなかったのです……
で、こないだの4月バカのときに初めて使ってみて、
「やべー便利すぎるー!ツクールでも使いてー!」という衝動に。

ちょっとググってみたら外人さんが作ったやつとかもあったんですが、
僕の求めてるものとはちょっと違ったので、自分でつくってみました。
動機的にちょっとArctic.jsっぽいです。

スクリプト

gistにおいてあります 【Tweenアニメーションさん for RGSS3

使い方

こんな感じ。
「60フレーム(1秒間)かけて、X座標64、Y座標128に移動する」アニメーションです。

# 【補足】
# object : 動かしたいもの(SpriteとかWindowとか)

# アニメーションの準備
animation = HZM::Tween::Animation.new(object, {
  # 必須設定(省略しても勝手に設定して動きますが……)
  :time => 60,                   # アニメーション時間(フレーム数。60フレーム=1秒)
  :transition => :ease_in_quad,  # 動作方法。詳細は後述。
  # ここから先は変更するものを設定
  :x =>  64,  # X座標を64へ
  :y => 128,  # Y座標を128へ
})

# アニメーションの開始
animation.play


「:transition」の部分は毎回のフレームに移動させる量を計算するメソッドを指定する部分です。
要するに計算式を設定する部分です。
この辺りのサイト様を参考にしていくつか用意してあります↓↓↓

  • :linear
  • :ease_in_quad
  • :ease_out_quad
  • :ease_in_out_quad
  • :ease_in_cubic
  • :ease_out_cubic
  • :ease_in_out_cubic
  • :ease_in_quart
  • :ease_out_quart
  • :ease_in_out_quart
  • :ease_in_quint
  • :ease_out_quint
  • :ease_in_out_quint
  • :ease_in_sine
  • :ease_out_sine
  • :ease_in_out_sine
  • :ease_in_expo
  • :ease_out_expo
  • :ease_in_out_expo
  • :ease_in_circ
  • :ease_out_circ
  • :ease_in_out_circ


上の以外を使いたい場合は、HZM_VXA::Tween::Transitionの中に
新しくメソッドを増やすことで追加できます。

また、例ではx座標とy座標を指定していますが、別にほかのも指定できます。
「○○.hoge = 数値」で設定できるものなら、「:hoge => 数値」でOK。
ただし、計算結果を強制的に整数にしてしまっているので、
小数の結果が欲しい場合はうまく動かないです。

ついでに別にSpriteとかWindowじゃなくても、何でも使えます。
Spriteに限定せず何にでも使えるやつが欲しかったので自分でつくったのです。
まぁ、通常用途ではあんまり意味ないかもしれませんが。。。僕には必要。

わかりにくいから実際に試したい

実用性ゼロのサンプル。
メニューを開くときにアニメーションします。

# メニュー画面を開いたときにうぃんうぃんするスクリプト
class Scene_Menu < Scene_MenuBase
  ANIMATION_TIME = 15
  #-----------------------------------------------------------------------------
  # ● 開始処理
  #-----------------------------------------------------------------------------
  alias hzm_vxa_tween_sample_start start
  def start
    hzm_vxa_tween_sample_start
    unless Window_MenuCommand.last_command_symbol
      # 各アニメーションを設定
      anim_command = HZM_VXA::Tween::Animation.new(@command_window, {
        :time => ANIMATION_TIME,
        :transition => :ease_out_quad,
        :x => @command_window.x,
        :y => @command_window.y,
        })
      anim_gold = HZM_VXA::Tween::Animation.new(@gold_window, {
        :time => ANIMATION_TIME,
        :transition => :ease_out_quad,
        :x => @gold_window.x,
        :y => @gold_window.y,
        })
      anim_status = HZM_VXA::Tween::Animation.new(@status_window, {
        :time => ANIMATION_TIME,
        :transition => :ease_out_quad,
        :x => @status_window.x,
        :y => @status_window.y,
        })
      # 初期値を指定
      @command_window.x = 0 - @command_window.width
      @command_window.y = 0 - @command_window.width
      @gold_window.x = 0 - @gold_window.width
      @gold_window.y = Graphics.height + @gold_window.width
      @status_window.x = Graphics.width
      # アニメーション開始
      anim_command.play
      anim_gold.play
      anim_status.play
    end
  end
end
class Window_MenuCommand < Window_Command
  #-----------------------------------------------------------------------------
  # ● コマンド選択位置の取得(クラスメソッド)(独自)
  #-----------------------------------------------------------------------------
  def self.last_command_symbol
    @@last_command_symbol
  end
end


うわー、うぜー(

RPGツクールVX Ace Liteの思うところと、イケナイこと!


お久しぶりですRuたんです!
制作の類が吐きそうになるくらい進んでないので、死にそうです(

最近あったことと言えば、RPGツクールVX Ace Liteが公開されましたね。
ちょっと僕もインストールしてみたので、気になったところを書いてみます。
まぁ、スクリプトいじれないので、僕がやることはほとんどないですがw

起動時ロゴの表示


Lite版で作られたゲームは起動時にエンターブレインでツクールなロゴが入ります。
これは実行ファイルが特別なものになってる……わけではなく、
スクリプトに以下の処理が追加されています。

def show_logo
  sprite = Sprite.new
  Graphics.fadeout(0)
  sprite.bitmap = Cache.system('Logo1')
  Graphics.fadein(30)
  Graphics.wait(30)
  Graphics.fadeout(30)
  sprite.bitmap = Cache.system('Logo2')
  Graphics.fadein(30)
  Graphics.wait(30)
  Graphics.fadeout(30)
end

show_logo unless $TEST

製品版持ってる人で起動ロゴ入れたい人は、
コレそのまま使えばいいんじゃないかな!

起動時にしか表示されない(F12リセット時は出ない)のに、
わざわざキャッシュにするのもどうかとは思いますけど……
わかりやすくするって意味でこうなってるのかな?

あと、Graphics/Systemに入ってるロゴ画像表示してるだけなので、
この画像を差し替えたらLite版でも……(駄目です

コモンイベントは使えないわけじゃない


イベントコマンドの「コモンイベント」は機能制限がかかっているので、
使うことはできないですが、データベースのコモンイベントは普通に使えます。
(※もちろん、最大数は変更できないので10個まで)


なので、上みたいにスイッチONをトリガーに実行するようにすれば、
コモンイベントを使ってあげることが可能です。
使うとイベントが発生するアイテムも問題なく作れますね!

ちなみにコレやるときはちゃんと最後にスイッチ1をOFFにしないとダメですよ?
スイッチ1がONのままだと永遠におっさんと話し続けることになるので……!

イベントコマンドの「コモンイベント」も使える!?

用意するものは簡単! VX Ace LiteとVX Ace(製品版)です!(


まず、製品版でコモンイベントの呼出のイベントを作ります。


それをコピーします。



VX Ace Liteのほうを開いてペーストします。


おー


わーお


同じやり方で、スクリプトのイベントもコピーすることができます。
つまり製品版を買えばやりたい放題ってことですね!!!!……あれ?

ちなみに貼り付けたイベントコマンドは編集はできないけど、
のコピー&ペーストは問題なくできたりします。
なので、製品版持ってる人にコモンイベントの呼出1〜10を作ってもらって、
そのマップデータを読み込めb……おっと誰か来たようだ。
(※普通に駄目です)

製品版のプロジェクトを読み込める

製品版のプロジェクトファイルのGame.rvproj2を
Lite版で作ったプロジェクトファイルのGame.rvproj2で上書きすると
一応、開くことが出来ます。

が、エディタの画面(マップ)がおかしくなるっぽい?ので注意。
というか、別に意味ないですし……

むしろLite版のプロジェクトを製品版で読み込める

「Liteで作成したプロジェクト(ゲームデータ)を
 そのまま製品版で読み込むことができません」という公式の記述通り、
そのまま読み込むことはできないですが、
上に書いた逆、つまり製品版のGame.rvproj2で上書きしてあげれば、
Liteのプロジェクトを製品版に引き継げます。

なので、「Lite版で作ってたけどもっといろいろやりたい」とか、
鳥小屋.txtっていうサイトで公開されてるスクリプト使いたい」って人は、
製品版買えばいいんじゃないかな!! スクリプトいいよ!!(

というかGame.rvproj2って、ただのテキストファイルなので、
メモ帳かなんかで開いて編集するだけで、Lite版と製品版切り替えられます。

製品版は

RPGVXAce 1.01

Lite版は

RPGVXAce-Lite 1.01

になってます。
バージョン情報書いてあるだけー。

(製品版持ってる人)インストールすると関連付けに困る

製品版インストール済みなのにVX Ace Liteをインストールすると
Game.rvproj2をダブルクリックしたときに、
Lite版が起動するようになります。仕方ないね。

直すのだいぶ面倒くさいんで、
よくわからない人はインストールしないほうがいいかなー。
実行ファイル名が同じせいか、
Windowsの関連付けのほうからだとうまく設定できない感じ?
僕は関連付けいじるソフト使いました。

結論

スクリプトいじれないから、Ruたんやることない(
そもそも製品版持ってるのでやる必要もないですが……

純粋に保存できるようになった体験版って感じですね。
ちょっとした作品だったら十分作れるんじゃないかな?と思います。

ニコニコ自作ゲームフェスに応募する方は頑張ってください!!
たぶん期限内に完成させるのが一番大変w

「新」音量変更スクリプトさん for RGSS3

2013/05/25 タイプ設定を変更すると強制終了する不具合修正しました。使っている方は最新版に差し替えお願いします。

前にも1回載せてますが,あれはVXAceの体験版が出て飛びついて書いた記事なので,
今回,スクリプトをいろいろ直したついでに解説記事をちゃんと書きます.

「音量変更スクリプトさん for RGSS3」について

タイトル画面,メニュー画面にゲーム中の音量を設定するメニューを追加するスクリプトです.
ここで設定した音量はゲーム中のすべてのサウンドに適用されます.

HZM_VXA ベーススクリプトさん」を併用することで,
調整した音量を保存して,次回起動時に反映させることができるようになります.
便利なのでできれば一緒にいれてあげてください.
※ベーススクリプトは,音量スクリプトより上に設置してください

2012/12/17追記
ベーススクリプト無くても反映できるようにしました.やったね!!

敵バトラーに影を表示 for RGSS3

メモ欄シリーズ,スクリプト名に「さん」つけ忘れてて泣きたい.
そんなわけで,ノミノネに使ったスクリプトをどんどん素材にします!

敵バトラーの下に影を自動的に表示するスクリプトさんです.
まぁRTPのモンスターはみんな画像自体に影が付いてたりするので,
このスクリプト意味ないんですけどね.他の素材使う時などに><

[hzm]敵バトラーに影を表示 for RGSS3
※使用するためには,このスクリプトより上に[hzm]メモ欄拡張共通部分 for RGSS3を設置する必要があります.

機能は必要最低限です.
動いたり,敵の形の影になったりはしません.全部同じ形です.
ただ,大きさだけは半自動調整です.
でも実際に使うと手動調整しないと使い物にならないという……(体験談)

使う時は影用の画像が必要です.
Graphics/Battlersの中に入れてください.
上のサンプル画像はノミノネに使ってたやつですが,勝手に使ってもOKですよん.

実際に設定した例です.
「[hzm]影」までは共通で,その後に手動設定する場合は数値を入れます.
上の図だと,横方向はそのまま,縦方向は上に16ドット,拡大率は1.8倍です.
あ,位置だけ手動設定したい場合は,拡大率は書かなくてもいけます.
「[hzm]影:0,-16」までにすればOK.

拡張スキルデータベース設定さん&ターン消費無しスキルさん for RGSS3(VX Ace)

  • 2013/5/11 記事タイトルを「スキルのメモ欄系スクリプト4点セット」から変更し、文章を書きなおしました

ノミノネ用に作ったスキル系のスクリプトをベースに修正したものです。

その前に

ここのスクリプトを使うためには「[hzm]メモ欄拡張共通部分さん+ for RGSS3」が必要です。

[hzm]メモ欄拡張共通部分さん+ for RGSS3

以下のスクリプトより上に必ず入れて使ってください。じゃないと動かないよ。

拡張スキルデータベース設定さん for RGSS3

スキル・武器のデータベースのいくつかの項目をメモ欄で設定できるようにするもの。
おまけとしてHP消費攻撃なども作れるようになってます。

[hzm]拡張スキルデータベース設定さん for RGSS3

目玉としては各設定に計算式が使えるので「[hzm]連続回数:1+rand(3)」みたいな
設定をすると、ランダムに1〜3回攻撃するスキルが作れたりします。

ターン消費無しスキルさん+ for RGSS3

ある意味、鳥小屋.txtの大目玉スクリプトという説もある子。よくバグがあります(
言葉で説明しにくいので、動画でどうぞ。


[hzm]ターン消費無しスキルさん+ for RGSS3

つまりターンを消費することなく行動できる技を作ることができます。ゼロリロードっ!(
ついでにオマケとして、行動順序をスキルごとに反映する機能を追加します。
元々、別スクリプトにしてましたが、ターン消費無しスキルの一部機能に必須なので、くっつけちゃいました。
にしても、行動順序のやつはRGSS3の仕様上のバグなんじゃないですかねぇ……?