りよねこたわ~

ロールプレイングゲーム作ってみたいにゃ~でもどうしたらいいのにゃ~?

このゲームの3Dダンジョンはこんな感じでできてるにゃ~【その1にゃ~】

ω・`) 16枚目のマップのイベントを作成中にゃ~。

っ´ーωー`)っ 最近ずっとそうにゃけど、なかなか進まにゃいにゃ~。

ω・`) うにゃ~?新しいグラボ手に入れて浮かれてるんじゃにゃいにゃ~?

ω-`) そ、そんなことはにゃいにゃ~w

 

ω・`) 今日はRPGツクールMVで、どうやって3Dダンジョン風に表示してるか説明しようかにゃ~。

っ´ーωー`)っ うまく説明できるかにゃ~?

 

一言で言うと、見える範囲にあるものがどういうふうに見えるかってことなんにゃ~。

まずは、3Dにしたらどう見えるかイメージして、それを描いてみるにゃ~。

f:id:riyoneko:20180411174125p:plain

ω・`) このゲームの3Dダンジョンは、こんな感じに描いてみたところから始まったのにゃ~。

あとはそれぞれの床のマスが、壁に接しているかいないか、壁に接していればどの方角に壁があるのかを定義していけばいいと思ったんにゃ~。

 

ω・`) にゃ~次はこれをRPGツクールMVで実現するにはどうすればいいかにゃ~って言う話にゃ~。

っ´ーωー`)っ 眠くなってきたから、続きは次回にゃ~。

 

順調に遅れてるにゃ~

くしゅッ!>w<

 

ま~くん 「おや?りよちゃん花粉症?それとも風邪かな?」

っ´ーωー`)っ 「むにゃ~花粉症じゃにゃいにゃ~。」

ま~くん 「りよちゃんは季節の変わり目に弱いんだから、無理しないようにね。」

っ´ーωー`)っ 「でもゲーム制作も遅れてるし、がんばらにゃいとにゃ~。」

ま~くん 「いまどのへん作ってるんだっけ?」

ω・`) 「えっとにゃ~・・・今16枚目のマップを作ってるところにゃ~。最近はなかなか進まにゃいにゃ~。」

ま~くん 「後半になるほど複雑になるように作ったんだからしかたないね。マップの確認とか、イベントのテストとか。ま~ほどほどにがんばって。」

っ´ーωー`)っ 「むにゃ~。」

 

くしゅッ!>w<

 

同じ名前の装備タイプなんたらにゃ~

ω・`) 15枚目のマップを作成中にゃ~。

苦戦してたプラグインのコード修正と、3Dマップチップのイメージの修正もなんとか終わったにゃ~。

っ´ーωー`)っ でも、目標の3月中完成はむつかしいにゃ~。

 

ω・`) さてとにゃ~、今日は装備タイプについて書いてみようかにゃ~。

このゲームでは、武器、盾、兜、鎧、手甲、装身具の装備タイプを設定してるにゃ~。

f:id:riyoneko:20180328171518j:plain

実際の装備画面をみるとこんなかんじにゃ~。

f:id:riyoneko:20180328171609j:plain

 

普通は、同じ名前の装備タイプでも上の装身具と下の装身具は別の装身具扱いになってしまうんにゃ~。

これを解決するために、今回はRuたんさんの「同じ名前の装備タイプなら同じものを装備できるようにするプラグイン」を使用させていただくにゃ~。

このプラグインを使うと、同じ名前の装備タイプは同じ種別のアイテムをとして装備できるようなるんにゃ~。

 

ω・`) とても便利なプラグインありがとにゃ~。

ただ1つ使用上の注意があってにゃ~。

装備画面から装備を変更する場合は問題ないんにゃけど、イベントなどで装備を変更したいときってあるよにゃ~。

上の画像でいうと、「バトルブーツ」を上の装身具に装備していて、「エメラルドネックレス」を手に入れたので下の装身具に装備させたいときにゃ~。

f:id:riyoneko:20180328173532j:plain

イベントエディタで、「装備の変更」を行うときの画面にゃ~。

装備タイプは、上の装身具にしないとプラグインの効果はにゃいので、装備タイプは変えられないにゃ~。

装備品をバトルブーツかエメラルドネックレスか選択するんにゃけど、それだと上の装身具の装備が変わるだけにゃ~。

「装備の変更」ってコマンドからは、うまく下の装身具に装備を追加できないんにゃ~。

 

ω・`)b そこで、スクリプトの出番にゃ~。

$gameActors.actor(1).changeEquip(6, $dataArmors[10]);

こういうふうにスクリプトで装備変更するとうまくいくんにゃ~。

$gameActors.actor(1)は、装備を変更したいキャラクターにゃ~。

changeEquip(6, $dataArmors[10])は、6番の防具装備スロットに、10番の防具(エメラルドネックレス)を装備するって意味かにゃ~。

ω・`) うにゃ~、0番が武器スロットにゃから下の装身具は6番になるのかにゃ~。

 

これでイベントでも装身具変更できそうにゃ~(*´ω`*)

 

壁を壊してみるにゃ~

ω・`) 14枚目のマップを作成中にゃ~。

っ´ーωー`)っ ほとんど進んでにゃいにゃ~。

