見出し画像

ツクールMVで初めてゲーム作った反省点ブログ

ノーコードゲーム開発記事関連というマガジンを作成しました。
何故このカテゴリでブログを書くのか?3つ書き出します。

1.単なるronron_duo_beraの備忘録
2.検索でヒットさせるため(同じ悩みを持つ仲間のため)
3.ノーコード開発者が増えたら、世界の誰かを救える作品をばら撒ける気がする

まず、ツクールMVでビジュアルノベルゲームを作ったきっかけを与えてくださった、ふりーむ!さまには多大なる感謝です。


Q&A式反省会(RPGツクールMVで制作「XXX好きなカノジョ」)


XXX好きなカノジョをRPGツクールMVで作ったので、noteにて反省会を始めます。QA式の方が読みやすいと思ったのでひたすら自問自答をしていきます。

・・・勝手に反省会するスタイルは同人誌の奥付時代からやってます。ronron_duo_beraという存在がイタすぎるという点だけご留意ください。

Q.セーブしたデータをロードしたら、なぜキャラクターの背景が死んでるんだい?

スチル:コイケ様

わ…わかりません。

が、有志の方々の投稿を調べるとjsonファイルを更新すると、MAP関連のデータが更新され、遠景などが影響を受けるそうです。

XXX好きなカノジョは場面転換をする際に、「遠景を変更」するイベントコマンドを多用していました。

ゲームを新しいデータに保存→ロード→バグが再現する

と言った具合です。コイケ様のスチルが美しいのでユルシテって感じですが、すごいバグですね…申し訳ありません。

現在は遠景ではなく、【ピクチャー】に変更しまして、ピクチャーのプライオリティを変える、トリアコンタンさんのプラグインを使わせていただき、セーブデータに問題ないような形で差し替わっていると思います。

記事内容は開発者向けではあるものの、コードが書けない人が書いているので、間違えていたら修正したいのでXへDMください。

Q.なぜゲームの古いデータが呼び出されるのだ?

A.mapのjsonファイルを更新していないせいか、自動実行+並列処理でセーブしたせいなのか、よくわかりませんが、古いデータが呼び出されます。ごめんなさい・・・。

Q.プラグインでdataファイルを制御するプラグインを使っているのに、それはおかしくないか?中身どうなってんの?

A.私にも理解できないのです。ごめんなさい。

考察すると、Mapのイベント内容はこんな感じになっていて。
これがダメなんだと思います。(たぶん)

自動実行用のスタートイベントを実行し、コモンイベントを3つ置いている。

並列処理でセーブした場合、セーブデータが古いコモンイベントのデータを保存していて、ロードされても変更されていない。といったバグが発生しているのです。

シナリオや仕様を全て、コモンイベントで全て作っているのでコモンイベントはなくMAPイベントで作成し、フラグを管理していたら大丈夫なのかもしれませんし、それでもだめかもしれません。

しかし、自動実行+並列処理というのはバグを生み出しやすい仕様らしく、ツクールフォーラムでも推奨されるような文章は1つもありませんでした。

恐らく完璧なゲームを作って、今後一切アップデートするつもりは無い!という作品ならば、OK。といった感じですかね・・・。わからん。

このイベントの内容を細かく解説すると、

  • 「OP」、「はじまり」、「エンドロール」の処理を分けた

という点ですが、OPやエンドロールも後で追加する部分が増えたらめんどうだなと思って分けたのです。

コモンイベントの中身はコモンイベントを詰めており、
コモンイベントマトリョーシカになっています。

「はじまり」というコモンイベントはシナリオが全て入っています。マトリョーシカにしなければ処理が走りません。

以下の2枚目の画像に●、■、◆など、文字頭のコモンイベントは全てシナリオ関係のコモンイベントです。
ネタバレになるのですべて文字はボカシています。

コモンイベントの中身

次に2枚目の画像に表示されてるコマンドは、ロード、セーブ、ログボタンを表示させるためのイベントです。バージョン1.1.0で新しく追加された、「ログ」機能(※)と、何度もコモンイベントを呼び出す無駄な処理が入っていたので新しく調整した部分です。

