ツクールMVでトルネコの不思議なダンジョンのようなゲームを作りたい

teratti

ユーザー
ツクール初心者です。
やりたい事・・・マップ上の敵キャラクターにステータスを持たせ、プレーヤーとマップ上で戦闘する。
        戦闘に入ると1対1になりATB(アクティブタイムバトル)のように仕上げたい

色々調べてみたのですが、マップ上の敵キャラクターとの戦闘をしたいのですが、ステータスをマップ上の敵キャラに保持させることができません。

ローグライクゲームのような行動を実装したいのですが、イベントで作成できますでしょうか?それともプラグインが必要なのでしょうか?
どなたかご教授いただけますと助かります。
 

WTR

ユーザー
そんなに調べていませんが関連プラグインはいくつか存在するようなので、それらを利用させてもらうのが手っ取り早いと思います。
もちろん、理想とする仕様とは違うところもあるでしょうから
ある程度の妥協であるとか、自分で考えてどうにかしなきゃいけないこともあると思いますが。

イベントコマンドで出来るか、について
極論を言えばイベントコマンドに不可能はない、ってくらい自由度は高いです。
けど、やはり極論であって現実はかなり違います。

なにより、イベントコマンドでローグライクシステムを作る方法を教えてください、と言ってみても
手取足取り教えてくれる人はまずいない、というのが初心者にはキツイところ。

細かく教えてあげるということは、全部作ってあげるのと大差ないくらいに大変です。
理解してなきゃ教えられない。その理解することが大変なんです。
実際に作る人の手間は、理解することに比べたら実は些細なもので、それを他人に求めるのは難しい。

イベントコマンドそのものについては教えてくれる人がいるでしょうけど
それでどうやってローグライクを?というところは基本的に誰の助けも期待できない話だと思います。

と、ちょっと厳しい内容になってしまいましたが、現実はそんなところかと…
 
最後に編集:

teratti

ユーザー
そんなに調べていませんが関連プラグインはいくつか存在するようなので、それらを利用させてもらうのが手っ取り早いと思います。
もちろん、理想とする仕様とは違うところもあるでしょうから
ある程度の妥協であるとか、自分で考えてどうにかしなきゃいけないこともあると思いますが。

イベントコマンドで出来るか、について
極論を言えばイベントコマンドに不可能はない、ってくらい自由度は高いです。
けど、やはり極論であって現実はかなり違います。

なにより、イベントコマンドでローグライクシステムを作る方法を教えてください、と言ってみても
手取足取り教えてくれる人はまずいない、というのが初心者にはキツイところ。

細かく教えてあげるということは、全部作ってあげるのと大差ないくらいに大変です。
理解してなきゃ教えられない。その理解することが大変なんです。
実際に作る人の手間は、理解することに比べたら実は些細なもので、それを他人に求めるのは難しい。

イベントコマンドそのものについては教えてくれる人がいるでしょうけど
それでどうやってローグライクを?というところは基本的に誰の助けも期待できない話だと思います。

と、ちょっと厳しい内容になってしまいましたが、現実はそんなところかと…
的確な助言をくださりありがとうございます!引き続き頑張ってみます!

ターン制のローグライクの動きは実装できているのですが、敵キャラにDBのステータスを持たせることができず
悩んでいました。

スクリーンショット 2020-07-14 21.05.21.png
 

WTR

ユーザー
this.character(0).hp() って何か返ってくるんですか?

プラグインとかで追加定義したのでなければ、そもそもイベントにHPという概念はないはず。
this.character(0).hp() なんて知らないよ、と怒られませんか?

データベースは参照できます。
すでに変数23に攻撃力を取得しているように、$dataEnemies を参照すればいいと思います。
params[0]; // 最大HP
params[1]; // 最大MP
params[2]; // 攻撃力
params[3]; // 防御力
params[4]; // 魔法力
params[5]; // 魔法防御
params[6]; // 敏捷性
params[7]; // 運

が、データベースはスタティックなデータしか持ってませんので
最大HPはあっても、現在のHPはないです。
 

teratti

ユーザー
this.character(0).hp() って何か返ってくるんですか?

