忍者ブログ

へぷたなすくろーる

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

[PR]

×

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

このブログについて

「へぷたなすくろーる」へようこそ!
このブログでは管理人の奈々(なな)が作成した
RPGツクールVXAce用のスクリプト素材(RGSS3)を配布しています。
またRPGツクール共通の製作テクニックなどの情報も紹介しています。
皆様のゲーム製作に少しでも役立てば幸いです。

※重要1
スパムコメントが本当に酷いので、認証ワードを設定しました。
コメントを投稿する際には、文章の中に「す。」を入れて下さい。
またURLの直貼りも禁止中です。hを抜くなりして下さい。



更新履歴・拍手 / 非公開コメントへのお返事

利用規約 

スクリプトの一覧
  (スクリプト素材の導入方法)

制作テクニックの一覧

拍手[257回]

PR

更新履歴

管理人のつぶやき

セミが暑さに負けている今日このごろ。


拍手 / 非公開コメントへのお返事は続きにあります。(最終更新、8/8)
これ以前の更新やお返事は「その他」カテゴリーから見れます。
更新履歴(素材)
2021
8/10
「エネミー戦闘行動のAI化」  Ver.1.2に更新(仕様変更)

6/13
「攻撃を受けてから反撃」  Ver.1.4に更新(仕様を整理)

6/11
「攻撃を受けてから反撃」  Ver.1.3に更新(仕様変更・機能追加)

6/6
「隊列操作」  新規公開
「隊列固定」  新規公開
「文末ポーズサイン」  新規公開

5/7
「オリジナルメニューコマンド」  Ver.2.0に更新(バグ修正)

5/4
「アイテム選択拡張」  Ver.1.1に更新(バグ修正)


拍手[68回]

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

※素人が分かりやすさを優先して書いているため、
定義や用語としては不正確な表現があるかもしれません。ご了承下さい。

第2回です。
今回からは具体的にスクリプトの中身を見ていきましょう。
まず、繰り返しますがコードは基本的には1行で1つの処理です。

文字が書いてあったり、数式が書いてあったり様々ですが、ある程度パターンがあります。
今回は「=」に注目して下さい。
◯◯ = △△
と書いてあるものがあります。これが「変数への代入」です。
(=の使い方が、数学の式とは全くの別物なので、注意して下さい)


1. 「オブジェクト」と「変数」について
変数とは箱のイメージで例えられます。ツクールの場合は数値が入っていましたが
RGSS3での「変数」はより広い範囲で、何かしらの「オブジェクト」が入ります。
◯◯ = △△
先程のパターンは
〇〇(左辺)の変数に、△△(右辺)のオブジェクトを代入するという処理になります。

ではオブジェクトとは何か。
ここでオブジェクトの定義や説明から入ると良く分からないと思いますので
先に分かりやすい、基本的なオブジェクトの具体例を見ていきましょう。

まずは「数値」です。リテラル(書き方)はシンプルで、そのまま数値を書きます。
後述しますが、計算の方もシンプルに書けるため、四則計算ができれば概ね扱えます。

次に「文字列」です。こちらのリテラルは""(ダブルクオーテーション)で囲みます。
例えば 10 なら数値、 "10" なら文字列として扱われます。

最後に「真偽値」です。リテラルはtrue / false / nilとそれぞれ書きます。
これはツクールでいうスイッチのことです。
条件分岐とセットで扱う概念なので、その時に詳しく説明します。

どうでしょう。箱の中に何が入っているのか、イメージが掴めましたか。
a = 10  変数aの中に10という数値を代入
b = "10"  変数bの中に10という文字列を代入

2. 計算式について
さて、コードの中には
◯◯ = □□ + □□
というようなパターンもあるかと思います。
結論から言うと、これは先程の「変数への代入」処理
◯◯ = △△
の△△(右辺)が計算式になっているよ、という扱いです。