注釈の通り、メッセージウィンドウがアクティブになった場合は1度だけ呼び出されます。

メッセージウィンドウがアクティブかどうか?といった部分は、別の並列処理で監視しています。

※DarkPlasmaさんのテキストログを保持・表示するプラグイン
https://github.com/elleonard/DarkPlasma-MV-Plugins/blob/release/DarkPlasma_TextLog.js

ログ機能ではこちらを使わせていただいております。
お忙しい中、プラグインに関する質問にご対応くださってありがとうございました。

┗Q.そもそもコモンイベントではなくMAPで管理すれば?

A.めんどくさいです。いやです(きっぱり)。

1枚目の処理がダメ!という点であれば、仰るとおり、ツクールのMAP機能を使ってSceneとして管理する、みたいな処理を挟まないといけないのかも知れません。

何を言っているのか自分でも理解ができてないのですが、
Sceneを擬似的にMAPで作ってしまい、シナリオやチュートリアルなども全てMAPのイベントとして作成する、といったものです。

MAP1→MAP2と【マップを移動】イベントで画面を切り替えるように作ると、古いデータが新しいデータへと更新が掛かる可能性があるためです。

ただ、MAPをいくつか作成し、そのいくつかのMAPに対し、どこにイベントをやったのかキチンと整理した上でイベントを流し込む。・・・みたいな事ができる人向けだと思っています。

MZではUI上でイベントがどこに配置されているのか目視しやすいのですがMVはMAP上のイベントを見なければなりません。

なのでマス目で考えるならマップ名:A1、A2など。

エクセルのセルのようにきちんと記録しなければ、開発者もわからなくなると思います。

私は上記の仕様で開発したことがありませんから、
スイッチなどでイベントを管理し自動実行+並列処理でセーブの書き込み・ロードが自由にできる仕様で上手くいくかどうかはわかりません。

MAPにスイッチや変数でページを切り替えていくような処理になるのでコモンイベントだけで作るよりも、先程書いた通り手順書をきちんと作らないとバグった時がやばそうです。

Q.AIを使ってRPGツクールMVでゲーム開発したのか?

A.バージョン1.0.2まではノーエーアイです。

しかし、バージョン1.1.0では一部、AIを使っています。
プラグイン作成&画像生成1枚です。
画像は横画面の解像度で遊ぶと背景に表示されるやつです。
↓画像はこれ↓

AIに高精密な絵を作ってもらうと雰囲気が壊れるので雰囲気重視で作成
■使用AI画像生成学習モデル制作者  Freek22

↓プラグインはこれ↓

OutlineThicknessPlugin.js

■プラグインの説明

  • セーブ・ロード画面の文字の縁の設定

  • ゲーム画面全体の文字の縁の設定

この2つをプラグインパラメータから設定します。
XXX好きなカノジョ用に作ったので使用用途が限られます。
欲しい方はご自由にダウンロードしてお使いください。
R18作品でもOKです。

ライセンスは決めておりませんが、トラブル防止用にこの記事のURLをライセンス表記する際に記載すると良いかも知れません。出処不明なものほど使っていて怖いものはありませんからね。

そして、改変はご自由にしてくださってかまいません。ですが、リクエストは一切受け付けません。

中の人はノーコードでゲーム開発したい!という欲求だけで作っているので、基本的にコードは書けないです。そんなこんな、ronron_duo_beraがAIに指示出しして作ってもらったものですので、ご了承ください。

使用:OpenAI
↓DL↓
OutlineThicknessPlugin.js
カーソルを当てて右クリック、【名前をつけてリンク先を保存】で保存してください。

Q.RPGツクールMVでビジュアルノベルを作るにあたって、ノーコード開発は可能か?

A.ノープラグインかつバニラの状態で作るシステムなら可能です。

