ラズパイ4でも作成・公開できてHTML,CSS,JSで実装できる。

ブツ

Monogatariというノベルゲーム作成ライブラリがある。そのDEMOゲームを改造した。多言語化できるが日本語のシナリオがなかったのでGoogle翻訳して日本語化してみただけ。不自然な日本語だが、機能紹介が実演されているので何となくわかるはず。

MonogatariはElectronで実装されているっぽい。そのためHTML,CSS,JSで実装できる。それをHTTPSサーバにアップロードすれば実行できる。ローカルでもブラウザでfile:///で開けば動作した。

Monogatariについて日本語の情報はほとんどなかった。この記事で布教しておく。

eyecatch.png

フォーク元

ドキュメント

前回まで

今回のきっかけ

ライブラリを探していたらgithub visual-novelをみつけた。その中にMonogatariがあった。

ゲームライブラリを探すときは日本語の情報だけでなく海外やGithub界のほうが色々あるかもしれない。

日本語訳

  1. index.htmlをブラウザで開く
  2. 最初のタイトル画面でヘルプを見る
  3. 巻き戻しなど各言語に翻訳された用語がある
  4. この用語をキーワードとしてgrep検索する
  5. どのファイルで用語翻訳されているか探す
find . -type f -print | xargs grep '巻き戻し'
./js/strings.js:		"Back": "巻き戻し",
./js/strings.js:		"BackButton": "巻き戻し",

js/strings.js

...
	"日本語": {
		"AdvanceHelp": "ゲームを進めるためには、スペースキーを押すかクリックします。",
		"Audio": "オーディオ",
		"AutoPlay": "自動再生", // 追加
		"AutoPlaySpeed": "自動再生速度",

		"Back": "巻き戻し",
		"BackButton": "巻き戻し",

		"Cancel": "キャンセル",
...

オプションなどゲームで定形となっている部分に関しては、いくつかの言語で翻訳されたデータが定義されている。その場所がjs/strings.jsらしい。ここをいじれば好きなように変更できる。

js/script.js

シナリオは基本的にこのファイルにある。これがそのままゲームになる。

let script = {
	"日本語":{
		"Start":[
			...
			"play music Theme",
			"scene Classroom",
			"show e Normal center with fadeIn",
			"e さて、今日はこれでおしまいです。家に帰ることができます。",
...

js/options.js

設定はここ。ゲームのタイトル画面における環境設定の部分。

...
let settings = {
	"Language": "日本語",
	"Volume": {
		"Music": 0.5,
		"Voice": 0.5,
		"Sound": 0.5,
	},
...

所感

Monogatariは今までの中で一番条件に合っている。ラズパイ4でも開発・実行・公開できる。エディタも問わない。自由度が高い。

ただ、このデモはバージョン1系らしい。対して最新は2系。新しいほうも触ってみたい。