【ラノゲツクールMV】ADVスタイルのメニュー表記がはみ出してしまう(訂正済み)
最近、RPGツクールだけでなくラノゲツクールにも着手するようになりました。自己満足で作っているのだけどそれでもトラブルはあるもので。
タイトル通り、ラノゲツクールをいじり始めていた時から自分の中で問題になっていた、メッセージボックスのメニュー。
上のスクリーンショットのように英語表記以外でメニューを表示すると、このようにはみ出す事。スクリプトをいじってみたりしてみたが、解決策は英語表記にする事だけ。どのテンプレートでも全く同じ状態でした。
困り果てて問い合わせてみたところ、
「ヘルプ内のスクリプターズガイドより、ゲーム内ユーザーインターフェイスを参照にしてください」
との事。
さっそく項目を見てみました。
すべてのレイアウト、テンプレートおよびスタイルはスクリプトエディタの 「Layouts」 フォルダー内に格納されます。デザインの変更は、 Layout_XXX スクリプトや Template_XXX スクリプトの編集で簡単に実現できます。フォントや色、アニメーションの変更は、 Style_Default スクリプトを編集します。
書いてありましたね。必要なところしか読んでいなかったのと、メッセージボックスの部分しか調べていなかったので見落していたようです。このままでは自分の知識を使って参照しつつ全て書き直すところでした。できる範囲で、ですがね。
早速、スクリプトから変更してみました。
直った!!
わりと簡単に変更できました。プログラム初心者でも簡単に変更できるようになっているんですね。タイトルの変更然り。
《プログラムを乗せておきます》
スクリプト→Layouts→Templates→Template_MassageBoxMenuの、1~14行目を見てください。
ui.UiFactory.customTypes["ui.MessageBoxMenu"] = {
"type": "ui.FreeLayout",
"order": 85000,
"id": "msgmenu",
"sizeToFit": true,
"controls": [
{
"type": "ui.Window",
"color": [0, 0, 0, 128],
"frame": [0, 0, 140, 270],
"order": 0,
"params": { "zIndex": 5000 },
"zIndex": 85000
},
となっていると思いますが、これを直します。上記プログラムの青文字を赤文字の値に変更してください。
ui.UiFactory.customTypes["ui.MessageBoxMenu"] = {
"type": "ui.FreeLayout",
"order": 85000,
"id": "msgmenu",
"sizeToFit": true,
"controls": [
{
"type": "ui.Window",
"color": [0, 0, 0, 128],
"frame": [0, 0, 200, 270],
"order": 0,
"params": { "zIndex": 5000 },
"zIndex": 85000
},
そして……、お気付きの様にそのままだとキャラクター名とメッセージメニューボックスがかぶってしまいます。
メッセージの位置を変更する。
このままでは、キャラクター名がメニューにかぶって表示されなくなってしまいます。
なので、テキストの表示位置も変えなくてはなりません。
MassageBox、22~34行目の
{
"type": "ui.Text",
"updateBehavior": "continuous",
"text": "",
"style": "messageBoxNameText",
"formulas": [
$ -> o.text = $dataFields.scene.currentCharacter.name
$ -> if @onTextChange $dataFields.scene.currentCharacter.name then o.font.color.setFromObject $dataFields.scene.currentCharacter.textColor or Color.WHITE
],
"zIndex": 5005,
"sizeToFit": true,
"frame": [148, "100% - 210", 128, 30]
}
先ほどと同じように、青文字の部分33行目を下記の赤文字のように直します。
{
"type": "ui.Text",
"updateBehavior": "continuous",
"text": "",
"style": "messageBoxNameText",
"formulas": [
$ -> o.text = $dataFields.scene.currentCharacter.name
$ -> if @onTextChange $dataFields.scene.currentCharacter.name then o.font.color.setFromObject $dataFields.scene.currentCharacter.textColor or Color.WHITE
],
"zIndex": 5005,
"sizeToFit": true,
"frame": [220, "100% - 210", 128, 30]
}
これでOK!