プラグインとかで追加定義したのでなければ、そもそもイベントにHPという概念はないはず。
this.character(0).hp() なんて知らないよ、と怒られませんか?

データベースは参照できます。
すでに変数23に攻撃力を取得しているように、$dataEnemies を参照すればいいと思います。
params[0]; // 最大HP
params[1]; // 最大MP
params[2]; // 攻撃力
params[3]; // 防御力
params[4]; // 魔法力
params[5]; // 魔法防御
params[6]; // 敏捷性
params[7]; // 運

が、データベースはスタティックなデータしか持ってませんので
最大HPはあっても、現在のHPはないです。
「怒られませんか?」とあったのでもしやと思い調べてみたら、デベロッパーツールがツクールでも使用可能とは!!
本当に色々とありがとうございます!すごく勉強になります。

まっつUPさんの EventEnemiesというプラグインコマンドを挿れてみて実行していましたが、
おっしゃる通りHPを参照できず悩んでいました。


スタティックなデータを現在のHPにすることができればあと一歩なので検証を行いながら実装していきます。
ありがとうございました。
 

WTR

ユーザー
なるほど、イベントとデータベースを紐づける手段はすでに用意されていたのですね。
プラグインをDLしてみたんですが、一部試した限りはプラグインの説明通りに動作しているようです。

プラグインは正しく読み込まれているでしょうか。
競合が疑われるのであれば新規プロジェクトで試してみるとかしてみたほうがいいかもしれません。

ただ、どちらかというとプラグインの問題じゃなくてイベントの作り方の問題なような気がします。
スクショ貼って頂いたイベントは、並列実行だとまずいのではないでしょうか。
コモンイベント:敵がダメージ  とかあるので、これは毎フレーム実行するイメージではないですよね。想像ですが

ちなみに私が確認したイベント動作は↓をスクリプトに書いただけです
HPをコンソールに表示、ダメージを与えてみて、再度HPを表示してみる というだけ

console.log(this.character(0).hp()) // --> 100 が表示された
this.character(0).damage(10)
console.log(this.character(0).hp()) // --> 90 が表示された

あと、攻撃力を変数に取得しているところ、このプラグインの機能を活用して
$dataEnemies[1].params[2]
のところを
this.character(0).param(2)
にしたほうがいいような気がします。
結果は同じですけど、エネミーIDを意識しないで書けるのでイベントをコピペ量産するときの手間が減るんじゃないでしょうか。
 

teratti

ユーザー
なるほど、イベントとデータベースを紐づける手段はすでに用意されていたのですね。
プラグインをDLしてみたんですが、一部試した限りはプラグインの説明通りに動作しているようです。

プラグインは正しく読み込まれているでしょうか。
競合が疑われるのであれば新規プロジェクトで試してみるとかしてみたほうがいいかもしれません。

ただ、どちらかというとプラグインの問題じゃなくてイベントの作り方の問題なような気がします。
スクショ貼って頂いたイベントは、並列実行だとまずいのではないでしょうか。
コモンイベント:敵がダメージ  とかあるので、これは毎フレーム実行するイメージではないですよね。想像ですが

ちなみに私が確認したイベント動作は↓をスクリプトに書いただけです
HPをコンソールに表示、ダメージを与えてみて、再度HPを表示してみる というだけ

console.log(this.character(0).hp()) // --> 100 が表示された
this.character(0).damage(10)
console.log(this.character(0).hp()) // --> 90 が表示された

あと、攻撃力を変数に取得しているところ、このプラグインの機能を活用して
$dataEnemies[1].params[2]
のところを
this.character(0).param(2)
にしたほうがいいような気がします。
結果は同じですけど、エネミーIDを意識しないで書けるのでイベントをコピペ量産するときの手間が減るんじゃないでしょうか。
すごい!!貴重なお時間を割いてここまで詳細なご意見をいただきとても感謝しています!ありがとうございます!
イベントの助言もツクールmvでのコンソールの使い方もとても参考になります!
今日中にはどうにかして実装します!
完成したらスクショ送ります!
 
トップ