例)

  • 自動実行中にセーブ・ロード・ログ機能なし

  • 立ち絵を画像をすべてイベントコマンド、ピクチャーで呼び出しする

  •  RPGツクールMV特有のバグを消すプラグインをいれない

正直言って、並列処理+自動実行で進んでいく「XXX好きなカノジョ」レベルの短編でも、プラグイン、スクリプト素材を含め、コードをお借りして作る形になります。なのでノーコードでゲーム開発したい!という願望ならば、それ相応調べながら作らないといけません。

プラグインや画像、音楽素材提供者様には頭が上がりません。本当にありがとうございます。

  • RPGツクールMV特有のバグ

上記については国内だけでなく英語のフォーラムでも語られていますので、使用しているコアスクリプトのバージョン毎に調べてみると良いかもです。

Q.なぜRPGツクールMVでビジュアルノベルゲームを開発したの?

A.ビジュアルノベルゲームをRPGツクールMVで作ろう!と思ったのは、単純にMAP機能を使ったイベントシーンのデバッグが楽だなぁと思ったからです。あとは豊富な素材を使ってMZ以上に凝ったものを作りたかったのです。

過去にティラノビルダーを使って3日間開発したことがありますが、画面の先入観から開発を途中でやめてしまいました。あとよくわからなかったです。(ティラノビルダー愛用者さんごめんなさい)

確か、2014年くらいですかね。

…ティラノビルダーのデバッグは簡単と言われていますが、デバッグという概念すら理解していなかった当時は超めんどくさかったです。絵を描くことが楽しかった時代なのもあって、ゲーム用の企画やシナリオを組むのが楽しいということはなかったのですよ。そんな感じで挫折したという感じです。

その点、2021年から個人の同人レベルのゲーム制作を本格的に始め、ツクールMZに魅了されました。ツクールでのゲーム制作を理解していくと、とにかくデバッグ機能が優秀ですからツクールの方が簡単そうだ。と思ったのですよね。

ティラノビルダーをディスってしまってるように聞こえますが、実際はティラノビルダーを使って本気で調べながら開発したことがあるわけではなく、ゲームも未完成のままプロジェクトを削除してしまいました。

なのでいつか購入した立ち絵素材やAI素材などを使ってティラノビルダーで作れるようになりたいなぁと思っています。

最後まで開発できたのは、

  • ツクールというツールがツクラーの方々に愛されている

  • コードのテストも踏まえ、部分的なデバッグがしやすい

  • フォーラムも見やすくまとまっている

  • 開発環境も要らない

上記が大きいかも知れません。情報ソースを提供してくださっている方々やコミュニティでお世話になっていたりします。

最後に

ノンフィールドのビジュアルノベルゲームをRPGツクールMVで作りたいと思っている方が、この手記がお役に立てれば幸いです。


冒頭画像(アイキャッチ及びOGP)
AyoniMix V6 SeaArt 2.1

プロンプト

a girl with a melancholic expression,detailed eyes,lips,and face,1girls,illustration,highest quality,ultra-detailed,photorealistic,stark lighting,blurred background,dark and somber color tones,lonely atmosphere,emotional,soft brush strokes,vintage style,dreamlike ambiance,intense emotions,broken heart,cold and eerie feeling,subtle shadows,haunting beauty,disheveled hair,reflective eyes

NP(SeaArt2.1デフォルト)

verybadimagenegative_v1.3, ng_deepnegative_v1_75t, (ugly face:0.8),cross-eyed,sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy, DeepNegative, facing away, tilted head, {Multiple people}, lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worstquality, low quality, normal quality, jpegartifacts, signature, watermark, username, blurry, bad feet, cropped, poorly drawn hands, poorly drawn face, mutation, deformed, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, extra fingers, fewer digits, extra limbs, extra arms,extra legs, malformed limbs, fused fingers, too many fingers, long neck, cross-eyed,mutated hands, polar lowres, bad body, bad proportions, gross proportions, text, error, missing fingers, missing arms, missing legs, extra digit, extra arms, extra leg, extra foot, ((repeating hair))


この記事が気に入ったらサポートをしてみませんか?