穏やかに人生を楽しむブログ

日々の生活にイライラせず、穏やかに人生を楽しもうと挑戦しているブログ

フリーゲーム「真の魔王の後悔」紹介

pvはこちら。

www.nicovideo.jp

どういうゲーム?

ローグライク風のアクションゲームです。

プレイヤーが一歩動いたら、敵も動いたり、攻撃してきたりします。斜め移動はなく、満腹度もありません。

どこが面白いの?売りは?

遭遇するピンチ、敵に対して、どうやって勝つかを試行錯誤できるところが面白い点。そのための道具として武器、サポーターがいます。これらはランダムに獲得できますが、ストーリー終盤にはほとんど揃うようになっております。

 

・武器:

 全10類。主に攻撃力、命中率、攻撃エリアが違います。

f:id:sctibacromn:20210116132746p:plain

 

・サポーター:

 全13種類。回復したり、相手を暗闇にしたりといった支援をする仲間です。

f:id:sctibacromn:20210116133230j:plain

風来のシレンでいうところの杖が近いです。ただし、スキルポイントがないと使用できません。

スキルポイント

敵を倒したら増え、セーブポイントで全回復する仕様です。sp回復アイテムでも回復ができます。

その他には?

敵を倒すと経験値がたまります。たまった経験値はEXPボーナスとして使うことができます。使うとボーナスアイテムが得られます。その中にはステータスをアップするアイテムと、sp回復アイテムがあります。

f:id:sctibacromn:20210116134315j:plain
このアイテムもランダムで四つ表示されます。

本当に面白いの?

自分は面白いと思ってますが…。作るのに職人のように何度も作り直したり、有名作品をマネたりして作り上げたので。

まあ、かけた時間は成果とは関係ないので、面白くなかったらすみません。

今後の予定

武器、サポーターを増やし、クリア後のダンジョンを作ろうかなと思ってます。有料にする予定です。

 

フリーゲーム「真の魔王の後悔」素材サイト様

今回使用した素材です。

プラグイン素材

・トリアコンタン http://triacontane.blogspot.jp/

・Moghunter   https://atelierrgss.wordpress.com/

木星ペンギン  http://woodpenguin.blog.fc2.com/

・Hudell     https://github.com/Hudell

・tomoaky

・kido0617

 

キャラグラ素材

・TIME FANTASY:MONSTERS http://store.tkool.jp/a/tkool-series-only-resource/time-fantasy-monsters

 

キャラグラ、顔グラ素材

・ゆうひな https://blog.goo.ne.jp/akarise

 

フォント素材

・あらたかな https://twitter.com/artakana

 

マップデータベース

・​HnapapaStudio https://tetsu0910a.wixsite.com/hanapapastudio

・創作工房春巻  http://harumakikukan.web.fc2.com/

 

音楽素材

・ユーフルカ https://wingless-seraph.net/

・魔王魂 https://maoudamashii.jokersounds.com/

 

素材サイト様について一言

プラグインではトリアコンタンさんが必ず検索でヒットして、使用率が高いです。いったい何者なんだろう。Moghunterさんは見栄えをよくするために使用しました。TIME FANTASYは有料素材です。以前購入したものを使用。

 

ゆうひなさんの素材は、とにかく種類が多いので助かりました。種類が多いとそこから最適だなと思うものを選ぶことができるので、種類が豊富なのはポイント高いです。

マップのデータベースには、HnapapaStudioさんと創作工房春巻さんを使用。マップ作りが嫌いなので、利用させてもらってます。

 

音楽は、ユーフルカさん、魔王魂さん。結構前から活動されてますよね。特に魔王魂さんはツクール2000時代から見かけていたので、いまや「ゲーム音楽素材といったら魔王魂」みたいになっている感があります。

ツクールmv ローカライズ方法

ローカライズで難しいのはどう翻訳するのかということ、どうやってセリフを抽出するのかという点、どうやってゲームに反映するのかという点です。

ここではどう翻訳するのか、という難しい点は置いておいて、それ以外の部分について触れたいと思います。

まずはタイトル画面などのコマンド文字を英語にしてみる

f:id:sctibacromn:20201116130219p:plain

1.自作プラグインTranslateStrings.js)のダウンロード

2.1をpluginsフォルダに移動する

3.dataフォルダ内に新規でTranslateという名前のフォルダを作成

