博士の不毛な研究~その8

投稿者:Material 204926 1 mini 井戸乃博士 投稿日:2017/10/31 00:43

どうも。井戸の博士です。
今日もWindowsのクソアップデートが
絶賛進行中ですよ!

Windows 10の話題はもういいですよ・・・
今回は何を説明されるんですか?

今回はRmakeユーザーになじみのあるテーマにしよう。
Rmakeに慣れ親しんだ人であれば、
こちらの画像を見ただけで
すぐにピンとくるのではないかな?



(※画像はmiyakin2さん作『ドードベル』から引用)

あ、わかりました。
Rmakeのデフォルトで用意されている、
お店のスクリプトですね?
runShopとsetItemToShopという関数を使うと、
すぐに使用できるのが便利ですよね。

まあ、いろいろとクセはあるけど、
スクリプトを数行書くだけで使えるというのは、
ありがたいよねぇ。
自分で作ろうとするとけっこう大変なんだよなぁ・・・

わざとらしく遠い目をしないでください。
もしかして、また自作病が出て、
ご自分でお店を作られたんですか?

ははは、そんな人をマッドサイエンティストみたいに
言うもんじゃないよ、ラヴィ君。
というわけで今回は、
お店のスクリプトの作り方を説明してみよう。
自分でお店を作ってみたいという人は、
参考にしてもらいたいところだが、たぶん参考にならんだろう。


1. 通貨を設定する

まずは通貨がないと話にならんので、
変数を使って設定しよう。
わしのゲームでの通貨単位は「DP」なので、
例えば、setVariable("DP", 0)というふうに初期値を設定するんだ。
これをやっておかないと、後で計算ができなくなるから忘れんようにな。

DPというのは何の略ですか?
めずらしい単位ですが・・・

そこはまあ、ゲームをプレーしてからの
お楽しみということにしといてくれ。
所持金を増やしたいときは、
setVariable("DP", getVariable("DP")+100)
減らしたいときは、
setVariable("DP", getVariable("DP")-100)
という感じでgetVariableを使おう。
これでお金の計算は簡単にできるぞ。


2. 買う設定

通貨を設定したらお店を作っていくわけだが、
まずは「買う」方から作っていこう。
「売る」のと比べると作るのは楽だからな。

まあ博士は全部がご自分で作っているから、
そう言えるのかもしれませんが・・・
具体的には、
どのように作っていけばよいのですか?

要は選択肢メッセージ(speakWithSelect)の応用なのだよ。
各選択肢で商品と値段を表示して、
選んだ商品が持ち物に追加されて、
代わりに所持金が減るように設定すればいい。
慣れるとセリフを変えたり、オプションを設定したり、
いろいろと応用が利くようになる。





3. 売る設定

さて・・・次はいよいよ「売る」方の設定だ。
こちらは非常に大変で挫折しやすいところだから、
心して聞いてもらいたい・・・
最初にアイテムの売値を設定しなきゃならん。
これが面倒なのだよ!

確かに買う方は、
お店で売っている商品の値段だけを設定しましたが、
売る方は、
お店で売れる可能性のあるアイテム全部の値段を
設定する必要がありますものね。

そのとおりだ。厳密に作りたければ、
最初にゲームに登場する全てのアイテムの売値を
決めておかなければならん。
そしてアイテムと売値を設定するときには、
二次元配れ・・・うぐぐ、く、苦しい・・・

大丈夫ですか?!
しっかりしてください、博士・・・

い、いかん・・・ひさしぶりに
この言葉を口にしたら、拒絶反応が・・・
と、とにかくアイテムと売値の一覧を設定するには、
二次元配列を使わないといかんのだ!



アイテムと売値の配列(配列A)を作ったら、
手持ちのアイテムを参照して、
配列Aに含まれるアイテム項目をピックアップして、
新しい配列(配列B)を作る。
この配列Bがお店でプレーヤーが売ることのできる、
アイテムの一覧になるわけだ。





まとめると、
アイテムをお店で売るスクリプトを作るためには、
最低でも2つの二次元配列が必要になる、
ということですか?

正確に言うと3つ以上必要だね。
アイテム欄も実は二次元配列の一種だから。
とにかく多数の項目をリストアップするときは、
二次元配列は必須と言っても過言ではない。
面倒でも避けては通れないのだよ!
わしは二次元配列を作るとき、
いつもこちらの掲示板を参照させていただいておる。
本当にいつもお世話になっておりますよ・・・

https://rmake.jp/boards/2/topics/398

先人の方々が試行錯誤された過程が、
こうして記録に残っているのはありがたいですね。
なお、博士は全部自分で作ってしまいましたが、
デフォルトのアイテム欄を利用したお店の作り方について、
mochi3kan様がご自分のスクリプトを公開してくださっています。
こちらも、ぜひご参照ください。

