新規記事の投稿を行うことで、非表示にすることが可能です。
2018年10月13日
デフォルト機能でエンカウント率を調整する方法
デフォルト機能でエンカウント率を調整する方法
RPGツクールMVのデフォルト機能でエンカウント率を調整する方法です。
エディタで設定できる「敵出現歩数」では1歩でエンカウントする可能性があります。
例.敵出現歩数10の場合、1~10歩の間でエンカウントが発生する
このあたりの前提知識とプラグインを使った解決方法は、次の記事にまとめてあります。
ほぼこちらの方が解決に繋がりますので、ご覧ください。
ツクールMV エンカウント率を調整
https://fanblogs.jp/tabirpglab/archive/343/0
この記事では次の2点にフォーカスした方法を記載します。
・デフォルト機能を使った調整
・レベル、変数などを活用したゲーム内で微調整する仕組み
イベント実装例
@MAP切り替え時、ロード時に読み込むイベントを作成
トリガー:自動実行
実行内容:
現在の歩数を変数A、エンカウントさせない歩数を変数A+10として変数Bに格納
◆注釈:マップ切り替え時/セーブロード時に実行される処理
◆注釈:現在のレベルを変数118に格納
◆変数の操作:#0118 現在のレベル = XXXのレベル
◆注釈:現在の歩数を変数119に格納
◆変数の操作:#0119 現在歩数 = 歩数
◆注釈:◆エンカウント禁止歩数の設定
: :現在の歩数+10歩を変数120に格納
◆変数の操作:#0120 エンカウント保証歩数 = 現在歩数
◆変数の操作:#0120 エンカウント保証歩数 += 10
◆注釈:エンカウント保証処理開始
◆エンカウント禁止の変更:禁止
◆スイッチの操作:#0349 エンカウント保証切れ監視 = ON
◆注釈:スイッチ348をONにしてこの処理を終わらせる
: :(空のイベントページ2に移行)
◆スイッチの操作:#0348 MAP切り替え初期処理 = ON
A@の処理後、ストッパーにする空イベントを2ページ目に作成
B@の内容をもとに、レベルごとにエンカウント保証歩数を微調整した別ページを作成
例.
レベル0未満の場合、エンカウント保証は10歩
レベル5の場合、エンカウント保証は15歩のように
これはレベルを参照したゲームデザインの一例。
エンカウント率ではなく、経験値曲線で解決する方法もあります。
そもそも低レベルでエンカウントを増やすのが良いとは限りませんので、作者さん各々で判断をなさってください。
C並列処理でエンカウント保証の歩数を満たしたら、エンカウント禁止を解除
◆ループ
◆変数の操作:#0119 現在歩数 = 歩数
◆条件分岐:現在歩数 = エンカウント保証歩数
◆エンカウント禁止の変更:許可
◆スイッチの操作:#0349 エンカウント保証切れ監視 = OFF
◆ループの中断
◆
:分岐終了
◆ウェイト:1フレーム
◆
:以上繰り返し
Dバトルイベントでバトル開始時にBを実行するスイッチをON
ポイント
Dの設定についてはこちらのプラグインを利用することでバトルイベントを共通化できます。
YEP.15 – Base Troop Events
作者:Yanfly様
http://yanfly.moe/2015/10/18/yep-15-base-troop-events/
@ABCの処理はコモンイベントでまるめておく。
ステージ単位でテンプレートイベントを使いまわすと効率的です。
テンプレートプラグイン
作者:トリアコンタン様
https://triacontane.blogspot.com/2016/06/blog-post_25.html
私の参考コードではフェーズスキルの仕込みの記述もあるため、適宜読み替えてください。
また始めて間もない方はこの方法よりも、各作者さんが公開してくださっているプラグインを利用した方が簡単でオススメです。
[エンカウント率制御プラグイン]
EncounterControl.js
・イベントを使って、ゲーム内でエンカウントを制御できるようにする
・トヘロスや黄金の爪のようなことができる
制作者:うたかたの夢跡様
http://utakata-no-yume.net/gallery/plugin/tkmv/encounter_control/
Minimum_encount.js
ランダムエンカウント最低歩数の初期値を設定
制作者:ゆわか様
http://yuwakas.blog.shinobi.jp/Page/4/
エンカウントはRPG体験に直結する要素なので、快適なさじ加減を掘り下げてみると良いでしょう。
そもそもバトルが苦痛なのは本末転倒。
作品ごとにバトルの意味ってあると思います。
数字のやりとりが面白いとか、登場人物の成長の一端とか。
それらとリンクして、はじめて調整と呼べるのかなと、私は考えています。
以上、作品作りの参考になりましたら幸いです。
◆スペシャルサンクス:
terunonさん(ループを使った監視アイディア)
アブセンテッドエイジ
https://game.nicovideo.jp/atsumaru/games/gm6506
ゆわかさん(エンカウント歩数保証の考え方)
時にはこんな冒険譚
https://game.nicovideo.jp/atsumaru/games/gm8201
2018年10月06日
ブラッシュアップに意識したポイント
◆ブラッシュアップに意識したポイント
2018/10/6現在、進めている作品のブラッシュアップで意識したポイントです。
Googleドキュメントに箇条書きにしていたものを整理しました。
・1ウィンドウ2行、50文字以内
・「」の排除
※オクトパストラベラーは「。」も排除していた
・文章は「近くから見る=単語の繋がり」と「遠くから見る=会話の流れ、事実関係」の両方で確認する
・自軍と敵軍で同じ口癖(相槌、口上)を共有しない※背景があるならば別
・以下をポイントに推敲する
-比喩表現を避ける(まるで〜のようだ系)
-不要な会話のキャッチボールを削除する(質問or挑発→回答or挑発返し系。感情を操作する必要がないならば、誰かが意志や事実を述べるだけで良い)
・パターンでウェイトは作品内で規格を揃える(崩すときは演出の意志をもって行う)
例.年単位の回想シーン=セピアorモノクロ+120ウェイト、直近の回想シーン=90ウェイト
・音(BGM、BGS、SE)と加工(音量、位相、ピッチ)をシーンごとに最適化する
例.
BGM:静→動
SE:バトル突入前
タイトルBGMを重要シーンと同じにして感情を盛り上げる
(ペルソナ4のタイトルBGMはエンディングの間奏フレーズと共通)
・演出以外で無音状況を作らない
・音は色、テキストより感情表現に適している
・急に音を鳴らす:威圧、驚き、決意
・急に音を停止:恐怖、不安
・音のフェードイン:場面転換、時間の流れ
・音のフェードアウト:時間停止、
・音のクロスフェード:場面転換
・画面が停止して文章だけが流れる状況を作らない
背景で人、静物が動くといっ
・物語の合間に息継ぎを作る
ポジティブorネガティブな感情を呼び起こし、ストーリーの句読点を作る。
どちらでもない状況は作らない。
・場所が同じ場合は、天候変化、昼夜表現の変化、地形変化(ダメージ有無)をつけて、対比した感情を割り当てる
・主要人物を一通り登場させる(映画でも使われる手法)
・基本操作を行う(RPGならバトルを発生させる)
・面白さが体験することで得られる作品なら、導入部でプレイさせる
・キャッチコピー、あらすじを読み返す(作品に投影されているか確認する)
・スクリーンショットを厳選する
※ブラッシュ、デバッグをしながら、シーンを探すと効率的
・面白さが遅効性ならば、プロモーション、スクリーンショット、あらすじで強調する
・作品のイメージカラーを立て、作品外と作品内で統一させる(例.ペルソナ3=青、4=黄、5=赤)
・1ステージ内に没頭と達成感が得られるように構築する
・Tipsではヒントを提示する。答えを提示しない
・主人公だけの特徴を作るor主人公以外の共通点を作る
・善悪に関わらずではなく特徴を大きくする
・立場(敵味方、組織)の記号として描かない
系統的に学びたい方はこちらがおすすめ。
どっしりと腰を落ち着けて制作する方向けで、学問に向かうような姿勢や読解力が求められます。
2018/10/6現在、進めている作品のブラッシュアップで意識したポイントです。
Googleドキュメントに箇条書きにしていたものを整理しました。
テキスト
・1ウィンドウ2行、50文字以内
・「」の排除
※オクトパストラベラーは「。」も排除していた
・文章は「近くから見る=単語の繋がり」と「遠くから見る=会話の流れ、事実関係」の両方で確認する
・自軍と敵軍で同じ口癖(相槌、口上)を共有しない※背景があるならば別
・以下をポイントに推敲する
-比喩表現を避ける(まるで〜のようだ系)
-不要な会話のキャッチボールを削除する(質問or挑発→回答or挑発返し系。感情を操作する必要がないならば、誰かが意志や事実を述べるだけで良い)
シーン描写
・パターンでウェイトは作品内で規格を揃える(崩すときは演出の意志をもって行う)
例.年単位の回想シーン=セピアorモノクロ+120ウェイト、直近の回想シーン=90ウェイト
・音(BGM、BGS、SE)と加工(音量、位相、ピッチ)をシーンごとに最適化する
例.
BGM:静→動
SE:バトル突入前
タイトルBGMを重要シーンと同じにして感情を盛り上げる
(ペルソナ4のタイトルBGMはエンディングの間奏フレーズと共通)
・演出以外で無音状況を作らない
・音は色、テキストより感情表現に適している
・急に音を鳴らす:威圧、驚き、決意
・急に音を停止:恐怖、不安
・音のフェードイン:場面転換、時間の流れ
・音のフェードアウト:時間停止、
・音のクロスフェード:場面転換
・画面が停止して文章だけが流れる状況を作らない
背景で人、静物が動くといっ
・物語の合間に息継ぎを作る
ポジティブorネガティブな感情を呼び起こし、ストーリーの句読点を作る。
どちらでもない状況は作らない。
・場所が同じ場合は、天候変化、昼夜表現の変化、地形変化(ダメージ有無)をつけて、対比した感情を割り当てる
導入部(開始5分)
・主要人物を一通り登場させる(映画でも使われる手法)
・基本操作を行う(RPGならバトルを発生させる)
・面白さが体験することで得られる作品なら、導入部でプレイさせる
プロモーション
・キャッチコピー、あらすじを読み返す(作品に投影されているか確認する)
・スクリーンショットを厳選する
※ブラッシュ、デバッグをしながら、シーンを探すと効率的
・面白さが遅効性ならば、プロモーション、スクリーンショット、あらすじで強調する
・作品のイメージカラーを立て、作品外と作品内で統一させる(例.ペルソナ3=青、4=黄、5=赤)
ゲーム性
・1ステージ内に没頭と達成感が得られるように構築する
・Tipsではヒントを提示する。答えを提示しない
キャラクター描写
・主人公だけの特徴を作るor主人公以外の共通点を作る
・善悪に関わらずではなく特徴を大きくする
・立場(敵味方、組織)の記号として描かない
系統的に学びたい方はこちらがおすすめ。
どっしりと腰を落ち着けて制作する方向けで、学問に向かうような姿勢や読解力が求められます。
2018年09月21日
ダンジョン半自動生成「SemiAutoDungeon」を使ったMAP制作方法
ダンジョン半自動生成「SemiAutoDungeon」を使ったMAP制作方法
マップ制作の上達、効率化として切り離せないツールがくらげや様制作のダンジョン半自動生成「SemiAutoDungeon」プラグイン。
検証を重ねて、応用した使い方を調べましたのでご紹介します。
概要
1.自分のプロジェクトのタイルセットデータベース、pngファイルをサンプルプロジェクトにコピー
2.サンプルプロジェクトでMapデータを作成
3.2の収納先を作るため、自分のプロジェクトに空Mapを作成
4.作成したMapを空Mapの名前にリネームして自分のプロジェクトにコピー
これだけで分かる方はさらっと読むだけで大丈夫です。
準備
1.RPGツクールMV エディタ バージョン1.5.2(1.6.1以上)
エディタ1.6.1では動作できないことを確認しました。
そこで自分の作品プロジェクト(以下、自プロジェクト)とSemiAutoDungeonサンプルプロジェクト(以下、サンプルプロジェクト)を分ける運用案を考えました。
2.ダンジョン半自動生成プラグインorサンプルプロジェクト
制作者:くらげや様
https://github.com/kurageya0307/SemiAutoDungeon
サンプルプロジェクトを改変する方法を記載しますので、上記URLからサンプルプロジェクト一式をダウンロードします。
3.バックアッププラグイン
制作者:トリアコンタン様
https://triacontane.blogspot.com/2018/04/rpgmv.html
目的以外のマップデータを誤って上書きしたときのために、自プロジェクトに導入して利用します。
運用
プラグインの使い方は前述のくらげや様の配布ページをご覧ください。
https://github.com/kurageya0307/SemiAutoDungeon
使う素材を決めるために「2.「素材マップ」「ダンジョンテンプレマップ」の作成」項を読んでおくと、素材探しの指針になります。
ここをいかに丁寧に作れるかがポイントです。
・「床」「壁」「天井」
・通行可能でオートタイルで塗りつぶしするタイプの床
・通行可能で床に置くタイプのオブジェクト
・通行不可能で床に置くタイプの1x1サイズのオブジェクト
・通行不可能で床に置くタイプの1x2サイズのオブジェクト
・1x1サイズの壁の飾り
・1x2サイズの壁の飾り
サンプルプロジェクトのカスタマイズ
以下のコピー作業を行う
・自プロジェクトのデータベース-タイルセットをサンプルプロジェクトにコピー
・自プロジェクトの\img\tilesetsフォルダをサンプルプロジェクトにコピー
Mapの生成と移行作業
1.サンプルプロジェクトでプラグインコマンド「KURAGE_SemiAutoDungeon」を右クリック→「テスト」で実行
2.生成されたMap「_MapXXX.json」をデスクトップなど別の場所にコピーする
例.「_Map010.json」
3.自プロジェクトで新規マップを作成する
・新規→OKを押下しただけの空マップで良い
・上書き保存すると作成したマップが「Map<番号>.json」の名前で生成されるので<番号>を控える
例.「Map096.json」
★上書き保存したタイミングでMap<番号>.jsonが生成されるので忘れないこと
★操作に不安がある場合、冒頭で紹介したトリアコンタンさんのバックアッププラグインを導入してテストプレイ実行→backupフォルダが生成されていることを確認しておくと良いです
4.2のファイル名を3のファイル名と同じにする
例.「_Map010.json」→「Map096.json」
5.自プロジェクトに4のファイルを上書きする
★ここで誤ったファイルを上書きしないよう注意
6.自プロジェクトをエディタで開きなおし、Mapが反映されていることを確認する
トラブルシューティング
・Mapが生成されない
*素材Mapの配下にテンプレートマップを配置していない
素材Map
Lテンプレートマップ
*素材MapがY座標6まで設定していない(7〜8は省略可能)
*プラグインパラメーターでMapIDを指定していない
*上書き保存を実行していない
*「__SwapMap.bat」がサンプルプロジェクトのdataフォルダに存在するか確認する
*エディタ1.6.1では失敗するので1.5.2で試す
*サンプルプロジェクト内でMap<番号>を手動編集した場合、MapInfos.jsonの整合性が崩れた可能性がある(生成された「_Map<番号>.json」自体はMapInfos.jsonに認識されないので直接編集でも問題ない)
心当たりがある場合は同じファイル名を再保存すればよい
・コピー後のMapが表示されない
*【Mapの生成と移行作業】の5の後に自プロジェクトを開きなおす
・Mapが崩れる
テンプレートは以下のルールで作成する必要があります
*通路の幅は3マス以上
*通路と通路の間の空間は6マス以上
*マップの最外周と通路の間のマージンは3マス以上(出入り口を除く)
そのほか改変制限、乱数の調整、段々畑、左右対称などのオプションが設定できるので、ご確認ください。
https://github.com/kurageya0307/SemiAutoDungeon
研究したら、このレベルまで作成できるようになりました。
素材の設定ミスはご愛敬。
Special Thanks:くらげや様
2018年09月20日
知っておくと便利な時短テクニック
知っておくと便利な時短テクニック
人は45%が習慣でできていると言われています。
毎日の習慣ならば「節約できる時間」と「準備して元がとれる時間」を基準に考えると合理的。
10年間毎日、5秒の節約になるのならば、5時間かけて部屋の配置を変える価値があります。
この考えは忘れ物を防止するために玄関に必要なものを集めておくなど、日常生活にも応用ができます。
試して効果があったもの
ここでは制作作業の観点で、時短効果があるものを並べます。
■キーボードのショートカットキー
・スペースキー:イベントエディタ内でカーソルを当てているイベントコマンドを開く
・Tabキー:カーソル移動
・Ctrl+Enterキー:OK操作
・Escキー:キャンセル操作
■Cliborを活用したコピー&ペースト
Clibor
https://freesoft-100.com/review/clibor.php
Ctrl2回押しで呼び出してのクリップボード(コピー履歴)を複数管理するソフト
■辞書登録機能
使用頻度の高い文字は登録
例.
・・・ ……
うえ ↑
みぎ →
s 【
ss 】
よく使うプラグインコマンドは登録しておくとよさそうですね。
次のサイト様も参考になりました。
【保存版】単語登録はここまで使い倒せる! マニアのやってる17種類の実用アイデア集
https://yossense.com/words_recommendation/
■データベース操作
・5秒以上探すのに手間取るときはCtrl+Fで検索
・Ctrl+Fでジャンプするために接頭辞に記号(★など)を入れる
・コモンイベントは41番、81番のように40の倍数+1単位で区切る
オブジェクト展開時に頭出しの位置になる
・スイッチ名、変数名、コモンイベントの命名は使用場面、機能内容と結び付ける
例.C1:罠1ON(スイッチ:Chapter1で罠1番が有効化した状態)
例.C2:買う=1/断る=2(変数:Chapter2で1だと「買う」判定、2だと「断る」判定
・一時利用専用のスイッチ/変数を設ける
使用後、値を保持する必要のないスイッチ/変数は「一時利用(使用後OFF)」「一時利用(使用後0)で管理
・オプション
*ダークテーマにするとイベントビューアーが色分けされてわかりやすい
*使用しない機能の表示OFF
*オブジェクトの選択は展開型にすることで倍数40単位のページ管理ができる
*透明色に色を付けることで小物を探しやすくする
*一画面のサイズをマップグリッドに設定する
・データベースの上位はデバッグ用に開けておく
データベースを開いた直後は、ターゲットが0001となるため、スクロールの手間が省ける
■プラグイン運用
・デバッグルームにネーム表示プラグインで役割を可視化
・テンプレートプラグインのテンプレートマップと隣接させ、デバッグ→テンプレート化を効率化
・デバッグ高速化
タイトルスキップ、高速起動、強制戦闘勝利など
総合開発支援プラグイン
制作者:トリアコンタン様
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/DevToolsManage.js
・変数/スイッチ監視ウインドウ
テストプレイ中にShiftキー押下で別ウィンドウで変数/スイッチの挙動監視
制作者:奏ねこま様
http://makonet.sakura.ne.jp/rpg_tkool/contents/MPI_ValueMonitor.js
■プラグインの競合確認
・競合チェッカーの利用
FGS_TKMV(Windows用アプリケーション)
制作者:Fuku様
http://www5f.biglobe.ne.jp/~fuku-labo/library/etc/
メインサイト:http://www5f.biglobe.ne.jp/~fuku-labo/
プロジェクトファイル(Game.rpgprojectのある場所)にFGS_TKMV.exeとfgs_scriptを入れてFGS_TKMV.exeを実行。
※Fuku様制作のゲームエンジンへのフィードバックもご検討ください
■マップ制作
・ダンジョン半自動生成「SemiAutoDungeon」プラグイン
制作者:くらげや様
https://github.com/kurageya0307/SemiAutoDungeon
解説記事:
https://fanblogs.jp/tabirpglab/archive/1203/0
ほか、気付いたら書き足していきます。
以下、参考にさせて頂いたフォーラムのスレッドです。
言うほどでもない小技
https://goo.gl/9AGcf8
2018年09月17日
オクトパストラベラープラグイン
オクトパストラベラープラグイン
海外有志により、RPGツクールMV向けのオクトパストラベラー(に影響を受けた)プラグインが公開されました。
動画:
OctoPack Battler - by Fallen Angel Olivia
https://www.youtube.com/watch?v=QKmF9o-48Pw
サンプルプロジェクトおよびプラグインはこちら
https://fallenangelolivia.itch.io/
・複数のプラグインの組み合わせによりオクトパストラベラーライクなシステムを再現
・組みあがったサンプルプロジェクトは$19.99(公開したての2018/9/17現在では$15.99)
・プラグインは1.6.1以下用に制作されている
(1.6.1以降のコアスクリプトでの動作を保証するものではないと読める)
・Yanfly系との互換あり
詳しくは個々のプラグインのページを参照
原文:
WARNING!!!
This plugin is made for RPG Maker MV versions 1.6.1 and below. If you update RPG Maker MV past that and this plugin breaks, I am NOT responsible for it.
補足「itch.io」とは
海外の作品や素材を公開したり販売することができるサイトです。
国内のBoothのようなイメージです。
公開作品は無料のものもあれば、ユーザーがカンパウェアのように値段を決めるものもあります。
オクトパストラベラーサンプルプロジェクト
サンプルプロジェクトを検証してみました。
・容量161MB
・コアスクリプトバージョン1.6.1
・テストプレイは1.5.2でも動作することを確認
・データベースは次の通り
アクター:12
職業:12
スキル:200(途中空白あり、実質160ほど)
アイテム:42
武器:270(途中空白あり)
防具:450(途中空白あり)
敵キャラ:223(途中空白あり)
敵グループ:88(途中空白あり)
ステート:44(途中空白あり)
データベースは価格に至るまで細かく設定されており、一見の価値ありです。
・Olivia_AntiPlayerStress.js、Olivia_MapDisplayNameCore.jsは単体で動作
・以下8種のバトル系プラグインをOlivia_OctoBattleで制御している
(プラグインマネージャー上ではOffだけれどもOlivia_OctoBattleがONなので機能している)
Olivia_WeaknessDisplay.js
Olivia_BreakShieldSystem.js
Olivia_BoostPointSystem.js
Olivia_WeaponSwap.js
Olivia_SideBattleUI.js
Olivia_VictorySequenceUI.js
Olivia_BattleEffects.js
Olivia_OTBDisplay.js
・ブースト(オクトパストラベラーの独自システム。消費により連続行動が可能になる)はWキーに割り当てられている
そのまま使う分には良いですが、既存のプロジェクトに組み込もうとすると知識、検証、UI調整が必要です。
知的好奇心から試したものの、私はこのすべてを導入しようとは思いませんでした。
もしUIやシステムに特許がとられていたら、作品の公開に支障が出ます。
※そういった先々のことを考慮して、導入を検討するのが良いかと思います
堅苦しいことを言いましたが、こういった作品をリスペクトして近づけようとする試みは個人的に好きです。
CTBにバフ/デバフ、属性要素が絡み合う独自システムは、参考になる点が多いと思います。
この方の実況は聞きやすくて良かったです(まだ最初の方しか視聴できていませんが)。
気になる方はぜひ。
https://www.youtube.com/playlist?list=PLi5jgRErdxbz_64X8JZcq_cQs1BeMroD5