4.GameStrings.jsonをダウンロード

5.Translateフォルダ内に4を移動する

6.1のプラグインをONにする

7.強制言語の設定を英語に変更する

f:id:sctibacromn:20201116130358p:plain

8.起動して確認する

 

GameStrings.jsonに変換対象の日本語と対応する英語が保存されてます。メニューのコマンドなど、変更したいときは追加してみましょう。

主人公の名前を英語にしてみる

f:id:sctibacromn:20201116131233p:plain

1.dataフォルダ内に新規でenという名前のフォルダを作成

2.1のフォルダ内にdataフォルダ内のActors.jsonをコピー&ペースト

3.enフォルダ内のActors.jsonの主人公の名前を変更する

f:id:sctibacromn:20201116131714p:plain

4.TranslateStringsプラグインの「データベースを言語別に使用する」をtrueにする

5.TranslateStringsプラグインの「言語データベース名」にActorsと入力する

f:id:sctibacromn:20201116132050p:plain

6.起動して確認する

そのほか、例えばアイテム名、アイテムの説明を英語にしたいときは2の手順で、Items.jsonをコピぺし、同じように英語にしてみましょう。

英語の文章を取得してみる

f:id:sctibacromn:20201116134751p:plain

1.言語リスト.xlsmをダウンロードする

2.1をゲームのプロジェクトフォルダ内に移動する

3.1を開き、MapSerifシートを選択する

4.「json出力」ボタンを押して、Translateフォルダ内にMapSerif.jsonを出力する

5.CommonSerifシートを選択する

6.「json出力」ボタンを押して、Translateフォルダ内にCommonSerif.jsonを出力する

7.マップID1番のマップ上で、イベントID1番のイベントを作る。

違うマップID、イベントIDにしたい場合は1を開いてMapSerifシートのmapId、eventIdを変更する。

 

例えば、mapId4、eventId3のイベントなら、以下の図のようにする。

f:id:sctibacromn:20201116140704p:plain

保存し、最後に「json出力」ボタンを押す。

8.7のイベントに以下の文章を入力する

テスト
ああああ

f:id:sctibacromn:20201116135157p:plain

8.イベントのトリガーは自動実行などに設定しておく。

9.TranslateStringsプラグインの「文章を言語別に取得する」をtrueにする

10.起動して確認する

 

言語リストのエクセルを変更したらボタンを押して出力させることを忘れずに!

ツクールmv内の文章を楽に抽出する方法

1.自作プラグインSentenceExtractor.js)のダウンロード

2.1をpluginsフォルダに移動する

3.プラグインをONにする

4.エディター上でツクールmvを起動する

5.ゲームプロジェクトのフォルダ内の「文章出力」フォルダの中身を確認する

 

ONのままだと起動のたびに文章を保存するので、使わないときはOFFにしておいたほうがいいでしょう。

 

現状、文章、選択肢、マップ名を抽出します。そのまま該当ファイルやエクセルに貼りつけることが可能です。ただ単に抽出したいだけであれば、ツクールMV 会話CSV抽出ツールなどのツールを使えば抽出できます。

翻訳について

自分の場合、google翻訳を使って翻訳しましたが、元々英語は苦手できつかったです。文字数はマップのセリフ文章だけで12000文字ほどあり、これがまあ~めんどくさい。セリフが多いRPGとかだと詰んでましたね。間違いなく諦めてました。

 

依頼するのならば、gengoという翻訳サイトがあるようです。自分が試したときは一文字5円でした。素早く翻訳してくれるみたいです。ココナラなら1文字1円が相場のようでした。ただ、翻訳の質は不明です。

 

5円なので、12000文字もあると6万円ということです。ココナラでも12000円。

…高い。なので自分は断念しました。

まとめ

結論、ローカライズ前提ならばセリフは少なくしたほうがいいです。

画像に文字を貼りつけるのも極力やめたほうが後で幸せになれます。

参考

・【RPGツクールMV】GameStrings的なあれを作ってみた - ボアブログ

・javascriptでブラウザの言語設定を取得する - Qiita

・【RPGツクールMV】ゲーム中の文章データをすべて取得して書き出すプラグイン - プログラミングとかブログ

tplink スマートプラグを使って、強制的に休憩を挟む

自分は集中すると何時間でも作業してしまう性格です。

