投稿記事

オブジェクトグループ・タイルセット編集機能など【マップオブジェクトプラグイン】

「マップ自動装飾プラグイン」のver1.33へのアップデートを行いました。

主に「拡張:マップオブジェプラグイン」への機能追加となります。
使い勝手がかなりよくなるので、ぜひぜひ追加された機能をさらってみてください!

主な追加機能

  • オブジェクトグループ機能
  • 他のタイルセット画像のオブジェクト配置
  • エディタ上での遠景モック表示

更新プラグイン

  • TRP_CORE.js(更新忘れずに!)
  • TRP_MapDecorator.js
  • TRP_MapObject.js

(※今回も更新内容が多いため、念の為プロジェクトのバックアップをお忘れずに!)

オブジェクトグループ機能

配置したオブジェクトのグループを1枚の画像として保存&登録する機能。
https://twitter.com/thiropGames/status/1638841486556151808

SA○AN的なことを、実際にマップに配置しながら編集できる実践的&遊べる機能です!
衝突判定の設定が可能だったり、タイルセット画像への登録も○


オブジェクトの配置/プライオリティの変更

ver1.33でオブジェクトのプライオリティ変更が可能になりました。

オブジェクト配置後に「Eキー」を押すとプライオリティが

0(キャラの下) → 1(キャラと同じ) → 2(キャラの上)→0

と変更できます。グループ用に配置する際に便利なので活用しましょう!

また、「Shift+Eキー」を押すことで「0.1刻みで変更」可能です。
(※ただし、グループ登録以外の目的で0.1刻みに設定することはあまりおすすめしません。特に1はプレイヤー位置によりキャラの上に位置したり下に位置したりと変わりますが、0.9や1.1では常にキャラの下or上となり大きく仕様が変わります。)



同じオブジェクトを複数配置する際はプライオリティ変更後に「Cキー」を押してコピーすると便利です。

現在のパラメータのオブジェクトをそのまま配置することができます!


オブジェクトの範囲選択

「Vキー」を押すとオブジェクトの範囲選択モードに入ります。

マウスドラッグで対象のオブジェクトを選択しましょう。
クリックすることでオブジェクトごとに選択/非選択の細かな調整も可能です。

オブジェクトが選択された状態で「Gキー」を押すことでグループ登録画面が表示されます。

また、「Backspaceキー」を押すと選択されたオブジェクトを一括で削除することも可能です。地味に便利なので覚えておくと良いでしょう!


グループ設定

グループ設定画面では「X方向の中心軸(アンカー)」「プライオリティ」「衝突判定」など設定可能です。

X方向の中心軸(アンカー)の設定

アンカーは回転や拡大の中心となる軸です。
また、オブジェクト配置時にクリックした位置がアンカー点となるように配置されます。

「Shift+左クリック」で変更できます。

あまり細かく気にする必要はありませんが、衝突判定を持つ場合は剛体の中心にアンカーを取ると良いでしょう。

(↓右に影が伸びてるので左寄りに見えますが、剛体の中心)


プライオリティの設定

グループ化したオブジェクトについてプライオリティを設定する必要があります。
「Eキー」で「0(キャラの下)、1(キャラと同じ)、2(キャラの上)」を切り替えてください。

衝突判定

左クリック/ドラッグでオブジェクトの衝突判定を「1/4タイル単位」で設定します。
(※プライオリティが1以外の場合は強○的に1に設定されます)

(↓剛体の上・左右はしっかり覆うように、足元は多少開けておくのがおすすめ)



グループの登録&画像保存

設定が終わったら「Sキー」でグループ登録を行えます。
カテゴリ名の入力ダイアログが出るので好きなカテゴリ名を入力すれば保存完了です!
(※カテゴリは増やしても9個までが管理が楽でしょう)

内部的には↓のように保存されます。

  • 衝突判定などのデータは「dataEx/trpMapObjectGroups.json」に保存
  • 画像は「img/trp_map_objects/カテゴリ名_0001.png」のように連番で保存

アセット登録用プラグイン

オブジェクトグループ保存時に一緒にプラグインフォルダに「TRP_CORE_RequiredAsset.js」が保存されます。

このプラグインは「デプロイメント時の未使用ファイル除外」でオブジェクトグループ画像が除外されないようにするための補助プラグインです。

初めて保存したときは、プラグイン管理画面で導入&ONにしておくと良いでしょう。


グループオブジェクトの選択

グループオブジェクトを配置したいときは「オブジェクトパレット(オブジェ配置画面でCtrl+右クリック)」から選択できます。

オブジェクトパレット画面で「Ctrl+Gキー」でグループオブジェクトの一覧が表示されます。(※元の通常リストに戻す際もCtrl+Gキー)

カテゴリが複数ある場合はマウスホイールでカテゴリを切り替えられます。
(※マップオブジェクトの種類が画面内に収まってない場合はAlt+ホイールでスクロール)


また、オブジェクト上で右クリックすると「衝突判定の再編集」「データ削除」が可能です。

「データの削除」は未使用(どのマップにも配置されていない)のもの以外は絶対に削除しないように注意してください!


「衝突判定の再編集」は、Escメニューの「移動テスト」を行い判定が不自然であれば再編集すると良いでしょう。
(※「解析値の表示」→「スプライトオブジェクト衝突判定」も活用すると○)