コード上での計算式は、その場で計算されて結果の「オブジェクト」を返します。
例えば
a = 3 + 7
というのは、3 + 7 がその場で計算されて 10 となり
a = 10
として処理される。つまり変数aに数値の10が代入されます。

先述したように= の扱いが異なることと、一部書き方に違いはありますが
計算式の使い方や計算順序は、一般的な四則計算と概ね一緒です。
+ 加算
- 減算
* 乗算
/ 除算
% 余り
() 括弧内を優先して計算

3. 変数の操作
ここまでは変数の代入、つまり箱の中に何を入れるかという操作でした。
一方で、変数の中身に対して、足したり引いたりという操作もできます。
◯◯ += △△
◯◯ -= △△
◯◯ *= △△
◯◯ /= △△

4. 変数の参照
右辺・計算式の中には、変数を使うことも出来ます。
代入以外で変数が記述されている場合は、その変数の中身が使われます。
a = 7
b = 3
c = a + b
この場合、最後の行は
c = 7 + 3 → c = 10
となり、変数cには数値の10が代入されます。

因みに、先程の
◯◯ -= △△
というのは
◯◯ = ◯◯ + △△
というのものの省略形という扱いです。
この様に代入内容に自身を含むものを、自己代入と言います。

実際のところ、数値そのものより変数を参照する方が多いです。
多数の変数が代入と参照を繰り返して、プログラムは成り立っています。


5. クラス・メソッドとの関わり
例えば、ダメージを与える処理はこういうイメージです。
atk = ◯◯(攻撃力の入った変数)
def = △△(防御力の入った変数)
hp = □□(HPの入った変数)
damage = atk * 4 - def * 2 #攻撃力から防御力を引いてダメージを計算
hp -= damege
この例だと◯◯、△△、□□は、それぞれ別のところから持ってきた変数です。

このような「ダメージを与える処理(計算)」だけをひとかたまりにして
前回説明した「メソッド」にしておくわけですね。
他にも攻撃力や防御力を決めるメソッドがあり
変数を介して、メソッド間で結果をバトンパスしながら処理を進めます。


まとめ
一旦まとめます。
・変数にはオブジェクトが入る
・オブジェクトは本当に色々あるが、まずは数値で考えると楽
・変数は参照されて、中のオブジェクトを返す
・計算式も計算されて、オブジェクトを返す

第1回と第2回は、それぞれ前提となるルールの説明が中心となりましたが
第3回ではそれらを踏まえて、いよいよその2つが具体的にどう繋がっているのか
より具体的な内容にフォーカスする予定です。
最後に、余談的な内容で終わります。

拍手[2回]

利用者のためのスクリプト講座(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回]

利用規約を改定しました

日頃より、当ブログをご利用頂きありがとうございます。
この度、利用規約を改定致しました。
素材をお使いの方は一度ご確認のほど、宜しくお願い致します。

要点としては有料作品の取り扱いを無料作品と同じにしました。
その他、現状に合わせて補足等の文言を整備した程度です。

界隈の情勢と自身の気持ちを鑑みて
これまで約4年間、利用料を伴う許可性にさせて頂きましたが
顔の見えないやり取りにも関わらず、皆さま大変丁寧に、気持ちよく接して下さいました。
ありがとうございます。

その上で最近の更新頻度低下と、それによってコメント確認が遅れてしまうことが多々あり
「利用規約を遵守してくれる真摯な利用者ほど、許可を待って不便を掛けてしまう」
という状況は、私の目指すものではありませんでした。

幸い最後の申請から1年程経っておりますので
緩和に伴う不公平も出ないと思い立ち、規約を変更した次第です。
どうぞ今後とも宜しくお願いします。

拍手[6回]

ブログ内検索

アーカイブ

最新コメント

[01/20 NONAME]
[01/16 NONAME]
[12/30 NONAME]
[12/13 NONAME]
[12/01 NONAME]

プロフィール

バナー

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