PCで作業していて、気がつくと部屋が暗くなっていたということがあります。それで問題なければいいんですけど、作業のあとはぐったりと疲れています。

 

楽しんでいるというよりも興奮していて、意固地になっているという状態ですね。これがよくない(気づいたのは最近ですが)

 

そこで目をつけたのがスマートプラグです。

 方法

アプリでオンオフの設定をするだけです。スマートプラグにはPCのモニター電源を接続してるので、オフになったら作業中でも暗くなります。そして、十五分後に自動オンしてモニターがつくという仕組み。

 

初めはiftttを使ってPCをスリープをしていたのですが、勝手に復帰することが多く、どうにもうまくいかず今のスマートプラグを使うやり方に変わりました。

休憩の時間

自分の場合、十五分休憩を挟みます。

・9時45分から10時

・12時45分から13時

・14時45分から15時

上記を休憩時間に設定してます。そして、休憩時間中は机に突っ伏します。学生のときのような感じで。掃除すらせず、休憩に徹します。

ちょっと疲れている状態なので、余計なことはしないほうがいいです。

効果

これには絶大な効果がありました。

 

以前は毎日疲れを感じていました。作業時間は一日四時間ぐらいしかできず、ぐったりしてました。この強制休憩システムを取り入れることにより、十時間以上あまり疲れず作業することができるようになりました。

 

やはり休憩は絶対に必要ってことですね。これは会社に取り入れたほうがいいんじゃないかと密かに思っている自分がいます。

 

学校では小休憩があるのに、会社だとなぜないのか?謎です。

自分と同じように、作業をやめたくてもやめられない人が使ったら、パフォーマンスがあがるのではないかと思ってます。

自分ルール 商品を買うとき

自分が買うときに衝動買いしないように定めたルール。

買う前によく見るので、ここに記します。

払う額が制限内か?

これは使い過ぎ防止のためです。自分の場合は月額の使用限度額を設けているので、買うときは常にチェックしています。自分の場合はすべて込みで月7万です。

やむを得えず超えるときは理由をエクセルに記録します。

それを買う以外に方法はないか?

家にすでにあるものを代用して使えるか?という意味です。そうであればわざわざ買う必要はありません。家のタンスに眠っているものをよく調べるということが必要です。

今、冷静か?

変なルールですが、なにかに急き立てられていないかということです。焦っていると冷静な判断ができず、余計なものを買ってしまう可能性が高いです。

翌朝にもう一度見て、大丈夫なようなら買う、ということをたまにしてます。

他に必要なものはないか?

買い忘れを防止するための問いかけ。後で〇〇を買っておけばよかったということがよくありますので。

今、必要なものか?

今すぐに必要かという文字通りの意味。値段が高いときに今必要じゃないものを買ってしまうと後で値段が下がったときに後悔することになるので。

 

ちなみにkeepaというchrome拡張機能を入れると、三か月前や一年前からの値段がわかって、今本当に安いかどうかわかって便利。

中古で買ったほうがいい商品か

商品によっては新品で買わなくても、中古で買っても問題ない商品があったりします。少し調べてみて、中古でオーケーであれば中古を買います。もちろん安いので。

pygame→unity→ツクールMVへと開発が移った理由

もともとはツクールmvでゲーム作成していたが、この一年でpygame、unityを触ってみた。

結果からいうと下記のとおり。これには個人的な偏見も含まれていますので注意。

 

pygame unity ツクールMV 違い

 

そして結局、今のところ最適なのはツクールmvだなと思って、ブーメランのように戻ってきました。プログラム開発ツールは全てvscodeを使用してます。

pygameはなにがイマイチだったのか?

本当はpythonが好きなのでpygameでゲームが作りたかったのだが、クロスプラットフォームではないので、作れてもwebですぐにプレイできない。ダウンロードしてプレイしてもらうという形式しか取れず、プレイヤー側としてはイマイチ。

そして、tiledMapEditorでマップ作成をするのだが、イベント作成は困難でわかりにくくなることがわかった。困難でわかりやすいならいいけど、わかりにくいのは致命的。

 

さらにlinux上で作ってましたが、このlinux環境がどうにも慣れなかった。よく誤動作を起こすし、使いものになってないというのが正直なところ。極端に使えるソフトが少ないという点もかなりのマイナス。そこで、windows+unitiyにしてみました。

unityはプログラミング言語が好きじゃない

 hddからssdへわざわざ買い替えて挑みましたが撃沈。C#というプログラムの書き方もまったく好きじゃない。

 