(↓各マス、1/4タイルサイズの衝突判定からマス全体の上下左右の通行可能フラグを算出しています。

配置位置により通行禁止タイルが2マスになったり3マスになったりと変わります。
オブジェクト移動時(Ctrl+左ドラッグ)にタイルグリッドが表示されるので、なるべく剛体の境界線がタイルの中央に寄らないようにすると良いでしょう。


グループオブジェクト画像をタイルセットに登録

グループ化したオブジェクトを現在のタイルセット画像に登録することも可能です。
(※衝突判定などは設定できません)

グループ登録画面で「Tキー」でタイルセット登録画面が表示されます。

  • 「ホイール/Q/Wキー」でタイルセット画像を切り替え
  • 空いているタイル位置を左クリック
  • 「上下左右キー」で位置の微調整
  • 「Sキー」で保存

既にタイルが配置されている位置にも上書き保存が可能です。

現在のマップで使われているタイルは「黄色の網掛け」になっているので、タイルセットで1つ目のマップであれば使っていないタイル(黒色の網掛け)は上書きしていくのも良いでしょう。



他のタイルセット画像の活用

オブジェクトパレットから「他のタイルセットの画像」も呼び出せるようになりました!


パレットを表示し「Ctrl+Aキー」で「img/tilesets」フォルダ内の「B-Eタイル」の画像一覧が表示されます。
(※タイルセット画像名に_A1~_A5の付記されたものが除外されます。)

マウスホイールで画像を切替られる他、キーボードでファイル名の頭文字検索も可能です。

https://twitter.com/thiropGames/status/1639219428717101057


他タイルセット画像オブジェクトを現タイルセットに登録

Ctrl+Tキー」で、マップ上に配置されている他タイルセット画像のオブジェクトの画像をまとめて現タイルセットに登録できます。

タイルセットに1枚空の画像を用意しておけば、フォトショなど使わず実際にオブジェクトを配置しながら編集可能なので新たにタイルセットを組むときに便利でしょう!(B-Eタイル限定ですが)

一通りオブジェクトを配置し、マップを保存する直前にタイルセット登録すると○
https://twitter.com/thiropGames/status/1639510490404769793



エディタ上での遠景モック表示

イベントの配置や編集時にオブジェクト形式で配置したものが表示されないのはやはり不便です。

前回のオブジェクトモック表示機能では「別タイルセット画像」や「オブジェクトグループ」のモック表示ができないため、今回は更に大胆に遠景モック表示機能を実装しました。


事前設定

機能を使うのに事前に必要な設定が2つあります。

まずはデータベースのタイルセットにモック表示用の空のタイルセットIDを確保しておきます。

次に、「TRP_CORE.js」のプラグイン設定を開き、「モック保存用タイルセットID」に先程確保したタイルセットのIDを設定すればOK。

モック保存

https://twitter.com/thiropGames/status/1639495752400662529

自動装飾エディタで編集後に、「Ctrl+Sキー」での通常保存の代わりに「Ctrl+Shift+Sキー」でモック表示形式でマップデータを保存できます。


保存時は内部に↓のような処理を行っています。

  • 遠景画像を「img/parallaxes/_trpMapMock/MapマップID.png」として保存
  • マップの遠景画像名を↑に変更
  • マップのタイルセットIDをモック用のIDに変更

元のタイルセットIDと遠景画像名はメモ欄のメタデータ形式で保持されています。
うかつに変えたり消去しないように注意!

また、タイルが透明で見えないのでうっかり塗りつぶさないようにも注意を!
リージョンや影は通常通り編集してOKできます。


デプロイメント時の注意

保存された遠景画像は「デプロイメント時の未使用ファイル除外」では除外されません

無駄にゲーム容量が大きくなってしまうのでデプロイメント後に「img/parallaxes/_trpMapMock」のフォルダごと削除するのが良いでしょう。





今後の方針

今回のアップデートで実装したかった大きな機能拡張は無事に追加できました。

たくさんのご支援を頂いたおかげで、かなり細かい部分まで機能・操作性を詰められたと思います!改めて感謝いたします!(自創作でも活用するのが楽しみ)


今後の方針ですが、今月中に各種タイルセット用の自動装飾プラグインテンプレートを用意しつつ機能の調整を行い、来月頭に簡易マニュアルを整備してBooth販売を行う予定です。

それをもってクラファン作業はいったんクローズとし、その後は自創作でプラグインを活用しつつバグの修正や細かな使用感の調整など行っていくつもりです。

ゴールが見えてきましたが、最後までどうぞよろしくおねがいします!🙇‍♂️

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

マップ自動装飾プラグインver1.31更新内容

「マップ自動装飾プラグイン」のver1.31へのアップデートを行いました。

大きな機能の追加はありませんが、内容が多岐にわたるため変更点をまとめて解説していきます。

更新プラグイン

  • TRP_CORE.js(更新忘れずに!)
  • TRP_MapDecorator.js
  • TRP_MapObject.js

変更点が多く、予期せぬエラーが発生する可能性があるため念の為プロジェクトのバックアップをとった上でのアップデートをお願いいたします。


エディタ基本機能拡張

簡易アンドゥ/リドゥ機能

https://twitter.com/thiropGames/status/1635241629044047872

「Ctrl+Z」で1つ前の状態に戻すアンドゥ、「Ctrl+Shift+Z」でアンドゥを取り消すリドゥができるようになりました。

あくまで簡易機能ということで大雑把な動作になってます…。

多少おかしな挙動になる場合もあるかもしれないのでご了承ください。
(エラーが発生したらご連絡くださいませ)

手動編集後にロックせずに再抽選してしまったときなど、焦らずアンドゥしましょう!


操作何回分までアンドゥ・リドゥできるかはマップの大きさとプラグイン設定「アンドゥ保持サイズ」によります。必要に応じて設定の値を変更してご利用ください。


複数回分のバックアップ保存

マップのバックアップが複数回分保存できるようになりました。

「TRP_CORE.js」のプラグイン設定よりバックアップ数の変更も可能です。

また、バックアップタイミングも変更されました

ver1.30までは「毎セーブごと」にバックアップの作成を行っていました。

ver1.31からは「テストプレイを開始して最初に保存するタイミング」でバックアップが行われるようになりますのでご留意ください。

マウスカーソル変更

基本の4モードごとに対応したマウスカーソルに変更され、現在のモードがわかりやすくなりました。
https://twitter.com/thiropGames/status/1636318840174026754

…専用の画像などはなくデフォのアイコンを使用しており、各モードごとにアイコンIDを設定します。

デフォルトではMZ向けに設定してるので、MVの方は適当にアイコンIDを選んで設定してみてください。(設定を空にするとカーソルは変更されません)

(上級者向けですが、スクリプトでゲーム中のマウスカーソルを変更できます。「TRP_CORE.changeMouseCursor('url("img/system/cursor.png"),auto')」で「img/system/cursor.png」の画像に変わります。128x128pxまで対応してるみたいです)

パラメータエディタ

主にテンプレートマップの「ベースタイル」イベントで設定していた

「床装飾抽選」「オブジェ配置抽選」に関するパラメータを自動装飾エディタ上でリアルタイムに編集可能になりました。

https://twitter.com/thiropGames/status/1637056789433954304

各モードで「Spaceキー」を押すことでパラメータ設定モードに入ります。

左側に操作説明や、パラメータの簡単な説明も表示されるのでいろいろ値をいじりながら設定を覚えてみてください!


少しだけ解説すると……

  • 「floorPaintRate」「waterLocateRate」は床を装飾や水場で塗りつぶす割合。
  • 「rateRange」はその割合の振れ幅。例えばfloorPaintRateが0.5なら床の50%が装飾タイルでペイントされますが、rateRangeが0.3であれば抽選ごとに50%*(100±30%)のランダムな割合が適用されます)
  • 「〜chunkMin」や「〜chunkMax」**は1かたまりの大きさの振れ幅。
    小さい値だと細切れな地形

