はてなキーワード: RPGツクールとは
RPGを簡単に作れるってのが売りなのにノートでゲームブックごっこする方がまだマシなレベルで手間かかるじゃん未だに?
ちょっと前に話題になった「TRPGのボス戦を全部AIGMとのレスバでやれるゲーム」みたいな「なんか良い感じに実装してくれる感じ」がないよね。
おかしくない?
30年だよ?
当時5歳の子が35歳だよ?
当時18歳の受験生が「ちくしょー全然ゲームが完成しないから受験勉強にとりかかれねー!」となってた時から、50歳で「ちくしょー上司と部下の尻拭いが終わらなくて全然家に帰れね—」となるまでの間、ず~~っと「はいお前らでポチポチフラグ管理してね」でやってたのマジで舐めてない?
進化したのグラだけじゃん?
終わってない?
「ゲームはSFC時代に完成してあとはグラしか変わってない」論者の奴でもこれ見せられたら「いや・・・流石にここまで歩みを止めるのは・・・俺が言ってるのはゲーム性の本質やボリュームのことであって何から何までSFCのままってのは・・・」ってなるよね?
なに?
ここで言う「プログラミング初級者」とはプログラミングの記述が上から下へ向かって順番に処理されること、条件分岐やループという概念があることを理解しており、RPGゲームが作れる「RPGツクール(現RPG Maker)」や学童向けプログラミング環境「Scratch」、「ナビつき! つくってわかる はじめてゲームプログラミング(ナビつく)」、ADVゲームが作れる「吉里吉里(もしくは吉里吉里2)」、過去にBASICやC、HSP、Javascriptあたりでプログラミングへ挑戦し挫折したなどなど、ある程度の「プログラマブルなロジック」構築の経験がある者を指します。
ある時、筆者はふと思いました。「生成AIはなんだかんだで膨大なテキスト情報を処理している事がキモだよなぁ」とありきたりなことを。
そして、同時にプログラミング初級者の弱点として「現在記述されているコードの管理においてテキストと実際の処理フローが脳内で一致しない」「プログラミング言語ごとに定められているルールや関数予約語の把握が困難」なのが問題とも考えました。
前述したプログラミング初級者の弱点の考え自体は車輪の再発明であり、「Scratch」や、より高度な「UML」が既に存在しており、特筆すべきことは何もありません。
しかし、「Scratch」や「UML」、なんなら「RPGツクール」や「吉里吉里」などに無い点として、現代では自然言語処理が大幅に向上した生成AIが実用の域にまで到達しつつあるのが従来とは異なる点でした。
つまり、自然言語を混ぜ込みやすいテキストベースの言語、かつ、処理を記述するとフローが視覚的に理解しやすい言語、可能であれば情報量が多くて一部の界隈で広く使われている言語があればプログラミング初級者も気軽にプログラミングできるのではないか?と発想しました。
コンピュータ(コンパイラやインタプリタなどソフトウェアを含む)が解することができる言語にはプログラミング言語以外にも様々あり、今回取り上げるのは「データ記述言語」と呼ばれるものです。
データ記述言語の中でもグラフ作成へ特化しており、特にフローチャート作成で真価を発揮する「DOT言語」というものがあります。
早速ですが、実際に手を動かしてみましょう。ちなみにDOT言語はGraphviz OnlineというWebツールがあるため別途に何かしらをインストールして環境構築する必要はありません。便利な世の中ですね。
上記のGraphviz Onlineを開くと、既に左側のDOT言語で記述された内容が、右側で作図されています。DOT言語はこのような図を作図するためのデータ記述言語です。
一旦、左側の記述をCtrl+Aで全選択をしDeleteなどで全削除し、下記の内容をコピペしてみましょう。
digraph graphname {
A -> B;
}
DOT言語の詳細な使い方は様々なWebサイトやブログ記事、Qiitaなどへ譲るとして、A - > Bの見た目から発想の転換をしてみると処理Aから処理Bという流れに見えませんか?
DOT言語は生成AIを利用する上で有利なテキストベースでありながらグラフを作成できるのがキモであり、例えばこのA -> BがA「Webページを開いたら」 → B「Hello, Worldと表示する」という風にできるのであれば処理のフローが可視化されており本当に素晴らしいことです。
ここでプログラミングの有識者は「DOT言語をUMLなどに見立てて処理を記述するのは良いが、プログラミング初心者は求めた結果を出力するロジックやアルゴリズムを発想する知見や経験値が圧倒的に足りていないのが問題ではないか?」と至極真っ当かつ反論の余地がない問題点の指摘をすると思いますが、そこで活きるのが生成AIです。
生成AIは初級者プログラマ個人のロジックやアルゴリズムの作成能力へ無関係にロジックやアルゴリズムを生成できる(可能性が少なくともある)ので、処理のフローをDOT言語で記述することにより処理フローから初級者プログラマが求めるプログラムを生成AIへ推論させ生成させるというのが狙いです。実際に試してみましょう。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する"
];
A -> B;
}
プログラミングの有識者はこの時点で「なるほど、自然言語の記述をそのままDOT言語に入れ込んでしまうのか」と気付いたのではないかと思います。
このDOT言語をGoogle Gemini 2.5 Flashへ「下記のデータ記述言語のDOT言語で記述された処理フローをJavascript言語へ変換をしWebページ上へ「Hello,world」を表示したいので変換をお願いします。」と命令すると以下のコードが生成されました。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello World Page</title>
</head>
<body>
<div id="output"></div>
<script>
// Webページが表示されたら(DOMが完全に読み込まれたら)実行される
document.addEventListener('DOMContentLoaded', function() {
// "Webページを表示する" ステップは、このHTMLファイル自体が表示されることで達成されます。
// "Webページを表示したらHello, worldとテキストを表示する" ステップ
const outputDiv = document.getElementById('output');
outputDiv.textContent = 'Hello, world';
});
</script>
</body>
</html>
フローを記述する利点は、ロジックやアルゴリズムを発想する知見や経験値が足りなくとも、フローのステップが明確に分かれているので生成AIが処理を切り分けて推論してくれることであり、そしてプログラミング初心者自身がフローチャートを視覚で確認できるので「Aを処理したらBを処理する」と切り分けて考えやすいことです。
また、求めている結果ではなく誤った結果が生成されても、A - > B - > Cとフローを細分化していくことで生成AIの推論精度を高めていくことができるのも利点です。
より生成AIへ精度の高い推論をしてもらうために補足情報を付加するのも有用です。
digraph graphname {
A[
label = "Webページを表示する"
];
B[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
A -> B;
}
labelの記述内容もcommentの記述内容も生成AIが推論のための情報として利用するので誤った結果が生成されてもA - > B - > Cとフローを細分化しなくとも良い場合があります。
DOT言語を知るプログラミング有識者が「DOT言語の仕様を考えれば確かにそうだが、その発想はなかった」と言っていただけるであろうDOT言語コード例だとこういう記述方法もアリです。
digraph 増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機"
];
最初の処理 -> 次の処理;
}
ノードの名称へ自然言語を採用することにより、例えばゲームプログラミング時に「キャラクターがジャンプする」という読んだそのままな処理のためのノード、というか一般的に言うオブジェクトを作成することが可能で、後は->で繋げて処理をさせられます。
ちなみに別のノードを作成する際に「"キャラクターがジャンプする"から継承する」の様なことをcommentなどへ記述しておくと生成AIが推論して継承します。なんならcommentなどへ「キャラクター画像にimage.gifを使用」などと記述しておくとファイルの読み込みもします。
更にDOT言語にはカスタム要素という仕様が存在しており、DOT言語の仕様で定められた予約語以外も使用が可能です。
digraph 増田コード {
最初の処理[
label = "Webページを表示する"
];
次の処理[
label = "Webページを表示したらHello, worldとテキストを表示する",
comment = "Webページが完全に読み込まれるまで待機",
font_style = "フォントを太字のボールド体、色を赤(#FF0000)とする"
];
最初の処理 -> 次の処理;
}
生成AIはカスタム要素の名称からも推論を発揮し、上記の場合であればフォントスタイルを指定していると推論をするので生成AIの推論精度を高める補足情報として機能します。
つまりこれはカスタム要素の名称として"Action"などの名称を採用すると"動作"として推論をし、"decision"ならば"条件分岐"ですし、"input"ならば"入力"ですし、"loop"ならば"繰り返し"ですし、"Type"ならば"種別"です。
より詳細に process[type="Action"] などのノードを作成してどんどん生成AIの推論精度を高めていくことが可能であり、そろそろ察してきているかと思いますが 処理[種別="動作"] と自然言語で記述しても機能します。
プログラミング有識者は更に「プログラム言語自体の予約語、例えばJavascriptを生成する事を前提にlengthを名称にすると配列を使おうとするのか?」と疑問に感じるでしょうがお察しの通りで生成AIは配列を使おうとするので、敢えて使いたいプログラム言語の機能や外部ライブラリなどがある場合は補足情報として機能する形で記述しておくと生成AIは推論へ利用します(まぁそこまで知識ある方なら該当のプログラム言語使ったほうが手っ取り早いと思いますが)。
以上をもって「生成AIを利用したプログラミング初級者向けの温故知新な提案」を終えたいと思います。
色々とツッコミどころには筆者自身が気付いていて。例えば「結局はDOT言語の仕様を覚えないといけないのでは?」とか「プログラミング初級者に任せると生成前のソースであるDOT言語コードがスパゲッティになりそうだよな」とか「面倒くせぇから普通にプログラミング覚えろや」とか理解してますし至極真っ当かつ反論の余地がないと思ってます。
今回の提案のプログラミング有識者向けの本質は「生成AIへ向いた中間言語の発掘」であり、「DOT言語ならそこそこ普及してるしプログラミング初級者でも扱えるんじゃね?」と業務中に発想したものを書き留め公開いたしました。
その内側で有名作品はたくさんあるんだけど外には広がらなかった。
RPGツクールVX ACEを無料配布でもらったのでつまらなくて短くてもいいから完成させることを目標に遊びたい
妹に出演許可は取ってないけどこういうのはノリノリで許してくれそうなのでとりあえず無許可で続けることにする
ストーリーの大筋としては妹が異世界に召喚されてモンスターに襲われてそこで女戦士に助けてもらい冒険者として依頼をこなし成長し世界の危機と対峙する(普通だな!)
と思ったけどこれは長くなりそうだからちょっと頑張ったあたりで現実世界に帰る門が見つかって帰還エンドくらいまで作るのを目標にする
帰らないで戦うほうはモチベがあったら作る
世界の危機の内実としては力による略奪や支配なんでもありで勢力を拡大し続ける悪の帝国あたりだろうか
実は帝国の中枢部にも現代から召喚された人間がいて科学技術によって圧倒的な武力がもたらされている
こんなん新規にやらせたらメダロットもヴァンサバもクソゲーだとも思われちまうよーーー!!!!
メダロット✕ヴァンサバであり、上手くやればホロキュア(Steamで圧倒的に好評)になれたかも知れないのに。
まさかここまで「このゲームの月パス(1500円)を買うよりも元ネタのDLC全部入り(1500円)を買うほうが絶対にいい」と胸を張って言えるゲームが産まれるとは!
部位破壊はない。
戦闘中のパーツ変更もなく本家と同じように武器とバフを6個ずつ選ぶのみ。
メダルはαメダルやβメダルと個性皆無だし、そもそもただの装備枠だ。
装備枠は完全に自由にメダロットを配置できるので、つまりは脚部パーツや男女の概念もない。
マジで何一つとして「メダロットである意味」がゲームの中にない。
グラフィックだけだ。
RPGツクールの二次創作ゲームでもなにかしら「このキャラでやる意味」を盛るだろ?
こんな志皆無のゲームなので当然クオリティは本家に全く及ばない。
絶妙な経験値テーブルは存在せず雑に敵を強くし続けるだけのステージ制。
狭い画面にもたもたした操作性。
本家はステージ毎に個性があったけどこっちはそういうのがない。
隠しアイテムもなくただボスのグラが違うだけでずっと同じことをしてる。
モッサリした銭湯を眺めながら何の感慨もなくダラダラとキャラを動かすだけ。
宝箱を開けたときのグラはもはや天才の領域で、一瞬光ってすぐに中身が出てくる。
なんて頭が悪いんだ。
歴代アイドルメダロットどもにチアダンスでもさせて射幸心を煽れば少しはプレイフィールもマシになっただろうにそれさえ気が回らんのか。
このゲームはずっとつまらんが、まずチュートリアルからしてつまらなさが凄い。
少しずつ襲ってくるコフィンバットを自動ロックオン攻撃で倒していると1分後ぐらいにヘルフェニックスが次々に湧いてくる。
ヘルフェニックスの移動速度はこちらの倍で、湧いてくるスピードはこちらの殲滅力を凌駕している。
何が起きるか?
あっという間になぶり殺しだ。
その後ガチャを引かされ、出てきたキャラを装備すると、攻撃力は10倍になっている。
マジで虚無。
何もなすすべなく倒され、今度は何もしなくても敵に勝てる。
このゲームのゲーム性は「プレイヤーレベルやメダルレベルを上げてヘルフェニックスを一撃で倒せるようにすれば勝てる。無理なら諦めろ。放置しとけば経験値とゴールドが自動的に溜まるからそれで強くなるまで待て」が全てでさえある。
放置ゲーの虚無、いや、全てのクソバランススマホゲーム、いや、全てのバランス調整を投げ出したRPGのクソが詰まっていると言える。
マジでクソ。
神レベルのクソ。
ストーリーもたっぷり遊べるし、コラボでエヴァやゾイドやグレンダイザーも使えるし。
神すぎて草
もうサ終していいぞ。
daij1n コメントの任天堂が一定の倫理観とかマジで?ポケモンユナイトはdota2のゲーム性マンマで、そのdotaはウォークラフト3の違法改造MODの代物。(dota2はValve社、ウォークラフトはブリザード社)デマって、こうしてできるのね
daij1n 任天堂でやばいのは他社企業の無断改造ゲームのdotaベースで作ったポケモンユナイトを堂々と出しておきながら、他社ゲームに対しては特許の請求範囲を分割・訂正審判で変更した後でゲーム会社に襲いかかるトロール。
daij1n 自分らはポケモンユナイトでdotaベース(ブリザード社ゲームの違法改造MOD、なので商品は正式にはdota2(Valve社)から)出しておきながら、自分らのゲームはパクるな、は倫理上無理がある。しかも、特許内容もクソ。
なんかパルワールド関連のブコメを見直してたらこんなのを見つけたがDotAは違法改造MODではない
あれはWarcraft3で公式にサポートされてたカスタムマップ製作機能を使って作られた物でRPGツクールで作ったRPGみたいなもん
MSX発で後世への影響の方向で考えてみた。
・ぷよぷよ
・アルカザール (MSX版がバイオハザードに影響を与えたらしい)
・あかんべドラゴン (後のスパロボ? そういやこれもタイアップキャラ物)
・Dante (Dante98を経てRPGツクールに発展)
・グラディウス2 (カートリッジに追加回路で機能大幅拡張(これは音源))
あと1本が思いつかない。
ZooKeeperの始祖ってこじつけで米チャ作品を挙げてみたかった。
番外で
・コナミのゲームを10倍たのしむカートリッジ (初期のチートツール)
・パナアミューズメントカートリッジ(とコナミの新10倍カートリッジ) (セーブデータを独立した媒体に保存(メモリーカード系)な始祖)
プロンプトエンジニアリングの最大のメリットは一人の戦闘力が大幅に水増しできること。
たとえばその昔は東方Projectを一人で作るのは狂気の沙汰だった
イラスト 俺
音楽 俺
シナリオ 俺
プログラム 俺
販売 俺
販促 俺
製作 俺
↑
これ真似する気になる奴は超少ないやろ
しかし、東方より更に前の時代、赤松健がPaladinを作っていた時代はオール俺も少なくはなかった。
その後の時代でもRPGツクールなどのツールを用いて音楽と汎用敵に以外オール俺を実現するクリエイターは決して少なくはなかった。
もちろんトビーフォックスみたいなのはいるが、彼がスマブラにアレンジ提供する化け物であることが結果的に「普通は無理」をより強固に証明している。
たが、大部分の人間は容量増加に伴った求められるクオリティの強化に耐えきれず、自分の狭い専門性に縛られ、全体をデザインする事もできず、他のメンバーから自分のこだわりを守るので精一杯だ。
ゲーム作る人間の半分ぐらいは大昔の一人製作に憧れていたのに、高くなり続ける要求クオリティの壁に阻まれ自由を奪われてしまったんだな。
今、プロンプトエンジニアリングの力によりこの壁は破壊された。
↑
「プログラムを手段として何かしたいことがある」にとって滅茶苦茶楽しい時代がやってきた。
「プログラムを楽しむために何かネタを探している」という人からすればつまらん時代かもなあ。
砂場で遊びたいから城を作る子供、城を作りたいから砂場で遊ぶ子供、似ているようで全く違うんだなあ。
まあ、世の中の大部分は「楽して金を稼ぎたいだけ」なんだろうけどな。
そういう奴が混じると議論がカオスになるが、それを取り除いてやったら結論としては砂場のガキ二種類のどっちなんだって話よ。
おれは楽しめる方のガキだ。
楽しくなってきて最高だ。
「グラフィックにかけた手間は関係ない」だったらまあ分からなくはないんだけど、「グラフィックの出来」だと流石にゴミみたいなグラフィックで面白かったゲームは思いつかないなあと。
そもそもゲームをデザインする段階でグラフィックはどうしてもくっついてくる訳じゃん。
そのゲームがどういう思想で作られているのか、コンセプトはどういうものなのか、それぞれのキャラの役割を伝えたりユーザーインタフェースを良くしたりと、ゲームとしてのコミュニケーション能力を支える重要なパーツでしょ。
たとえばRPGツクールのデフォルトグラフィックだけのゲームは素材を探す手間さえかかってないけど、ゲーム全体を通してグラフィックは統一されているし、それぞれのグラを与えられたキャラクターの役割(例:魔法使いだからHPは低いけど魔法攻撃は強い 水の精霊だから水属性)はシッカリ伝わるからねあのデフォルトグラは。
(おっとここで風のリグレットで反論しようとしたキミは見事にダウトだ~~~あのゲームは想像を掻き立てるシンプルなパッケージデザインと黒一色の画面という強烈なグラフィックを武器にしており、手間はそれほどかかってなくとも「グラフィックのインパクト」「ゲーム性を伝えるコミュニケーション能力」という意味では高得点なのだから~~~)
駄目なゲームにありがちなこととして「グラフィックによるコミュニケーションを軽んじている」という部分があるんだよ。
ゲームってのは基本的にはゴッコ遊びなので、グラフィックを見た瞬間にそのキャラクターや行為が持つ役割が伝わってこないとアカンのよね。
スピードが早いものにはスピードの早いグラフィックを当てはめるべきだし、鈍重なものは重たそうなグラフィックであるべきなのよ。
そしてなによりそのゲームが想定している「こういうイメージで遊んでくださいね」というものがゲーム画面をみてすぐに、そして少しでも具体的に伝わったほうがいい。
弾幕STGが人を引き付けるのは「一見回避が難しそうな弾が画面いっぱいに広がっていて、これをクリア出来たら全能感が凄いだろうな」と想像させる力があるから。
逆にクソゲーと呼ばれがちなSTGは「一見避けやすそうなのに全然避けられない弾が飛んできて、この程度も避けられない自分は無能だと感じさせてくる」ってパターンがかなり多いわけよ。
ゲームってのは元々はTRPG(テーブルRPG。サイコロ遊びと指輪物語ごっことノート迷路を足したようなの)みたいなごっこ遊びに端を発したものであり、ゲームソフトはGM(ゲームマスター(語り部・ディーラーぐらいの意味))としての役目があるわけなんだからさ、そこはちゃんと「今、こういうことをしています。この遊びはこういう所が楽しいよ」ってちゃんと伝えてくれなきゃ。
なんか手抜き感満載のグラフィックな上にそれぞれがどういう役割を持ってるのかも伝わらず、結局やってることがシックリ来ないし、どう楽しいのかも伝わらないならそんなゲームの評価はやっぱ下がるよ。
思い切って文字だけで表現するとか、諦めて汎用フリーグラフィックを使うとかで誤魔化してもいいから、少しでも自分のゲームがどういうものかを伝える努力をすることにエネルギーを使うべきなんだって。
原作者と作画が分かれてることも影響してると思う(弊害とまでは言わない)
おそらく原作者の頭の中にはもっとリアルな世界が存在するが、そのディテールは本来伝えたい物語を書くにあたって不要だからあえて省略している
作画担当のほうも作風なのかプロ意識なのか、ディテールについては個性を出さず「こんな感じで描いとけばゲーム世代には伝わるよね」という共通認識に頼り、物語そのものを描くことの方に努力を割いている
二人の目指すものは噛み合っているのだが、結果として原作者一人だったらなんやかんや行間からにじみ出てきたであろう世界のリアリティが二人分のフィルタによってブロックされ、
物語部分以外はRPGツクールの既存アセットを並べて作ったみたいな世界になってしまう(そこをアピールしたくないからそうしたのだろうから悪いとは言わない)