なんでわざわざVBみたいに型を指定しなければいけないのか?なんで末尾に;(セミコロン)がいるのか?pythonはそういう煩わしいのは一切ないんだから、実現してくれよと声を大にして言いたい。

型なんて変数名で明示すればどうとでもなるではないか。配列ならlistとか、辞書型ならdistとか付ければいいじゃないか?なのになんでわざわざ型指定してセミコロン。voidなんかいらないだろ。空なんだからいちいち明示させるなっての。面倒くさすぎる。

 

しかし!それだけが原因というわけではなかった。その不満はあったが、unityには将来性がある!と踏んでいた。ツクールは悪い言い方をすれば作られたRPGという枠から外に出られないツールだ。同じようなものが量産され、ツクラーは元のツクールをどうやって崩していくかが求められる。

 

それに対してunityは変幻自在というか、可能性が広い。広大だ。 広大すぎて機能が多すぎるぐらいだ。さらにクロスプラットフォームに対応しているからスマホアプリとして世に出せる。これからはunityだぜ!…などと思っていたのだが致命的な問題が発覚。それがデバッグだ。

さらに、unityはデバッグ反映に時間がかかる

unityのテストプレイの流れを見ていくと、こうなる。vscodeデバッグ開始→unityウィンドウに移動→コードがunity側に反映するまで待つ→unityデバッグ開始。

 

さて、なにが問題なのか。入門サイトを見ながら、順調にコードを打ちこんで学んでいくぶんには問題はあまり感じられなかった。しかし、入門サイトに頼らない段階となると話は変わってくる。その段階になると、少しコード変更してデバッグ、少しコード変更してデバッグを繰り返す。

 

そこで気になってくるのがデバッグの遅さだ。移動する手間やコード反映するまで時間がかかり、さらにこいつ、あろうことか頻繁にフリーズまで起こす。そのとき自分はこう思った。「あ、これ、ダメなやつだ」と。

 

デバッグがスムーズにできないのは致命的である。二重バツだ。さらにさらに、unityはアツマールに投稿してもコメントがいっぺんに流れたり、音量を操作できなかったりする。それをどうにかするAPIもあるらしいが、情報が極端に少ない。つまり…そういうことだ。察しと諦めの悪い自分は一生懸命、他の道を模索したが無理だった。

 

いや、お前バカだろ?unityroomでいいじゃん。そう思うかもしれない。が、unityroomはコメントが極端に少ない。スマホプレイヤーがほとんどなのでフィードバッグが少ないことは数値から見て取れる。自分はフィードバッグを受け取りたい派で、それによってゲームをよりよくしていきたいのだ。だからアツマールが最良だと思った。

改めてツクールmvに触れてみて

jsのセミコロンは気に入らないが、やっぱりツクールはいい。デバッグも容易で、すぐに反映される。「コードがすぐに反映されるって素晴らしい~。幸せ~」と思わせてくれたunityには嫌味を込めて感謝している。

 

というか、あのデバッグのしずらさでよくここまで知名度が広がったものだなと悪態をつくぐらい自分の中では完全に見切っている。やはり多くの人は無料、タダという魔力は強いということか。

hddからssd ポートを変えたら速くなった

購入ssdはこちら。

 hddからssdに変更後、ベンチマークテストしてみるのだが、確かにhddよりは速くなっている。こちらはhdd。

hdd速度

ssdはこれ。

hddからssd ポート変更前

だが、他の人のテスト結果はもっと速い。読み書き500MB/s以上出ている。そもそも購入ページに読み取り560MB/s、書き込みが510MB/sと書かれているのでおかしい。

 

調べて見ると、ポートによって速度が変更されるようだ。 ポートとはsataケーブルのマザボ側の接続先のことだ。マザボには白色ポートが2.0、青色ポートが3.0対応らしく、白色ポートのほうをつないでいた。青色ポートに変更すると高速化された。

hddからssd ポート変更後

ちなみにunityのプロジェクト起動が遅いのでssdに変更したのだが、hddだと1分20秒ほどかかっていた起動が、20秒ほどに短縮された。1分ほど短くなったわけだが、20秒でも遅いなと思うのは自分だけだろうか。

まあ、頻繁に起動するわけじゃないからいいけど。

 

参考サイト:

jp.easeus.com