大きい値だと長く大きくつながった地形ができやすくなります。

ベースタイル切り替え

「ベース床設定イベント」で各種パラメータ設定を行っているように、このパラメータはベース床の種類ごとに設定を持っています。

複数のベース床を設定している場合はパラメータエディタで「Tabキー」で切り替えることが可能です。

パラメータのコピー&ペースト

パラメータエディタがアクティブな状態で「Ctrl(MacはCmd)+Cキー」でパラメータのコピー、「Ctrl(MacはCmd)+Vキー」でパラメータのペーストが可能です。


また、コピーされたパラメータは「ベース床設定イベント」の設定(文章スクロールコマンド)にペーストして使用することもできます。

その場合は文章スクロールコマンドが2分割されている片方を削除し、もう片方にペーストすればOKです。

マウスドラッグでマップスクロール

「Alt(MacはOpt)+マウスドラッグ」で画面のスクロールができるようになりました。

「左手キーボード+右手マウス」のスタイルで基本的に操作できるようになったので快適なはず!

(※Altキーは今までCtrlキーの代用としても使えていましたが、スクロールに割り当てた関係で今後は代用できないので注意)



床装飾の抽選/手動ペイント

床装飾ロックの選択

https://twitter.com/thiropGames/status/1635978785911898114

今まで床装飾の種類をロックするには抽選した結果の組み合わせに対してのみ、ロックして現れるパターンを絞ることができました。

ver1.31からは床装飾抽選モードで「Ctrl+右クリック」より床装飾種類のパレットを呼び出すことができます。
(※今までのバリエーションロックはVキー、水場ロックはWキーに変更されているので注意)


ロックしたいタイル画像を選択して「右クリック」でパレットを閉じることでロックが反映されます。(クリックした部屋内でのみ有効)

抽選される装飾タイルの種類数は「部屋の大きさ」で決まります。

例えば、種類数が3の大きさの部屋に対して装飾タイルを2つロックした場合は、残りの1種はランダムで抽選されます。

逆に3つ以上でロックした場合は追加の抽選はされません。

もし、2つ以下のロックで追加抽選したくない場合は一番左側の「追加抽選X」をクリックしてONにしてください。

(※2つ目の「水場固定」をONにすると必ず水場が現れます。ただし、設定パラメータ「waterLocateMode」が-1(=自動)のときのみ)


複数のベースタイル設定時

基本のベースタイル以外にベースタイルをテンプレートに設定している場合

装飾パターンのロックはベースタイルの種類ごとに行われます。
**「Q/Wキー」でベースタイルごとの装飾タイルページを切り替えて、それぞれにロック設定が行えます。


手動ペイントモードのパレット機能

手動ペイントモードで「Ctrl+右クリック」より同じように床装飾パレットを呼び出してペイントするタイルを選ぶことができます。

オブジェクトパレットの呼び出しと違い、塗られている装飾タイルの上で一度「Ctrl+左クリック」を行い事前に「手動ペイントモード」に入っている必要があるので注意。




拡張:マップオブジェクトプラグイン関連

