本記事はツクールフォーラムアドベントカレンダー2022

12日目の記事となります。

前日の記事はたちやま🌥️ばけねこ探偵事務所様の「ぽかぽか😠すかすか💢」

明日12月13日の記事は、沼江蛙様の「色んな家作る」です。

※他に良い方法もあるかと思いますが
 本記事は初心者様向けの記事になりますので、ご容赦ください。 

う~~ん・・・。

どうしたの?随分と煮詰まってるわね?

先輩~、ツクールが進まないよ~。

漠然とし過ぎててわかんないわよ。何が進んでないの?
ストーリーが思い浮かばない?
バグが解決しない?
導入したいシステムがどうやったら導入できるかわからない?

ツクるのが面倒くさくなってきた。

い、一番言ってはイケナイことを!
ステア!それはツクラーにとって最大の禁忌よ!
おばあさまから教わったでしょ!暖炉にしまっておいてって!

そんなこと言ったって・・・ツクるもの多すぎるし
段々何したかったのかわからなくなってきたよ~。

これは・・・エターナルに浸食されつつあるわね・・・。

エターナル?

ツクラーが太古の昔から戦ってきた強大な悪魔よ。
これまで何人ものツクラーがその強大な力によってその魂を失ってきたわ。

そ、そんな恐ろしい悪魔が!!!
一体何者なんです!その悪魔は!!!

あなたが知るにはまだ早いわ。
で、今は何が一番めんどうに感じるわけ?

宝箱!

右クリックでほぼ自動生成じゃない???

増加するアイテムを指定した後に
文章でアイテム名を入力するのがめんどうくさい。

もう一回入力しなさい。

だってさあ・・・コピペで作ったら表示間違いしたりとか、
あとで入手アイテムを変えた時に表示だけ変更するの忘れたりとかするし・・・。
宝箱はいっぱいあるから、すっごくめんどうなんだよ~~~。

う~ん・・・まあ、それは分からなくもないわね。
実際、私も表示はわざわざ手入力しないし。

え?そうなんですか?

コモンイベントでひな形を作っておけば、少しだけど楽になるのよ。
それでいいなら教えてあげる。

わ~い!おねがいしま~す!

言っとくけど、気持ち楽になる程度だからね。

先輩、そのフレーズ好きですね。

そりゃね。そもそもゲームをツクるのは手間がかかることだから。
完全に楽になる方法はないわ。

それはごもっとも・・・・・。

用意するのは
・コモンイベント 1つ
・変数      2つ だけでいいわ。

え?それだけ???

少しこだわるのなら、変数はもっとあった方がいいけど。
とりあえずひとつだけでやってみましょ。

わ~い!おねがいしま~す!

まずは・・・コモンイベントに基本的なひな形をツクる。

ふむふむ、これは簡単そうだね。
アイテム名の取得ってところはよくわかんないけど。
アイテム増加ぐらいなら楽勝だよ!

さて、それはどうかしら?
じゃあステア、変数を使って増加するアイテムを指定してみて。

へ?そんなの楽勝じゃ・・・。
およ???アイテムの増加で変数指定できるのは個数しかない!?

そ、デフォルトの命令には
変数で増加する対象アイテムを指定する、はないの。

ほんとだ・・・ありそうでないんだね。

だから今回はスクリプトで指定するわ。

スクリプト!?
ちょちょちょ!先輩!
アタシ、プログラムとか書けないってば!無理だよ!

ステア、落ち着いて。これがアイテムを増加させるスクリプトよ。
$gameParty.gainItem($dataItems[2], 1)
この場合アイテムIDが2のアイテムが1個増加するわ。

・・・・わかんない。

「2」のところが増加させるアイテムID
「1」のところが増加させるアイテム数よ。

ステアがさわるのは、数字の「2」のとこだけ。

「2」?のとこだけ?

形が決まっているの。
ここの「2」のところに変数を指定すればいいの。
今回は増やすアイテムIDに変数の5番を指定するね。
その場合はこう
$gameParty.gainItem($dataItems[$gameVariables.value(5)], 1)
つまり「$gameVariables.value(5)」が変数5って意味よ。

う~ん・・・わかんないけど・・・じゃあ、アタシも同じ「5で管理するね」

それぐらいの感覚でいいと思うよ。
次がちょっとだけ難しいんだけど・・・・。
変数は実は数字だけじゃなくて文字も入る。

え?変数なのに???