3Dマップの表示に関連するものをいろいろ修正してたから、しかたにゃいのにゃ~。

おもに、3Dマップを表示するプラグインのコードと、表示されるイメージかにゃ~。

このイメージがまた曲者なんにゃ~。

σ(゜▽゜=)は3Dマップチップって呼んでるけどにゃ~。

 

ω・`) 今日は壁を壊してみようかにゃ~。

f:id:riyoneko:20180321171108j:plain

まずは壊れていない壁にゃ~。

で、これをどかんどかんどか~んって壊すにゃ~。

f:id:riyoneko:20180321171208j:plain

これで壁が壊れたにゃ~。

ω・`) うにゃ~?壊れたように見えないにゃ~?

っ´ーωー`)っ これが精一杯にゃ~。

 

ω・`)b これどういう処理をしているかっていうと、同じマップを2枚用意して、壊れていない壁のマップと、壊れた壁のマップでキャラクターを場所移動させてるにゃ~。

壁を壊せるところは決まってるから、1箇所で2枚、2箇所で4枚って感じで壊せる壁の箇所が増えると、そのマップの枚数も増えていってしまうにゃ~。

13枚目のマップは、最初調子にのっていっぱい壁を壊すマップにしていたんにゃけど、

マップの枚数があまりにも増えてしまって混乱してしまったのにゃ~。

最終的に3ヶ所の壁を壊せるってことで、マップも8枚に落ち着いたにゃ~。

っ´ーωー`)っ ていうか、イベントとかマップの場所移動とか確認するだけでも一苦労になってしまって、3箇所が限度かにゃ~。

 

ω・`) まだプラグインのコード修正と3Dマップチップのイメージの修正が終わってないんにゃ~。

っ´ーωー`)っ 来週はもっと進んでるといいにゃ~。

 

キャラクターの向きでイベントを起こすにゃ~

ω・`) 13枚目のマップとイベントを作成中にゃ~。

っ´ーωー`)っ なかなか思うように進まにゃいにゃ~。

ここのマップも、マップとイベントが複雑なんにゃ~。

 

ω・`) 今日はキャラクターの向きでイベントを起こすことを考えてみるにゃ~。

普通に考えると、イベントエディタのイベントコマンドに、条件分岐っていうのがあって、「プレイヤーの向きが下を向いている」場合の処理なんかを登録できるんにゃ~。

f:id:riyoneko:20180314170644j:plain

あとは、イベントのトリガーを「プレイヤーから接触」にでもすれば、プレイヤーから接触したときに、下を向いていればイベントを実行させることができるにゃ~。

 

ただこれだけだと、その場で向きを変えた場合とか、右からイベントに接触するとか、思うようにイベントが起動しないこともあるんにゃ~。

 

ω・`)b というわけで、考えたのがこれにゃ~。

まずイベントページ1枚目で、イベントに接触した場合の処理を行うにゃ~。

ここでは、セルフスイッチBをONにしてるにゃ~。

f:id:riyoneko:20180314172133j:plain

イベントページ3が、セルフスイッチBがONのときに出現するイベントになってるにゃ~。

 

イベントページ2では、セルフスイッチAがONのときにイベントを出現させて、さらに並列処理にしているにゃ~。

f:id:riyoneko:20180314172444j:plain

ここはあとから使うからとりあえず次にいくにゃ~。

 

イベントページ3では、セルフスイッチBがONになったときにこのイベントが出現するようにしてるにゃ~。

トリガーを並列処理にすることで、このイベントを周期的に処理するにゃ~。

f:id:riyoneko:20180314172818j:plain

つまり、下を向いているときは、セルフスイッチCをONにして、セルフスイッチBをOFFにしてるにゃ~。

下以外を向いているときは何もしないにゃ~。

 

イベントページ4で、セルフスイッチCがONになったときに実行する処理を登録するにゃ~。

f:id:riyoneko:20180314173156j:plain

セルフスイッチAをON、CをOFFにすることで、イベントが終了した後、イベントページ2の何もしない処理をしてるにゃ~。

 

つまりこの処理は、下を向いたときにイベントを実行する処理を表しているにゃ~。

その場で右を向いてから下を向いても実行されるところがいいところにゃ~。

 

欠点は、この1つのイベントで、イベントページ3(セルフスイッチB)をOFFにできないことかにゃ~?

例えば、このイベントに上から接触(イベントページ1を実行)してイベントを実行(イベントページ3、4、2を実行)したとするにゃ~。

その後、右を向いて(イベントページ2、3を実行)、イベントの右側に移動したとするにゃ~。

そうすると、セルフスイッチBがONになったままになるんにゃ~。

つまり、どこでも下を向くとイベントが実行されてしまうにゃ~。

 

これを防ぐために、イベントの4方向にセルフスイッチBをOFFにするスクリプトを置いておく必要があるにゃ~。

key = [1, 13, "B"];

$gameSelfSwitches.setValue(key, false);

こんな感じのスクリプトかにゃ~?

keyで表されている、1はマップID、13はイベントID、Bはセルフスイッチにゃ~。

それを、$gameSelfSwitches.setValueで、OFF(false)にするってことにゃ~。

 

ω・`) もっと簡単な方法ないかにゃ~?

 

あったにゃ~(*´ω`*)

riyoneko.hatenablog.jp