忍者ブログ

へぷたなすくろーる

RPGツクールのブログです。イベント講座とRGSS3スクリプト配布をやってます♪

Home > > [PR] Home > スクリプト雑書帳 > 利用者のためのスクリプト講座(1)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

利用者のためのスクリプト講座(1)

このブログに来られる方は、RGSS3・VXAceユーザーが大半のはずで
今や既存の素材を組み合わせて(或いは改造して)使うことが主になるかと思います。

なのでブログの更新を兼ねて、詳しくない人がスクリプトを弄れるような
あくまで簡単かつ不定期の記事を書いてみることにしました。
需要があるかは分かりませんが、宜しくお願いします。


1. スクリプトの構造

まずRGSS3のスクリプトは、1行で1つのことを行います。

これを機能毎にまとめて、一連の処理として使いやすくしたのが「メソッド」です。
def aaa と end で挟まれているものが、aaaメソッドという指定になります。

複数のメソッドを入れる箱が、「クラス」または「モジュール」です。
class xxx と endで挟まれているものが、xxxクラス
module yyy と endで挟まれているものが、yyyモジュールになります。

外側から見ると、クラスの中にメソッドがあり、その中に具体的な処理が入っているわけです。
実際には以下のように、インデントを入れる人が多いので、言葉よりは分かりやすいはずです。
class xxx
 def aaa
  ◯◯◯◯◯
  ◯◯◯◯◯
 end
 def bbb
  ◯◯◯◯◯
  ◯◯◯◯◯
 end
end
入れ子構造になるため、どのendと対応しているかに要注意です。
改造の過程で「endの数が合わないよエラー」が出た場合は
落ち着いてインデントや1行スペースを入れて整理していくと良いです。

なおxxxクラスのaaaメソッドと、zzzクラスのaaaメソッドは別物です。
改造する際には取り違えないよう、どのクラスのメソッドなのか確認しましょう。


2. メソッドの上書き(パッチ)

スクリプトは上から順に読み込まれていきます。
もし「xxxクラスのaaaメソッド」が複数あると、後から読み込まれた方で上書きされます。

そこで、下の方に新しいスクリプトを作り
あるメソッドを(クラス指定と一緒に)コピーしてから改造すると
元のスクリプトに手を加えることなく改造することができます。
↓これでxxxクラスのaaaメソッドだけを上書きできる。
class xxx
 def aaa
  ◯◯◯◯◯
  △△△△△
 end
end
元の素材を更新したり、自分が手を入れた場所が分かりやすかったりと
可能な限りパッチ形式で改造したほうが良いです。
言うまでもなくスクリプト素材自体が、この仕様を使って
ベーススクリプトを改造したパッチになっています。

そしてこの仕様で予期せぬ上書きが起きてしまうのが
いわゆるスクリプト素材同士の競合ということになります。
(過去のマージについての記事も参照)


3. aliasに注意

alias という命令は、上書き前のメソッドを利用できる機能があり
非常に便利なためスクリプト素材の方で多用されていますが
これをコピーしてしまうと無限ループに入るという欠点を抱えています。

基本的にはメソッドの上に書いてあることが多いですが
パッチを作る際にまとめてコピーしないように注意しましょう。


まとめ

これで安全にスクリプトを改造する準備が整いました。心置きなくトライアンドエラーして下さい。
次回はメソッドの中身について、具体的に見ていきます。

気付いたかもしれませんが、スクリプト素材の改造と、スクリプトの作成はほぼ同じです。
ただ新規作成や、大型素材の改造は、改造箇所の特定が難しいため、まずは小規模素材の改造から入るのがオススメです。ところで簡単とは

拍手[4回]

PR
Responses0 Responses
  • お名前
  • タイトル
  • メールアドレス
  • URL
  • パスワード

ブログ内検索

アーカイブ

最新コメント

[10/13 深海樹]
[08/02 ダイ二ホケンシツ]
[07/29 ダイ二ホケンシツ]
[07/29 ダイ二ホケンシツ]
[07/29 ダイ二ホケンシツ]

プロフィール

バナー

HN:奈々(なな)
RPGツクールVXAceを中心に製作を行っています。 スクリプト、イラスト、ドット絵など広くちょこちょこ手を出していますので、 できる範囲で他のツクーラーさんのお手伝いができたらなと思っています。