Appendix

広告

Entries

コメントお返事

> いちか さん
こんにちは、いらっしゃいませ~
いただいたコメントの件についてのお返事です。

画面がタッチされたかどうかについては、TouchInput.isTriggered()で取得することができます。
なので、[条件分岐]の[スクリプト]で TouchInput.isTriggered() と入れることで分岐が可能です。

他のボタンも条件分岐を行っているようなので、こちらを使ったほうがよいのではないでしょうか。

もしそれでも解決しないようであれば、ご要望の機能追加を検討します。


スクリプトについて、詳しくはヘルプの[JSライブラリ] > [TouchInput]に書かれています。(英語ですが)

簡単にスクリプト紹介。

TouchInput.isTriggered() : タッチされた瞬間のみtrue
TouchInput.isReleased() : タッチ状態から離した瞬間のみtrue
TouchInput.isPressed() : タッチしている間true(タッチされた瞬間含む)

この3つでたいてい何とかなるかと思います。

ミニマップの更新とカーソル操作

下記のプラグインを更新しました。

ミニマップ標示

それから新しいプラグインを公開しました。

ミニマップ標示 カーソル操作

たぶん動くはず。

ミニマップ標示』はプラグインコマンドでスクロールさせる機能を追加しました。

最初は『カーソル操作』のほうにこの機能付ける予定でしたが(その方が簡単だったので)、
こちらに付けるべきだろうと思い機能を移し替えました。

中身もいろいろと変わっているので、不具合がないかちょっと心配です。


てか、いろいろとかなり無茶な動かし方してるので最適化したいとは思うのですが、
それはそれで時間がかかる上に不具合でそうなので保留です。



カーソル操作』はミニマップ上にカーソルを表示させ、
それを動かすことでミニマップをスクロールさせることができる機能の追加です。

コントローラー(キーボード)、マウス(タッチ)どちらでも動くようになってますが、
どちらも動かせるようにすると機能をつけにくいのが難点です。

なのでもういっそのこと機能を付けるのはユーザー任せって感じです。

ちとめんどくさい内容ですが、使いこなせれば複雑な機能を付けられるはず。



とりあえず、作りたいプラグインは作りました。

さーて、今後はどうしようか・・・

公開延期

今日公開しようと思ったのですが、不具合見つかったりまだ追加したい機能があったので見送りです。

だいたいこんな感じの作ってます。

ミニマップ標示 カーソル操作

簡単に言えば、ミニマップ上にカーソルを表示させ、ミニマップを動かせる機能です。

イベントの作り方によっては、ミニマップ上にマーカーをつけたり、
拡大率を変えたりといったこともできると思います。

オプションのくせに、ミニマッププラグイン本体と同じくらいの内容です。


というわけで、今週書けることはこれくらい。

プラグインの更新

下記のプラグインを更新しました。

ミニマップ標示 マッピング

ご報告いただいた「ロード時にマッピング情報がクリアされてしまう不具合」を修正しました。

配列に新しい変数つけても、セーブデータに保存されないんですね。

JavaScriptって便利だなあとか思ってましたが、さすがにこれはやってはいけないようでした。



いつぞやの話の続きで、「マッピング」プラグインを作る際、
移植ではなくちょっと特殊なスクリプトを組んだのでそのお話。

マッピングの移植自体は結構簡単にできました。
(マップが切り換えれる機能に対応するのにちょっと躓いたくらい)

が、実際に動作させてみると処理がすごく重い

PCで動作させててもフレームレートの低下が感じるくらいだったので
スマホとかではさらにひどいことになりそうなので、対策は必須でした。


実際、マッピングはかなり面倒な処理をしています。


まず、元々のミニマップ描写自体がこんな感じ。
170210b.jpg
元の画像を4倍にした画像を別に作ることで、マップのループに対応しています。

この場合、画像Aだけでなく画像Bも保持しておかなくてはならないため、メモリを多く消費します。

その代わり、処理は軽いです。


が、マッピングの場合はこれが処理を重くする原因になってます。

マッピングプラグインは歩いてマップを書き換えるたびに、
マッピングされた画像を4倍にする処理を行っています。

VXAceでは気にならない程度でしたが、MVでこれは重い処理のようです。


