制作ノート:5h,(モブキャラチップ作成、タイルセット修正、マップ作成)_20240326
フォロワー以上限定無料
無料プラン限定特典を受け取ることができます
無料
クリエイター支援サイト Ci-en
フォローするにはユーザー登録が必要です。
羽根珈琲 2024/03/27 02:40
無料プラン限定特典を受け取ることができます
無料
羽根珈琲 2024/03/25 03:47
無料プラン限定特典を受け取ることができます
無料
羽根珈琲 2024/03/23 15:53
RPGツクールMZ 非公式JavaScriptリファレンス, https://github.com/tonbijp/RPGMakerMZ/tree/master/Reference ,
tonbijp
(非公式でこれ!?)
[イベント]の更新。
イベントの更新てなんだろ?
セルフスイッチが元に戻るとか…?
現在のマップにある全[イベント]を更新。
画像関係。表示のさせ方とか演出面が気になる
[セルフスイッチ]を指定するキー。
[ マップID, イベントID, タイプ ] の配列。マップIDとイベントIDが指定できることからわかるように、スクリプトを実行したイベント以外のセルフスイッチの指定もできる。
タイプは "A", "B", "C", "D" のみが『RPGツクールMZ』のエディタ上で操作できる。
逆にいえばスクリプト上での操作ならば任意の文字列が使用でき、"A", "B", "C", "D" にこだわる必要はない。
これ面白そうなこと書いてある。
任意のイベントのセルフスイッチを切り替え可能。しかもA~Dにとらわれない。
絶対便利じゃん~~いつ使うのかわかんないけど。
ただクラス: Game_SelfSwitches
とどう違うのかわからん。
所持金不要なので、プラグイン側で消す予定。
この関数をいじるかその周辺を確認っぽい。
イベントの「スクリプト」で呼び出す this.
はこいつらしい。
インタプリタってなんだ?
実行箇所や [トリガー] が[並列実行]であるかによって、Game_Interpreter を保持しているオブジェクトは次の異なったものがある。
つまり… this.
にもいろいろあるってこと?
イベントもthisだしmapもthis…!?
オブジェクト生成時の初期化。
this.initialize() とかでマップリセットできるってこと?
でもこのインタプリタではMapのクラス呼び出せない気がする。
これオブジェクト指向のオブジェクト?
this.character(0)
指定したIDのGame_Eventを返す。
0 だとコマンドを含むイベント自身を返す。 マイナスの値の場合 Game_Player を返す。
イベント内でスクリプトを実行するとき、0
を指定して呼び出す。
1以降はマップ内のイベントIDに対応している。
this.character(1) で「001 EV001」を呼び出せるはず
this.character(-1)でプレイヤーを呼び出せるはず。
this.character(0).scrolledY() < 5
this.moveTowardCharacter({x: 7, y: 6})
座標はタイル値
this.character(0).setPriorityType(0)
羽根珈琲 2024/03/23 03:48
■ モブおじさんのアイコンを用意する
またやらなくていいことやり始めた…とか思いながら作業をした。
■ 接触でイベントが発生するモブの配置 + 同時に、該当のモブと会話できるようにする
これ、どういうことなのか自分でもよくわかってなかったんだけど、
接触でイベント発生 > セルフスイッチで会話イベントに変更
の形式でやってみることにした。これ自体は難しくなくてすぐできた。
・問題1(イベント後の、イベント位置の移動)
イベント1(接触)のあと、イベント2に変化する際にイベントの位置がうまく処理できなくて悩んだ。
社内の人がセクハラしに近寄ってくるという設定なので、セクハラが終わった後は自席に戻ってほしい。
フェードアウトして指定の位置に戻すのもいいんだけど、歩いて元の場所に戻ってくれないの?
と思って調べたら、イベントを特定の位置に移動させる記事を書いている人がいた。
ありがとう、先達の人…。
イベントエディタ > 自立移動:タイプ:カスタム:ルート > スクリプト...
から、this.moveTowardCharacter({x: 3, y: 4})
を記載したらできた。
・問題2(戻ったら上を向いてほしい)
ルート移動が終わったら上を向いてほしいんだけど、でもこのままだと戻って終わってしまう。
ルート移動はループ処理なのでどこで切るとかないんじゃないのこれ。
自立移動
じゃなくて、実行内容
側で移動させたい。
…と思ったら普通にあった。イベントエディタ > 実行内容 > 移動ルートの設定
ただこれはループしない。
幸いマップが大きくない。移動回数の最大値を決めて、その回数分強○移動させようか…。
マップやキャラに引っかかったりすることを考えるとすり抜けONだけど、それだと机の上を歩いたりする。
・問題3(移動したイベントが、任意の位置から特定の位置に戻るルートを決める)
問題2を解決するには、ルート設定が必要っぽいと判断した。
イベントの条件分岐で、現在位置によって移動処理を変えよう。
RPGツクールMZ スクリプトリファレンス のコピー, https://tkool.jp/mz/plugin/javascript/script_reference/gamedate.pdf, RPG Maker
便利そうだけど、これだけだとかゆい。
もう少し情報が欲しい。
公式っぽいけど『~~~のコピー』ってなんだ?
インターネット探してたら出てきたけど、ほんとに公式か?
クラス: RPG.Event, https://github.com/tonbijp/RPGMakerMZ/blob/master/Reference/RPG.Event.md,
tonbijp
うーん?このクラスが何ができるのか調べてて、出てきたけどなんか思ってたのと違うな。this.character(0).event()
だけだと現在座標は取得できないのか?
クラス: Game_Event, https://github.com/tonbijp/RPGMakerMZ/blob/master/Reference/Game_Event.md#event---rpgevent, tonbijp
あった!
イベントの現在位置のX座標(タイル)は this.character(0).scrolledX()
でとれるっぽいぞ。
ついでに、移動時にプレイヤーだけすりぬけるようにしよう。
プライオリティを下げる。setPriorityType(0)
。0~2で0は通常キャラの下。
位置によって条件分岐して、移動ルートを設定……マップの中に条件分岐エリアが5つできた。
うーんバカかも。
これ、イベント(モブキャラ)の数だけやるんですか?
ありえん。歩かせて移動させたいとか言ってないで、フェードアウトでイベントの位置を瞬間移動させたほうがコスパいい。
あと移動中のウェイトなしにしたら、プライオリティ回復のコマンドが並行して処理されるようになったから意味ないかも。
コピペ用メモ
条件分岐例this.character(0).scrolledY() < 5
移動座標指定例this.moveTowardCharacter({x: 7, y: 6})
プライオリティ変更例this.character(0).setPriorityType(0)
・問題4(イベント移動のカクつき)
これは実質問題なかったけど、余計なことしてつまづいたからメモ。
マップやキャラに引っかかったりすることを考えるとすり抜けONだけど、それだと机の上を歩いたりする。
これの対策として、中継地点を設定していた。
どこにいても確実に移動できる位置に移動してから本来の目的地に移動…。
分岐がなくても確実に移動できてはいたんだけど、この確実に移動できる位置
というのが隣のマスだったりした場合、最大数ステップで同じ場所で足踏み(概念)が発生した。
現在地 - 経由地 - 目的地 の移動中の経由地で一瞬止まってしまうのでカクついて見えて嫌だった。
これどうしようかな~と思って悩んだけど、
そもそも、この確実に移動できる位置
は別に移動しなくてもいい位置
で余計な移動が発生する問題などもあって、問題3で全部条件分岐にしたのだった。
つまり、この経由地はもう用済み。
全部削除して、分岐に応じて最初から目的地に移動するように切り替えた。
一部の特殊な位置はややカクつくけど、目的地と距離が近いのでカクつきが小さい。
大幅に改善されたからまあ目的達成と言ってよいでしょう。
■ 気になってるプラグイン
イベントの移動範囲を制限したい場合は、こういうのにお世話になったほうが早いかも。
- イベントに移動制限をつけるプラグイン,
https://github.com/elleonard/DarkPlasma-MZ-Plugins/blob/release/DarkPlasma_NPCKeepOutRegion.js, DarkPlasma
■ 残タスク
[x] 接触でイベントが発生するモブの配置する。
[x] ↑二つを同時に行う。
- 企画の確認
- メニュー画面について考える。ゲーム部分って何が面白いんだっけ?
- システム情報の表示。日付、ステータス等。
- システム情報にプログレスバーを導入する。
- システム情報に何を表示するか考える。
- デイリーシステムの導入。ベッドで決定キーを押すと、日付が変わる。
- 服装によって挙動が変わるイベント(服装ステータスを管理して、立ち絵変更の際に反映されるようにする)。
- 服装によって挙動が変わるイベント(服装ステータスを管理して、服を段階的に着脱できるようにする)。