※本トピックの機能を使うには「拡張:マップオブジェクトプラグイン」が別途必要です。

ランダムシフト機能

https://twitter.com/thiropGames/status/1636315078583808000

オブジェクトの配置抽選後に「Shift+左クリック」より配置したオブジェクトをランダムに少しだけずらすことができます。


         

「Shift+左クリック」を押すごとにずれる位置が再抽選されます。
マップのグリッド感が多少薄れるので適宜活用してみてください。

ただし、全てタイル→オブジェクト形式に変換されるので注意!

(※具体的には、最大で通行に影響を及ぼさないタイルの1/4の距離<デフォルトで12px>だけランダムにシフトします)


オブジェクトのエディタモック表示

本アップデートで個人的に一番の神機能!

オブジェクト変換してグリッドフリーで配置したオブジェクトが…


エディタでモック表示されるようになりました!

条件を満たすオブジェクトであれば、マップ保存時に一番近いマスにタイルとして一時的に変換されて保存されます。

ただし、対象タイルのレイヤー上限(4タイルまで)を超えてしまうと変換されません……

とはいえ、オブジェクトがエディタ上で1つも表示されなかったのに比べるたら、地形の把握が大雑把にできるようになり実用的になったのではないでしょうか?


ゲームプレイ時には、変換した座標にタイルが残っていれば保存していたオブジェクトが表示されます。
(対応するタイルをエディタで消すとオブジェクトも表示されません)

変換されるオブジェクトの条件

タイルに変換されるオブジェクトは

  • タイル形式オブジェクト
  • 大オブジェクトの場合は画像上でつながっている矩形の場合
    (ただし、真ん中を挟むと左右につながっていても☓)

パレットのタイルセット画像で矩形選択したものならOK!


オブジェクトパレットの拡張

オブジェ配置モードで「Ctrl+右クリック」より呼び出せるオブジェクトパレットが拡張されました。

  • 1ページ目:テンプレートに登録したパレット用オブジェクト(従来)
  • 2ページ目:抽選に使われるすべてのオブジェクト
  • 3ページ目〜:タイルセット画像B~E
    (タイルセット画像ページではドラッグすることで範囲選択が可能)

「数字キー」で各ページに飛べる他、「B~Eキー」で対応するタイルセット画像のページに飛ぶこともできます。


UI/操作性の改善

https://twitter.com/thiropGames/status/1637101920182767618
https://twitter.com/thiropGames/status/1637367703978807297

かなり操作性や視認性がよくなったと思います。

ただ、オブジェクト操作はまだ怪しい部分があります……
実際に自分が使いながら原因を絞り込んで修正する予定なのでもう少々おまちください。



今後の作業&アップデート予定

  • SA○ANもといオブジェクトグループ機能の実装
  • DLC販売中のタイルセットを中心にテンプレートサンプルの作成
  • Booth販売に向けた解説記事の再編集や簡易マニュアルトップページ作成

などを中心に作業していきます。


また現在、3/1で各支援者様のリクエストポイントが「おまかせポイント」に変換され、これを消化すべく開発に取り組んでいます。

4月1周目あたりまでにおおかた消化する予定ですが、

  • 不測のバグ対応に50pt
  • 自創作でプラグイン活用中に思いついた改善案に50pt

ほど残させて頂く予定です。ご了承くださいませ。

(ポイントが余りそうなときは「各プラグインのパフォーマンス改善」や何か他のプラグインの提供で消化予定です)


それでは、次回は「なんちゃってSA○ANシステム」の紹介になる予定です!

まだ仕様を練っている段階ですが、面白い&遊べる機能になると思いますのでお楽しみに!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

[進捗]2月の活動報告

こんばんは!

2月はついぞ1度も進捗ツイートができませんでした😇
実際、ゲーム本編の進捗もゼロです!

作業はしてるのにおかしいですねぇ…。


2月の活動報告

先月から引き続いてAWSの通信周りをずっと実装していました。

AWSの通信のベースシステムは去年の時点ですでに完成していたつもりでしたが、考えがあまあまでした……。


上旬:同期処理の修正続き

  • ユーザーサイドの操作(例:ガチャの実行)
  • サーバーサイドの処理(コストの消費&結果の実行&送信)
  • ユーザーサイドの結果表示(ガチャ画面)

この1連の流れを確実に実行しなければなりません。


問題はサーバーサイドの処理までは実行され、通信エラーなどで結果を受信できなかった場合。


ガチャであれば最悪サーバー側できちんとアイテムの取得処理を行えたら問題ないでしょう。

しかし、スタミナを消費してコンテンツを開始するといった操作であれば、結果を受けてユーザー側でダンジョン突入処理を行わなければコストの払い損になります。


また、ガチャであっても通信エラーで結果が表示されずにもう1度ガチャを回してしまうと、意図せず複数回ガチャが実行されてしまいます。



ソシャゲなんて簡単に作れるだろ、と高をくくってましたが全くセオリーがわからない初心者にはなかなか厳しい…。


結局、眠れる勇者のRPGではこういった同期が必要な操作を汎用化し、

  • ユーザーから同期処理のリクエスト送信
  • サーバーでリクエストの処理
  • サーバーで結果の保存&送信
  • ユーザーが結果を受けて必要な処理を実行
  • ユーザーの処理が完了したことをサーバーに送信
  • サーバーで保存していたリクエスト結果を削除

といった処理の流れにしました。


同期処理リクエストの通信と、結果完了通知リクエストの2回通信を行うことで完全に同期させることができる……はずです。