というわけでこれに対処するため、以下のような構造に変更。
170210c.jpg
正確には、何も表示しない親スプライト1つと、画像を表示する4つの子スプライトを使ってます。

スプライトの数が増えた分、処理はちょっと重くなりますが、4倍にする作業が発生しません。

さらには画像Bも必要ないため、メモリを食いません。



でも言うは易し、4つのスプライトを一つの画像のように扱うのは計算式が大変。

拡大縮小、原点移動など、対応しなければいけないことが山ほどあります。

VXAce版を作る際もこの構想はあったのですが、手間がかかりすぎるということでやめたくらいです。



なので処理が重いまま諦めようかと思ったのですが、
ふとスプライトの構造を見て簡単に解決できることに気づきました。

上にもちょっと出てますが、MVのスプライトには親子関係というものがあります。

そして、「子は親の拡大率、不透明度、原点位置等が反映される」
という特徴があります。

つまりは諦めていた理由のほとんどが親子関係を作るだけで解決するのです。


そして唯一対応しなければならないのが表示範囲ですが、これもあっさりと解決。

Spriteクラスを見ていたら_refreshメソッド内で必要な計算のほとんどが行われており、
ここをちょっと改変するだけで対応できてしまいました。



MVになって面倒になったと感じることが多かったのですが、
めずらしく楽ができたというお話。

もし、ループする画像を作りたい方がいたら、これを参考に作ってみてください。

プラグインの更新

下記のプラグインを更新しました。

ミニマップ標示
ミニマップ標示 マッピング

不具合修正と要望のあった機能を追加しました。


▼追加した機能の説明

メニュー画面や戦闘画面に移行する際にミニマップを非表示にする機能を追加しました。

プラグインのパラメータで設定できます。


それからVXAce版にあったミニマップにフレーム画像を表示できる機能を追加しました。

ただし、プラグインコマンドから画像ファイルを指定する都合上、
デプロイメントする際の「未使用ファイルを含まない」機能に対応できません。

一応対処法として、使用しないコモンイベントで「ピクチャの表示」を設定することで、
使用したファイルにすることができます。

ご注意ください。



コメントへのお返事です。

> 頭中下層 さん
詳細ありがとうございます。

更新内容にも書かれておりますが、「上層タイルの2層目が反映されていない」のが原因だと気づき、
修正しました。

VXAceにはなかった機能なので、移植する際に対処し損ねてました。

この修正でいただいたコメントの5番は反映されるようになったはずです。

まだ解決しない、またはおかしな動作があるようでしたらコメントかメールをいただけると幸いです。

コメントお返事

> 頭中下層 さん
こんにちは、いらっしゃいませ~

ちょっと情報が少ないので原因を特定するのは難しいです。

なので気になった点と、予想できる原因を書かせていただきます。


まず気になった点。

>タイルセットの壁の上の部分や、本来、通行可能なタイルを通行不可能にし、それをマップ上に反映させたいのですが、通行不可とした場所がマップに表示されません。

とありますが、
「タイルセットの壁の上の部分」は元から通行不可(だけど通行できてしまう)ですがどのように通行不可にしたのか?
「通行可能なタイルを通行不可能にした」とはどのタイルなのか?
「通行不可とした場所がマップに表示されない」とは通行可能のまま表示される(もしくは変化なし)という意味なのでしょうか?


考えられる原因。

公式の「リージョンでマップ移動制限が出来るプラグイン」というのがYEP_RegionRestrictionsと想定します。
これはイベントまたはプレイヤーがそのタイルに入れないようにするプラグインなので、
タイルの通行判定が変わっているわけではありません。

なのでミニマップに反映されないのではないかと考えられます。


それからタイルセットのモードがフィールドタイプになっている場合、通行判定でタイルの色は変わりません。
エリアタイプにしてみてください。


以上の二つを確認してみてください。

解決しないようであれば、詳しい情報とともにコメントかメールをいただければ
また何かアドバイスできるかと思います。

Appendix

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • アクイ ト アイ
  • ぼくらの大革命!
  • 勇者がやらねば俺がやる!
  • 3Turn Battle!
  • 3TurnBattle!2nd 体験版

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文: