いつもお世話になっております。
ゼルダなどのアクションRPGにおける、敵の無限増殖を実現したいと考えています。
演出手法として、敵が倒された時にそのイベントを新しい敵として”使い回して”スポーンっぽい動きをさせる方法が、
多くの歴代ツクール作品で行われていますが、
そういったことはせず、直でスクリプトからイベントを生成してマップに出現させたいと考えています。
Unityで例えるなら、Prefab化されたオブジェクト(イベント)をマップにInstantiateするような処理です。
このような事は可能なのでしょうか?
もし解決できる方がいらっしゃいましたら、
プラグインのソースや、既存のプラグイン等を教えて頂けないでしょうか。
ヒントだけでも結構です。
宜しくお願いします。
[解決済]スクリプトから特定のイベントをコピー(スポーン)するには?
[解決済]スクリプトから特定のイベントをコピー(スポーン)するには?
最後に編集したユーザー hadhad [ 2016年8月16日(火) 17:15 ], 累計 1 回
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
こちら、もう解決されたでしょうか?
完璧ではないのですが一応スクリプトで出来たので提示しておきます。 手順としてはこれでいいと思うのですが、稀にエラーが出てしまうんですよね・・・
エラーに再現性が無くて、負荷が大きいためうまく機能しないことがあるのかなぁと思ってますが、もしエラーの出る原因を特定できれば改善できるかもしれないので色々試してみて頂けたらと思います。
完璧ではないのですが一応スクリプトで出来たので提示しておきます。 手順としてはこれでいいと思うのですが、稀にエラーが出てしまうんですよね・・・
エラーに再現性が無くて、負荷が大きいためうまく機能しないことがあるのかなぁと思ってますが、もしエラーの出る原因を特定できれば改善できるかもしれないので色々試してみて頂けたらと思います。
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
こんにちは。
ちょうど私も同じプラグインを作成していたので公開します。
仕組み的にはおおよそTrbさんのスクリプトをそのままプラグインにしたようなものです。
・使い方
イベントをコピーして動的に生成します。
コピーした一時イベントは、イベントコマンド「イベントの一時消去」
によって完全に削除することができます。
セルフスイッチは個別に管理され、生成されるたびに初期化されます。
プラグインコマンド詳細
イベントコマンド「プラグインコマンド」から実行。
(パラメータの間は半角スペースで区切る)
ERS_生成 1 5 10 # イベントID[1]のイベントをコピーしてX[5] Y[10]に配置
ERS_MAKE 1 5 10 # 同上
・ダウンロード
https://raw.githubusercontent.com/triac ... ReSpawn.js
・利用規約
当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。






・これまでに制作したプラグイン一覧
https://docs.google.com/spreadsheets/d/ ... d=30581402
ちょうど私も同じプラグインを作成していたので公開します。
仕組み的にはおおよそTrbさんのスクリプトをそのままプラグインにしたようなものです。
・使い方
イベントをコピーして動的に生成します。
コピーした一時イベントは、イベントコマンド「イベントの一時消去」
によって完全に削除することができます。
セルフスイッチは個別に管理され、生成されるたびに初期化されます。
プラグインコマンド詳細
イベントコマンド「プラグインコマンド」から実行。
(パラメータの間は半角スペースで区切る)
ERS_生成 1 5 10 # イベントID[1]のイベントをコピーしてX[5] Y[10]に配置
ERS_MAKE 1 5 10 # 同上
・ダウンロード
https://raw.githubusercontent.com/triac ... ReSpawn.js
・利用規約
当プラグインはMITライセンスのもとで公開されています。作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)についても制限はありません。このプラグインはもうあなたのものです。






・これまでに制作したプラグイン一覧
https://docs.google.com/spreadsheets/d/ ... d=30581402
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
Trbさん、トリアコンタンさん、ありがとうございます!
早速お二方のプラグインでやってみた所、問題を解決できました!
しかし、ひとつ疑問が残ります。
継続的に何百と複製し続けると、イベントの一時消去を行ってもイベントIDの最大数は継続的に増えていくようなのですが、
一時消去されつつもイベントIDが何百何千の値になっていても負荷的には問題ないのでしょうか?
また、もし可能なら、一時消去ではなくイベントの総数から抹消する方法がありましたら教えて頂けますと助かります。
ひとまず、ありがとうございました!
早速お二方のプラグインでやってみた所、問題を解決できました!
しかし、ひとつ疑問が残ります。
継続的に何百と複製し続けると、イベントの一時消去を行ってもイベントIDの最大数は継続的に増えていくようなのですが、
一時消去されつつもイベントIDが何百何千の値になっていても負荷的には問題ないのでしょうか?
また、もし可能なら、一時消去ではなくイベントの総数から抹消する方法がありましたら教えて頂けますと助かります。
ひとまず、ありがとうございました!
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
イベントIDの数字は増えていきますが、動的生成されたイベントに対して「イベントの一時消去」を実施すると
イベントオブジェクトとスプライトの参照も併せて消去する設計なのでGCとともに解放される想定です。
こちらの動画で生成→消去を5000体ぶん繰り返しています。
https://twitter.com/triacontane/status/ ... 5029123073
イベントオブジェクトとスプライトの参照も併せて消去する設計なのでGCとともに解放される想定です。
こちらの動画で生成→消去を5000体ぶん繰り返しています。
https://twitter.com/triacontane/status/ ... 5029123073
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
ありがとうございます!
なるほど、それなら問題なさそうですね。
しかしこれって本当に総数に限界はないんでしょうかね?
限界がある場合、どこまでの数が保障されるのかが気になります。
javascriptの表現可能な最大値は±1.7976931348623157×10^308だそうですが、
そこまで生成しても問題ないのか、ちょっと気にかかります。
なるほど、それなら問題なさそうですね。
しかしこれって本当に総数に限界はないんでしょうかね?
限界がある場合、どこまでの数が保障されるのかが気になります。
javascriptの表現可能な最大値は±1.7976931348623157×10^308だそうですが、
そこまで生成しても問題ないのか、ちょっと気にかかります。
Re: スクリプトから特定のイベントをコピー(スポーン)するには?
そう言う意味での数値としての限界値はもちろんありますね。
ただ、Graphics.frameCountのように毎フレーム1加算される変数もありますので、
あまり気にはしてないです。
ただ、Graphics.frameCountのように毎フレーム1加算される変数もありますので、
あまり気にはしてないです。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30
[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/