便宜上、数って呼んでいるだけで、文字列だって格納できるわ。
この感覚がわかればツクラーとしての技量は各段に向上すると言っても過言じゃないわね。

むむむ・・・すごいんだね・・・変数。

次にやりたいことは簡単に言えば
アイテムIDを指定して、そのアイテム名を変数に取ってくる。

先輩!もうわかりません!

大丈夫、便利な魔法だと思えばいいわ。
アイテム名をとってくるスクリプトはこうよ。
$dataItems[1].name
これでアイテムID「1」の名前を取ってくることができるわ。
それじゃ・・・変数5のアイテムIDの名前を取ってくる時は?

むむむ・・・[1]ってのが怪しいよね。
アイテムのIDって言ってるし。
たしか変数の5が「$gameVariables.value(5)」だっけ?
ひょっとして・・・「1」を「$gameVariables.value(5)」にする

大正解!
$dataItems[$gameVariables.value(5)].name
これで変数5番のIDのアイテム名が取得できるよ。

へえ・・・わかるような、わからないような・・・・。

これを変数に格納するようにする時はこんなふうに書くの。
$gameVariables.setValue(6,$dataItems[$gameVariables.value(5)].name);
 変数6番に
 変数5番のアイテムIDの
 アイテム名称を格納する。

ぎゃ~!
もう何してるのかわからないよ!

さっきも言ったけど、魔法だと思えばいいわ。
訳が分からなかったらコピペして数字だけ変えてもいいよ。
まとめるとこんな感じかな?

実際の動作としてはアイテムID(変数5番)を
・1個増やす
・文章のところに名前(変数6番)を表示する
となるわ。

よくよくみると・・・シンプルかも。

これを宝箱の処理に組み込む!

ええ!?たったの二行!?

変数5に格納する数字に「7」を指定しているけど
これはアイテム「ポーション」のアイテムIDよ。

つまり命令を実行した時に、
・ポーションが1個増加
・アイテム名に「ポーション」が表示
されていれば成功ってこと。

おお!なんかすっごい新鮮な気分!

色々と変更してきちんと反映されているかのテストは必須だよ。
たとえば「8」の時にハイポーションになるかは確認してね。

最初の設定は少し面倒かもしれないけど
宝箱の数が増えるほど工数削減の威力を発揮するわ。
コピペしてアイテムIDの変数を変更するだけで設置できるから。

あとは・・・急遽、宝箱の演出設定を変えたりする時も
コモンイベント一つを修正すれば全て反映される。

これは・・・楽かもしれない!

さらに自動化するなら
アイテムIDを乱数にすれば変数設定すら必要ない。

な・・・なんとぉぉぉ!これはすごい!!!
それなら一気に乱数指定で武器も防具もアイテムも全部自動化・・・ってなんじゃこりゃ!?
変なアイテム入手してる!?武器が増えない!?

言っとくけど、武器と防具はアイテムとは扱いが少し違うの。
ほら、データベースも分かれてるでしょ?
だからそれぞれに応じて処理を作らないといけないわ。
まあ、おおむね似たようなものだけど。

む~結構、奥が深いんだね。

アイテム名だけじゃなくて、
アイコンや説明文も取ってくることができるから
もう少し手を入れればこんなこともできるわ。

あ、「りゅーれんと」だ!こうやって出来てたんだね。

文章にアイコンを表示するにはプラグインとかが必要だけどね。
なるべく同じような反復作業は繰り返さずに
自動化を考えることがエターナルと戦うには有効よ。

なるほど!同じことばっかりしてると辛いもんね!

そ~いうこと!
ただ面倒とかツライだけじゃなくて
どうやって解決するかを考えることが
より快適なツクールライフの第一歩なのよ。

ありがとう!ディアナ先輩!
これならまだまだガンバレそうだよ!

その勢いよ!
通りすがり犬だってツクってるんだからできるに決まってるわ!

そうだよね!あんなイヌにもできるんだから!

呼びましたか?

のわっ!通りすがり犬!
このコーナーに出てこれるんだ!?

私はどこでも通りすがるのです。

よくわかんないけど、何しに来たのよ!

ヒドイ扱いですね・・・作者なのに・・・・。

う~ん・・・まあ・・・日頃の行いがね・・・・。
それで何のようなの???

~少女の想いが奏でるRPG~
 Symphonia Ryurento
フリゲ2022参戦中!応援よろしくなのです!

https://furige.herokuapp.com/2022

せんでんか~い!!!

自分のページ内で宣伝してどうするの(汗)???