https://rmake.jp/blog/mochi3kan/8052

おおお!
わしの、もやっとした解説よりも、
はるかに具体的かつ詳細でわかりやすーい!
今までのわしの説明は何だったんだ・・・
サンプルまで用意してくださっているので、
お店を作りたい人はぜひ参照してもらいたい!




さて博士・・・
今回も、相変わらず進んでいるのか進んでいないのか、
よくわからない説明でしたが、
本当のところは、どこまで進んでいるんですか?

ううむ・・・まだ完成にはほど遠いのだが、
一応、ある程度区切りはついているんだ。
せっかくだから、暫定的ではあるが
次回にゲームを公開することにしようかな・・・

・・・博士、
もう一度おっしゃっていただけますか?

うむ、次回に一度、ゲームを公開してみようかなって。
このままではいつ完成するかわからんし、
いくらブログで内容をお伝えしても、
公開できなくては絵に描いた餅だからねぇ・・・
って、おいこら、ラヴィ君・・・
なんだ、そのICレコーダーは?!

今のお言葉、録音させていただきました。
もう言い逃れはできませんからね。
ちゃんと約束は守っていただきますよ・・・

ひ、卑怯な・・・!
というか、そんなにわしって
信用されてなかったのか・・・

それでは皆様、
次回をお楽しみに♪

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini taki(投稿日:2017/11/12 01:13, 履歴)
お店までオリジナルのスクリプトで組まれていて
かなり作り込まれたゲームになりそうですね。

配列を使ってデータを入力していく作業が
終わりが見えなくて辛いですよね。
思い出すと発作が起きるのも無理ないと思います。

ゲームの公開楽しみにお待ちしております。
Material 204926 1 mini 井戸乃博士(投稿日:2017/11/12 18:31, 履歴)
た、確かに・・・
作業が進むたびに内容を更新しておるのですが、
だんだんわけがわからなくなってきたりします・・・
スクリプトとは別に、
メモを書いておいたりしておりますよ。

博士の場合、
ゲームの作業全体に
終わりが見えないようですが・・・
Cdv30200 aoi icon mini aoihikawa(投稿日:2017/11/11 19:02, 履歴)
遊んでもらいながら
調整する、というのも
Rmakeならではの
魅力のひとつですね
Material 204926 1 mini 井戸乃博士(投稿日:2017/11/12 18:24, 履歴)
確かにそうですね。
市販のゲームだと、そうはいきませんからな・・・
ただ今回は開始スクリプトを
随時更新しながら作っておりまして、
更新すると最初からプレーしなおさなければいけないので、
遊んでいただくタイミングが問題となりそうです。

ちゃんと計画性を持ってゲームを作らないから、
そういうことになるんですよ・・・
Iaqynsgw 400x400 mini qhqh123(投稿日:2017/11/03 08:38, 履歴)
お疲れ様です 内容の確認すごく便利ですね
これでもう 悪徳業者にはだまされない! (白目)
Material 204926 1 mini 井戸乃博士(投稿日:2017/11/05 20:47, 履歴)
パラメータ確認が注目を集めておるようですな。
装備の効果を表示するのは長年の夢だったのですが、
実装にはかなり手間がかかりましたよ・・・(遠い目)
しかし悪徳業者とは、いい発想ですな!
おもしろいキャラができそうです・・・ふふふ・・・

博士、何を思いつかれたんですか?
アイデアを取り入れるのも大事ではありますが、
ゲーム制作に手間をかけすぎないでくださいね・・・
Iaqynsgw 400x400 mini qhqh123(投稿日:2017/11/07 16:20, 履歴)
おおっ なにかアイディアの助けになりましたら幸いです
Material 303531 2 mini mochi3kan(投稿日:2017/11/02 17:29, 履歴)
アイテムのパラメータを買う時に確認できるのは便利ですね。
DPがなんなのかめっちゃ気になる……
早く遊んでみたいです!

記事のご紹介ありがとうございます!
実はあれからちまちま改良を続けてまして、
新しいのも早く公開できるようにしたいなあと思ってます。
Material 204926 1 mini 井戸乃博士(投稿日:2017/11/05 20:40, 履歴)
いろいろ興味を持っていただきまして、
ありがとうございます。
遅くても11月中には公開させていただきますので、
少しだけ、お待ちくださいませ♪

なんだか着々と外堀を埋められているような・・・
それはともかく、
スクリプトの改良を続けておられるとは素晴らしい!
たいへん興味深いので、楽しみにお待ちいたしますよ!