【MZ】畑システム-準備編-
執筆者:神凪洸
誰もが一度は憧れる、牧場●語やルーン●●クトリーのような畑システム。
楽しいっすよねー!現実の畑はやらないけど!!(飛んでくる虫の問題はデカイ)
でもいざ作ろうとすると、スイッチがごちゃごちゃ。変数どれだけ用意すんねん!
イベントページ全く足りねーじゃねーか!!
MZに関しては20ページしか作れなくなってるのは控えめに言ってk(ソレイジョウハイケナイ)
で、結局作れる作物数が数種類しかないオマケ程度の畑システムしか
作れなかったって人も多いハズ。
そんな訳で、白黒洋菓子店仕様の畑システムの作り方講座を開くよ!
今回は、準備編だ!!(あまりにも長いので複数回にわけてお送りします)
◆大前提1 畑システムの細かい仕様を決めておく
今回の畑システムは、牧物のように本格的なシステムっす。
種を植え、水をやり続け、日数ごとに徐々に成長していき完成し、収穫!
と言うのは簡単っす。でも、よく考えるっす。
水をやった時とやらなかった時の翌日の挙動は?
水をずっとやり忘れた時の挙動は?
徐々に成長って作物によってバラつきあったりしない?日数とか決めた?
収穫しないで放置した時の挙動は?
肥料とかで成長促進なんてこともあるね。
天候や季節があったら、雨や嵐の時は水やり必要ない挙動も作らなきゃ?
え?嵐とか台風で作物枯れちゃう挙動も?
あ、屋外と屋内に畑がある場合の挙動……!
などなどなど……。わりと、仕様は予めよく考え決めておく必要があるっす。
組みながら仕様を決めるなんてそんな気軽に出来るものじゃないっす。
◆大前提2 スクリプト理解が必要
今回のシステムは、めちゃくちゃスクリプトを使うっす。
当講座では、そっくりそのままスクショ通りやれば
そこまで理解しなくても作れるようにはなると思うっすけど
触り慣れてないと、タイプミスはもちろん ちょっと違う仕様にしようと思ったら
どうすりゃええの?ってすぐに止まるっす。
単純なスイッチONOFF・変数に代入やら加算やらだけではないし
条件分岐すらほぼ全てスクリプトで書く事になるので
作物の種類とかそこそこ多かったりすると
覚悟と根気が必要になるくらいの難易度っすよ!ホントだよ!!
スクリプトの条件分岐はif文、変数は配列を利用するっすよ。
※執筆者はプラグイン知識らしいものはほぼないです。
綺麗に理解しなくても作れればそれでいいってド初心者向けです。
ひとまず、様々なスクリプト文を使うのでこちらのサイトを見て把握しておきましょう。
プログラムわかんない民でも ちょっと凝ったことをする際には
一番役に立つコマンドまとめサイトです。
◆大前提3 日付と天候のシステムが先
この畑システムに必要な大きなシステムがある。
それは「日付システム」だ!!
これがなければお話にならないのだ。
白黒洋菓子店ではプラグインを使わないタイプの日付+天候システム講座もあるので、こっちも参考にしてね。
お宅の日付はどういうシステムっすか?歩数で時間経過?●秒で1時間方式?
昼とか夜とかが分かるようにスイッチなり変数なりに代入される?
天候は一日固定?それとも変動?
畑システム仕様の話になるけど、成長更新のタイミングは時間経過?それとも一日毎に更新されるタイプ?
◆大前提4 当講座の畑システムの仕様について
大前提多すぎぃ!ってなると思うっすけど
それだけ大掛かりなシステムであると認識してほしいっす。でもこれが最後なので。
当講座で作れる白黒洋菓子店の畑システム仕様は以下の通り。
使用グラフィック「畑素材集」
あった方が便利(というか必須レベル)なプラグイン
「イベントロック無効化(トリアコンタン様)」「選択肢拡張(木星ペンギン様)」
■機能あり
- 種まき→水やり→成長→水やり→成長……→完成→枯れる(完成しない限り枯れない仕様)
- 成長段階でランダムで作物が枯れ、水やりで復活する仕様もサンプルに付属
- 種まき、水まき、肥料まきの順番はなく、どれからでもやれる
- 雨の日など水やりが自動的にされる
- 作物は一日ごとに成長更新される
- 作物の成長更新は畑MAP外にいても更新される
- 水やりをしないと成長しない。肥料のみあげても成長しないが、肥料は消費されない
- 肥料で作物の成長速度を変化。肥料アイテム複数作成可
- ただし、使える肥料は畝1つに1種のみ。一日毎に肥料は消費される
- 作物によって完成までの日数が違う
- 収穫時、作物数のランダム化。レア作物なり枯れ草なり種なりも仕込める
- じょうろの概念(水が入ってないとまけないとか)
■機能なし(ただし、理解構築ができれば今回作ったシステムに追加導入は可能)
- 季節で植えれるor植えれない。もしくは植えても翌日、枯れる
- 季節で作物成長速度の変化。適正季節外に育てると収穫まで遅い等
- 畝から作る(耕す)
- 嵐や台風などの悪天候で、作物が駄目になる
- 作物の連作。収穫して数日でまた収穫を繰り返せる
- 畑のあるマップが複数存在
■機能はないが、比較的導入は簡単
- 屋内の畑マップ。天候にかかわらず水やりが必ず必要になる仕様
- 散水機の概念(一回で全部に水をまけるとか)
◆下準備
■データベースの用意
種アイテム、作物アイテム、肥料アイテムをそれぞれ用意しましょう。
もう予め、どの程度の種類を作るか決めてあるっすよね?大前提で言ったよ?
(´・ω・`){どうして予め決めておかないといけないの?
(・∀・){後で決めると、今後の追加作業がガチクソレベルでめんどくさくなるよ
(・∀・){キッチリカッチリ決めなくても、種はアイテムID1番~20番の範囲内
作物は21番~40番以内とそれ以上は絶対追加しないぞ!って覚悟で決めておこう
ヽ(`Д´)ノ{未来の自分への投資だ!
ポイントヽ(`Д´)ノ
「アイテム選択拡張(Artemis様)」導入時は、アイテムのメモ欄にカテゴリタグを入れろ!
種なら<subCategory:tane>みたいな感じで。
じょうろ系はなくてもいいし、あってもいい。水残量しか参照しないので。
ポイントヽ(`Д´)ノ
種の順番と作物の順番は同じにしろ!
例えば、かぶの種→小麦の種→はくさいの種という順番で種を設定した。
それぞれの種に対応する作物も かぶ→小麦→はくさい の順番で設定すること。
一つの種から複数の作物が採れるって? 駄目です。原則一つに設定しましょう。
ただし、たまに同時に採れるレア作物とかの意味であれば作るのはおk。
ただし、それらの作物は別のIDから初めてね。レアに関しては順番はとくに決めなくておk
(´・ω・`){つまり?
ヽ(`Д´)ノ{サンプルプロジェクトで言うと、こういう事だ!
アイテムID1~10番は種!
ID12~20番は種と同じ順番にした通常作物!
肥料は肥料!ID21~23番だけだ!
ID24番からはレア作物だ!ここは種と同じ順番にしなくてもヨロシ!
■スイッチと変数の用意
スイッチ:「畑更新」「畑成長更新」の2つ。前者は畑MAPに入った際に現在の状態に更新する為のもの。場所移動前にスイッチがONになるっすよ。
後者は一日一回だけ発動される成長時用のスイッチっす。
変数:たくさんある。ありすぎる。
配列「畑状況」「作物種のID」「畑水やり」「畑肥料」「作物状況」
判定「状況汎用A~D」「水残量」
代入「種ID」「画像名」「画像インデックス」「画像向き」「種名or肥料名」「畑ID」「作物成長度」「自動更新コモン」「作物数ランダム(画像では占い表記)」
変数は以下の画像のような感じにするとわかりやすいと思うっす。
ポイントヽ(`Д´)ノ
それぞれのスイッチと配列変数を畑マップ数分用意!
畑マップが複数ある(ルンファクでいうダンジョン内の畑のような)場合はそれぞれのスイッチと変数(配列のみ)はマップ数分、必要っす。さらに変数「【代入】マップID」も。
つまり、複数マップあるとめちゃ大変っすね。
今回、複数MAPある場合の解説はなしでいくのでご了承を。
■コモンイベントの確保
大前提話関連ですが成長に必要な最大日数と
枯れる仕様ありなら完成してから枯れるまでの日数を決めてください。
最大日数とは、色んな作物の中で一番成長に時間のかかる作物の日数っす。
この日数+枯れるまでの日数分、コモンイベントが必要になるめんどくさいタイプなので。
(もう少しスマートに出来ると思うけど、それが限界だった)
例:完成してから3日後には確実に枯れる。一番長い最大成長日数は16日の場合
最低19コモンイベントの枠が必要。
○必須
「画像変更コモンへ」「種まき/水まき/肥料/収穫判定」「作物画像変更実行」「手動水やり時のコモン判別」
○画像代入系
「一日目の種の種類で苗画像代入」「二日目の種の種類で苗(略)」「○日目の種の種類で作物画像代入」と先程の最大日数+枯れるまでの日数分のコモンを用意。
種の種類で種画像が違う場合はそれ用のコモンも必要。ない場合でも最初の種として別コモン化してると後で変更がしやすい。
苗(成長途中)画像は作物によっては共通になるものもあると思うっす。
なので予め、画像共通になる部分がある作物などはリストアップしておきましょう。
アイテムIDでリストアップしておくと便利。
と言ってもよくわからないと思うので、コモンイベント名は空でいいので枠だけ確保しましょう。
○その他
「種の種類で看板変更」
区画ごとに畑を作る感じの場合は、特定箇所を調べて植えるだの水やるだのという選択をする仕様になります。その時に何を植えてるのかわかるようにする看板です。
(´・ω・`){区画畑ってなに?
(・∀・){最後の方に実際の挙動動画を載せるので、それを見てね
看板画像は……自分で用意してね。
■マップと畑イベントの確保
畑システムを利用するマップは、基本的にそれ以外のイベントは
設置しないような専用マップとして用意しましょう。
以下、イベントの内訳。
1マス畑タイプ:「畑更新用」を1つ。「畑(畝)」必要分。「水をくめる場所」必要なだけ。
区画畑タイプ:「畑更新用」を1つ。「畑(畝)」必要区画分。「区画畑の操作用(看板)」区画分。「水をくめる場所」必要なだけ。
ポイントヽ(`Д´)ノ
畝のイベントIDは連番にしろ!
ID5番が最初の畝イベントなら、その後は必要な数まで畝イベントを作るっす。
ID5番、ID7番、ID8番、ID13番 みたいに飛ばしちゃダメです。
◆準備めんどくさい
(´・ω・`){用意するの多くない?
(;・∀・){だろうな。だが、我々はこれを1から作ったのだ。ガンバレ
(´・ω・`){なにその時代遅れの苦労したからお前も苦労し(以下略)
そんなわけで、サンプルプロジェクトを用意したっすよ。
というか、今回の畑システム講座はこのサンプルプロジェクトを見ながらの方が
圧倒的に説明もしやすいし、分かりやすい(筈)なので頼むからDLしてください。
更新:2023/04/18
◆準備編終わり
はい、お疲れ様でした。ここまでやってかつサンプルプロジェクトを見て
無理だなめんどくせーって思ったら畑システムは諦めましょう。
そして畑プラグイン素材がない理由もお分かりになるでしょう。(あっても牧物レベルじゃない筈、多分)
とくにカスタム性(拡張性)が容易に出来る構造にするにはきっとプラグイン作者的には絶対作りたくねぇ!この仕様で有償で個人用に作る分にはともかくな!って思うレベルのものだと、プラグインちょっと弄れる民は思うのです。
しかも日付天候システム必須。そりゃぁ……ねぇ?
とりあえず、白黒洋菓子店仕様の畑システムがどんなもんかってのを
動画にしたので見てね。こういうのが作れるようになります。
次回からは本格始動!「基礎作り編」!
0コメント