サーバーに処理結果が残っている状態で他のリクエストが飛んできても新規の処理は行わず、未処理の結果を返答してユーザー側で確実に実行されるまで新規操作をロックします。



さて、データ通信処理自体は実装して終わりなのですが、例えばダンジョンに突入しようとして「ガチャ結果が残っている」と通知されれば現在表示中のUIがどんな状態であれ、ガチャ結果表示を開始する必要があります。


「どんなUI状態であれ、どんな結果も実行させなければならない」と考えると割と大変です。

大変でした🤸‍♂️


同期処理のリクエストを汎用化し、

  • 成功した場合に即時実行されるデータ処理
  • 正しい流れで実行された場合のUI処理
  • キャンセルされた場合のUI処理
  • シーンを問わず実行される結果の開始処理

これらが確実に定義される状態にして実装漏れを防ぐことにしました。

キャンセルされた場合にはUI側に「残っていた他の処理の開始処理の実行ハンドラー」も渡されて必要に応じて実行させます。



例えばコンテンツが終わって報酬を処理する同期処理であれば、他の処理結果が残っていたとしてもキャンセルするわけにはいきません。

そういった場合には受け取ったハンドラーは実行せずに結果の表示命令だけスタックして保存し、結果は処理したものとしてサーバー側に通知し、報酬受取処理のリトライを行います。


かなり複雑な流れになりますが、ここ1年でPromiseを使った非同期処理や即時関数の扱いに慣れたおかげでなんとかまとめられました。


中旬:時間・期間限定のフラグ

時間・期間限定のコンテンツ、ショップセール、ガチャフェスなどはソシャゲではごく当たり前ですよね。

UI遷移のたびに通信してサーバー側でその時間にあったコンテンツをレスポンスするというのが簡単そうですが、なるべく通信は減らしたいところ。


眠れる勇者のRPGでは、サーバーとユーザーで共通して利用するスケジュール変数を導入しました。

変数ごとに期間と値がセットで、一意に値が決まるようになっています。


ただし、スケジュールデータは随時更新されるためユーザー側が保持しているデータが古い可能性が出てきます。



下旬:サーバー管理変数のキャッシュ

スケジュールデータのようにサーバー側が本体データを管理し、ユーザー側にキャッシュさせて自主的に判断させる場合には、ユーザー側のデータがリアルタイムに更新されずにずれる場合があります。


これも想定されるエラーケースが多岐に渡るため、汎用化して処理しないと実装漏れが生じそうなので大工事を施しました。


同期処理時に関連するキャッシュ変数をリクエストに付記しておき、間違った値であった場合には処理失敗のレスポンスと一緒に正しい値を返します。

ユーザー側は「端末上のデータが古かったため処理がキャンセルされました」など表示し、UI表示のリフレッシュなどを行います。

動画で見るとなんてことなさそうな処理なんですけどね……



当初はここまで厳密にエラー対処するつもりは無かったのですが、結局ここらを雑にするとリリース後のユーザーサポートに苦労するだろうと丁寧に作りなおしました。

通信に失敗してガチャ結果をバックグラウンドで処理させても良いけど、「石だけ減ってガチャできなかった」という問い合わせ対応がどうしても増えてしまいますからね。

リリース後に本編制作に時間を割けなくなるのも問題ですし、完結させたあともサ終させずに残したいのです。できるだけ手間をかけずにサービスを残せる基盤を整えておこうという判断で、2月もじっくりAWSまわりの処理と向き合ってました。


来月はクラファン作業の続きを集中してやる予定ですが、4月にはゲーム本編の制作に戻ってゴリゴリと進めていく予定です!



ツクラーでインディー界隈にも興味があると、Unityと違いツクールのスキルを磨いても潰しが効かないというモヤモヤを抱いたりしてしまいますが、自分は結果としてAWSでサーバーレス構成まわりのスキルを磨けたのはこれはこれで有りかなと思ってます。(LambdaをJavascriptで書けるのも大きいです)

今回作った基盤システムを使い回さないのは勿体ないので、次作以降でまたソシャゲライクにしたり、ユーザー間協力要素やPvPを入れたり、ゲーム以外でもSNSっぽいアプリも作れそうだったりと自分の創作における武器になりそうです。


……それはそれとして、「HD-2D」なRPGも興味あるのでやっぱりUnityもいつか触ることになりそうですけどね。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

クラファン終了間際!プラグイン再販予定などの注意

こんにちは、新年の挨拶記事を書きたいなぁと思いつつすでに1月も終わりそうです。


11月より実施してますマップ自動装飾プラグインのクラウドファンディングもいよいよ今月末(~1/31)で終わりとなり、残り期間わずかとなりました!

今回は最後に「プラグインの今後の販売予定」と「関連プラグインの紹介記事・動画」をまとめておこうと思います!


プラグインの販売予定

各プランのプラグインのBoothなどでの販売予定は次の通りです!

  • 自動装飾プラグイン:販売予定あり(3000円→3200円予定)
  • マップオブジェクトプラグイン:販売予定あり(3000円まま。ただし、競合対応に使えるリクエストポイントなし)
  • 限定プラグインセット販売予定なし

自動装飾プラグインとマップオブジェクトプラグインは販売予定がありますが、
クラファンのプラン支援で購入された方が少しだけお得になってます。
(※プラグイン開発が落ち着いた4月ごろにBoothで販売予定)

限定プラグインセットについては販売予定はいまのところないため注意です!
(※販売して欲しいという要望の声がよほどない限り販売しない予定です)



限定プラグインセットについて

限定プラグインセットは、わざわざマニュアルを用意して販売しても採算が取れなそうな小粒なプラグインをクラファンのブースト用にまとめたものです!

ブースト用というのと、ピンポイント需要なプラグインであるため値段は高めです…

ただ、どのプラグインも大なり小なり他で代用できないオリジナルな機能を持っているプラグインに仕上がってると自負してます。


また、どのプラグインも外注をすればそれなりの値段になる機能量はありますので、どれか「このプラグインは絶対使いたい!」というものがあればおすすめします!

再販予定はありませんので、気になるプラグインがある方はぜひお見逃しのないように!

https://twitter.com/thiropGames/status/1619173419207266305

プラグインセットの中身(記事後半に詳しく紹介)

  • フォグテクスチャプラグイン
  • 進捗動画テンプレートプラグイン
  • 動画ピクチャプラグイン
  • マップフィルタープラグイン
  • 開発用即時セーブプラグイン
  • 漫符アニメプラグイン

今後の開発について

クラファンページがクローズしたあとも、支援者様からの「機能拡張リクエスト」に沿って関連プラグインの機能拡張の開発はしばらく続きます。

詳しくは↓の記事にまとめてます。



クラファン関連動画・記事のまとめ

クラウドファンディングページ

クラファンの目的や運営体制、各プランのプラグイン紹介などもまとめています!


自動装飾プラグインのチュートリアル

自動装飾プラグインの導入から基本的な使い方を紹介するスタートアップ記事です。


自動置換機能の解説

自動装飾プラグインの目玉機能の1つ「自動置換機能」の基本的な使い方を解説する記事です。

機械的に配置できるルールに則った作業を自動化するかなり強力な機能です!

置換機能の応用例として「トロッコの線路タイル」をオートタイルで設置する方法を紹介しています。


マップオブジェクトプラグインとの連携

「自動装飾プラグイン」と拡張用「マップオブジェクトプラグイン」を連携させ、タイル
やキャラ画像をドット単位で配置・拡大回転などの編集をする方法を紹介しています。


デモンストレーション動画

自動装飾プラグインを使い、40x40のFSM森タイルのマップをRTAっぽく作成する動画。
https://twitter.com/thiropGames/status/1603767656024358913

自動処理するためのテンプレートを用意する時間はかかりますが、
同じタイルセットを使ったマップを複数必要な場合には滅法つよいです!


また、少し話がそれますが、同じタイルセットのマップでも
フォグや色補正フィルタ、パーティクル演出などを変えると雰囲気がガラッと変わるよ!
という記事も書いてます。

雰囲気の違うマップを楽に作りたいときの参考にどうぞ!


限定プラグインセットのプラグイン紹介(再掲)

フォグテクスチャプラグイン

クラファン途中で追加されたプラグインです。

当初はマップにテクスチャ風に濃淡をつけてそれっぽく見せる
「フロアテクスチャプラグイン」として付属しました。

その後に紆余曲折がありマップに重ねるフォグ全般を扱う機能を追加し、
「フォグテクスチャプラグイン」として新生しています!

  • 複数のフォグ設定を切り替えながら編集画面で調整可能
  • スクロール付随速度を変えて視差スクロール
  • ゆっくり自動スクロールさせてもカクつかない表示モード

※以下、クラファンページの紹介内容の再掲です。

進捗動画テンプレートプラグイン

特に立ち絵を用意している作品でイチオシのプラグインです!

動画をピクチャとして表示することで、「字幕付き動画」を簡単に作るができます。

https://twitter.com/thiropGames/status/1583400542755508224

「スーパーゲ制デー」「プレミアムツクールデー」の進捗に、ぜひ手間加えて立ち絵キャラでの解説動画に仕上げてもらいたいです!
(※あまりメタ発言點せたくない場合は、マスコット的なサブキャラに!)

地味な進捗でも楽しく見れたり、キャラクターの雰囲気を覚えてもらうのにも良いと思います!



進捗動画は各種設定コマンドを使って画面レイアウトなど設定可能です。
(※基本は使い回すので、一度パラメータを調整してレイアウトを決めればOK)


また、ドラッグ&ドロップで使用する動画をインポートできたり、なるべく手間をかけずに進捗動画を作れるように気を配っています。(↓下側のツイート動画)
https://twitter.com/thiropGames/status/1583403601019670528


上側のツイートは、基盤プラグインとなっている「ピクチャ(に)動画(を表示させる)プラグイン」を紹介しています。

処理は重くなりますが、同時に複数のピクチャに動画を表示可能なので何かしらのイベント演出に使える……かもしれません!


マップフィルタープラグイン

主にマップに適用するフィルターをまとめて簡単に設定・管理できるようにしたプラグインです。

https://twitter.com/thiropGames/status/1585929875092697091

ツイート内で解説しているように、既存の神プラグインがあるのですが

  • フィルターごとにON/OFFしたい
  • パラメータをもうすこし分かりやすくしたい
  • 戦闘時のフィルターも個別にON/OFFしたい

といった自創作用の要望から自作したものをプラグイン化しました。

フィルターが分かれている分、負荷は重いかと思いますが、
用途が合えばご活用ください!


また、タイルセット画像自体に「色補正」を加えて書き出す機能も搭載してます。

  • フィルターは使わないけど手軽に画像のコントラスト調整など行いたい
  • がっつり色補正したいけどマップ上のキャラクターには反映させたくない

場合などに使える……かもしれません!


開発用即時セーブプラグイン

https://twitter.com/thiropGames/status/1583745032825077760

リツイート数、驚異の1!(※なおセルフRT)

…超絶地味プラグインです!


しかし、一度でも使ってみればわかるはず、

「マップ自動装飾プラグイン並みの効率化ツールです!」


長いイベントの後半部分を修正したいとき、
テストプレイでイベントの最初から再生するのはかなりのロスです。

このプラグインに含まれる

  • どこでも即時セーブ
  • どこからでも即時ロード
  • 「早送り停止コマンド」まで高速再生
  • (イベント中に)イベントページのリロード

の機能を活用すれば、確認したい場所にたどり着くまでの時間を限りなく0に近づけることが可能です!


少し慣れが必要ですが「どこでセーブするか」を意識できるようになれば、テスト効率が大幅に上がるはずです!

ご購入された方はぜひ一度おためしください!


漫符アニメプラグイン

こちらは立ち絵プラグイン「TRP_SkitMZ」の早期購入特典として付属していたプラグインの再録となります。

(※すっかり存在を忘れていたのですが、リクエストがあったため急きょ収録しました!)

漫符のようなシンプルなアニメーションを"慣れれば"簡単に作ることができます。

エディタの使い方にかな〜り癖があるのですが「モーション」ごとに「位置・拡大率・角度」を設定し、「フレーム数・イージング」で動きを決めるということが分かれば、本当に手軽にアニメーションが作れます!

プリセットの漫符アニメ画像&データもあるので、サンプルプロジェクトでぜひ触ってみてください!

編集を試して見る前に↓のチュートリアル動画を見ておくと吉です!

https://twitter.com/thiropGames/status/1586341981252304896

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

オーバーレイの動作負荷について[マップオブジェクト/フロアテクスチャプラグイン]

マップ自動装飾プラグインのクラウドファンディング(~1/31)のブースト用プランとして用意していた「マップオブジェクトプラグイン」「フロアテクスチャプラグイン」において、紹介記事でブレンドモード「オーバーレイ」を使用した演出例などを紹介してきました。


しかし、先日スマートフォンで動作チェックをしてみたところ、ブレンドモード「オーバーレイ」の動作がかなり重いことが分かり、細かく検証を行った上で対応策を実装しました。

上記プラグインをすでにご利用の方、これからご利用予定の方は記事内容のご一読をお願いいます。


ブレンドモード「オーバーレイ」の動作負荷

結論から述べると、個人的な検証結果ですが以下のような感じになります。

  • MVでPC向け:○
  • MVでスマホ向け:○(ただし、MVはスマホではWebGL使用不可)
  • MZでPC向け:△(中スペック以上。低スペックは非推奨)
  • MZでスマホ向け:非推奨

オーバーレイの描画が他のブレンドモードより重いのは変わりませんが、ツクールMVではスプライト数を押さえれば実用範囲と言えると思います。

ツクールMZではオーバーレイの描画を使うと低スペックPCやスマートフォンでの動作はFPSがガクッと落ちる原因になります。

各プラグインについて対応策を実装してますので次項以降を参考にしてみてください。


フロアテクスチャプラグイン → フォグテクスチャプラグイン

マップに濃淡を加えてリッチにみせたいフロアテクスチャプラグインですが、描画モードオーバーレイ以外ではテクスチャ用途には使いづらいためプラグインコンセプト自体が破綻しました…。

そのため、勝手ながらフォグ表示機能に重きを置いたフォグテクスチャプラグイン(TRP_FogTexture.js)として新生させていただきました。

オーバーレイの使用設定

オーバーレイを使用したテクスチャ用途のフォグについては設定で表示のON/OFFが切り替え可能です。スペックが十分な環境では表示させ、それ以外ではOFFにできるようになります。

この設定はプラグイン設定やゲームオプション、プラグインコマンドで変更可能です。

  • プラグイン設定で初期値の設定(スマホ向け/PC向けで別設定)
  • オプション画面への設定項目の登録
  • プラグインコマンド

詳しくはプラグイン設定のヘルプをご参照ください。


フォグプラグイン機能

フロアテクスチャプラグイン(TRP_FloorTexture.js)の各種機能に加えてフォグ表示に必要な機能を追加しました。

動画ではプリセットのテクスチャ画像を使ってますが、手持ちのフォグ画像を「trp_fogs」に入れて使用することも可能です。(fog10.pngといった連番のファイル名にリネームする必要があります)

フォグの自動スクロール


X・Y方向の自動スクロール速度を設定できます。
(数値は1秒あたりの移動ピクセル数です。)

また、タイリングスプライトの性質上ゆっくりとスクロールさせるとピクセル単位でカクカクと動いてみえます。

「trpTiling」の値を1にすると独自のタイリングスプライトを使用することでなめらかにスクロールが可能です。

画面スクロールへの付随率


画面スクロールへの付随率を設定できます。

  • 0で画面固定
  • 1:スクロール追随

例えば「1.2」とするとタイルより少しだけ早くスクロールし、近景のように視差をつけることができます。

編集画面で複数フォグの編集


複数のフォグを重ねて表示でき、編集画面でもフォグを切り替えながら設定可能です。
例えば手持ちの雲の影のフォグ画像を追加し、

  • 高スペック向けのオーバーレイテクスチャ
  • 雲の影画像
  • 霧フォグ

といった複数のフォグを手軽に設定できます。
(※設定でオーバーレイテクスチャを無効にすれば、雲の影と霧フォグだけ表示されます)


フロアテクスチャプラグインからの移行作業

TRP_FloorTexture.jsを使用している方は移行作業が必要です。
お手数ですが以下の手順のとおりよろしくお願いいたします。

プラグインの入れ替え

「TRP_FloorTexture.js」をプラグイン設定より除外し、新たに「TRP_FogTexture.js」を導入してください。

画像の入れ替え

「img/floor_textures」フォルダを削除し、あらたに「img/trp_fogs」フォルダを素材フォルダ(ExPlugins/materials/trp_fogs)よりコピぺしてください。

floor_texturesフォルダに自作素材を追加していた場合は、「floor_texture○○.png」から「fog○○.png」にリネームした上で「trp_fogs」フォルダに追加してください。




マップオブジェクトプラグイン

マップオブジェクトプラグインでは、マップ自動装飾プラグインの手動オブジェクト配置機能と組み合わせて「ボリュームライト(光束)画像」をブレンドモード:オーバーレイで設置する演出例を紹介しました。

これもMZではかなり重い描画処理となります。
複数の対応を実装してますので順に解説します。

  • 負荷の軽減(内部処理の変更)
  • オーバーレイ表示オプション設定
  • 加算描画での代替

負荷の軽減(内部処理の変更)

「MapObject.js」プラグインのver1.25よりツクールMZでは、

オーバーレイブレンドモードを使用するオブジェクトスプライトをレイヤー(Z値)ごとにコンテナにまとめてオーバーレイを適用する機能を追加しました。

これで、光束画像ごとにオーバーレイを適用するよりも低負荷となります。
(※MVでは仕様上この機能は使えませんが、配置しすぎなければ大丈夫かと思います)

ただし、これでもスマホ・低スペック向けでは処理が重いため以下の対応が推奨です。


オーバーレイ表示オプション設定

フォグテクスチャプラグインと同じく、オーバーレイ画像を無効にする設定を切り替え可能です。(詳しくはプラグイン設定を参照)

  • プラグイン設定で初期値の設定(スマホ向け/PC向けで別設定)
  • オプション画面への設定項目の登録
  • プラグインコマンド

加算描画での代替

オーバーレイ表示無効時に、非表示ではなく別の画像やブレンドモードで表示させる代替機能を用意しています。

プラグイン設定で以下を設定することで代替機能を使用できます。
(※表示を確かめるにはオプションやプラグインコマンドでオーバーレイ表示を一時的に無効にしてください)

  • 代替させるキャラクター画像名
  • 代替後のキャラクター画像名
  • 代替後のブレンドモード
  • 代替後のオパシティの変更割合(1.0で等倍)

光束画像の代替案

オーバーレイ表示の光束画像をそのまま加算表示で代替すると真っ白になります。

代替後のオパシティの変更割合を0.5(50%)にして明るさを調整した例↓

オーバーレイの透明感ある光とは雰囲気が変わりますが、温かい日差しのようなイメージで使えるかと思います……どうでしょうか?

輪郭をぼかして束感を調整した画像もプリセット素材に用意してみたので、お好みで代替設定で画像を切り替えてご利用ください。


各プラグインのオーバーレイの動作対応について、以上となります。

一度プラグイン設定などで調整を行えば表示・非表示に両対応できますので、お手数ですが動作想定スペックに合わせて設定をよろしくお願いいたします。




補足:なぜMZだとオーバーレイ描画が重いのか

WebGLやPIXI.jsやといった言葉の意味がわかる、少し上級者向けの解説です。
読み飛ばして問題ありません。


ブレンドモード「オーバーレイ」は他の加算や乗算といったブレンドモードとは違い、WebGLの標準機能では描画できず、フィルターなどと同じくシェーダを介してエミュレートすることで実現できます。

そのためオーバーレイでの描画は標準搭載のブレンドモードと比べて処理がどうしても重くなります。


また、オーバーレイでの描画は描画ライブラリpixi.js単体では扱えず、pixi-picture.jsというライブラリを導入することで描画できるようになります。

これはツクールMVではデフォルトで導入されていますが、ツクールMZには導入されていません。

これはツクールMVがPIXIのメジャーバージョンが4系だったのに対し、ツクールMZは少し新しいPIXIのメジャーバージョン5系を採用しており、pixi-picture.jsが5.0.0~5.3.11までは未対応だったからと思われます。

ツクールMZのコアスクリプトver1.6.0にてPIXIのバージョン5.3.12が採用され、pixi-picture.jsを手動で導入することで晴れてオーバーレイでの描画ができるようになったわけです。


ただし、MVで採用していたpixi-pictureのバージョンとは内部の描画処理が大きく変わっています。

旧バージョンではPictureRendererというカスタムレンダラーを使って描画していたのに対し、新バージョンではBlendFilterというフィルターを介してブレンドモードを適用する方式に変わりました。

その影響か(あるいはPIXI本体側のメジャーバージョンの変更の影響かは分かりませんが)、MZ(ver1.6.0以降)でpixi-picture.jsを導入しても以前(MV)よりパフォーマンスが出なくなっているようです。

(本当はpixi-picture.jsを改造して以前のバージョンのパフォーマンスが出るようにできれば良いのですが、いかんせん巨大なPIXI.jsの構造を理解できていないため自分では手が負えません…)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

1 2 3 4 5 6 7

月別アーカイブ

記事を検索