beatoraja用FullHDスキン【ModernChic】公開中です!
beatorajaスキンいじり

beatoraja自由研究~jsonからluaへの変換~

beatoraja自由研究~jsonからluaへの変換~ beatorajaスキンいじり
この記事は約6分で読めます。

自由研究もお久しぶりです。カサコンです。
beatorajaスキンで一通り作りたいものは作れましたので記事を書くことにしました(いきあたりばったり)

前回はJSONで曲決定画面を作ったところまでやったんでしたよね。
今回はそのJSON形式のスキンをlua形式に変換する流れについて書いてみたいと思います。最初からlua形式でスキンを作ろうとしている方にも参考になると思います。

JSON形式のスキンは下の記事から入手出来ますので参考にどぞ。

luaスキンについてはこちらの記事が参考になります。

.luaskinファイルの作成

まずは.luaskinファイルを作成します。
細かいことは省略しますがスキンとして認識させるために必要なものです。
これに以下を記述します。

local t = require("decide")
if skin_config then
	return t.main()
else
	return t.header
end

require(“”)の部分には次に作る.luaファイルの名前が入ります。
.luaskinファイルについてはこれで完了ですのでとりあえずおまじないのようなものだと思っておきましょう(違う)

.luaファイルの作成

次に.luaファイルを作成します。これがスキン本体となります。
今回の場合だとdecide.luaファイルとなります。

また1から作り直しか・・・って思ってしまいますがちょっとまってください。
JSONとluaでの書き方を見てみると・・・

JSONの場合

{
	"type":6,
	"name":"GPaper-JSON",
	"w":1920,
	"h":1080,
	"fadeout":500,
	"scene":3000,
	"input":500,
	"filepath":[
		{"name":"フェードアウト時の色", "path":"fadeout/*.png"},
	],
	"source": [
		{"id":1, "path":"number.png"},
	],
	"font": [
		{"id":0, "path":"title.fnt"}
	],
	"image":[
		{"id":"bg", "src":2, "x":0, "y":0, "w":1920, "h":1080},
	],
	"value":[
		{"id":"maxbpm", "src":1, "x":0, "y":0, "w":380, "h":43, "divx":10, "digit":4, "ref":90, "align":2},
	],
	"text":[
		{"id":"genre", "font":1, "size":40, "ref":13, "wrapping":"false", "overflow":1, "outlineColor":"000000ff", "outlineWidth":1},
	],
	"judgegraph": [
		{"id":"notes-graph", "type" : 0}
	],
	"bpmgraph": [
		{"id":"bpmgraph"}
	],
	"destination":[
		{"id":"bg", "dst":[{"x":0, "y":0, "w":1920, "h":1080}]},
	]
}

luaの場合

local header = {
    type = 6,
    name = "GPaper-Lua",
    w = 1920,
    h = 1080,
	fadeout = 500,
	scene = 3000,
	input = 500,
    filepath = {
        -- カスタムファイル
        {name = "フェードアウト時の色", path = "fadeout/*.png"},
    },
    property = {
        -- カスタムオプション
    },
}

local function main()
    -- ヘッダ情報コピー
    local skin = {}
    for k, v in pairs(header) do
        skin[k] = v
    end

    skin.source = {
		{id = 1, path = "number.png"},
	}
    skin.font = {
		{id = 0, path = "title.fnt"}
	}
    skin.image = {
		{id = "bg", src = 2, x = 0, y = 0, w = 1920, h = 1080},
	}
    skin.value = {
		{id = "maxbpm", src = 1, x = 0, y = 0, w = 380, h = 43, divx = 10, digit = 4, ref = 90, align = 2},
	}
    skin.text = {
		{id = "genre", font = 1, size = 40, ref = 13, wrapping = false, overflow = 1, outlineColor = "000000ff", outlineWidth = 1},
	}
	skin.judgegraph = {
		{id = "notes-graph", type = 0}
	}
	skin.bpmgraph = {
		{id = "bpmgraph"}
	}
    skin.destination = {
		{id = "bg", dst = {
			{x = 0, y = 0, w = 1920, h = 1080}
		}}
	}
	
    return skin
end

return {
    header = header,
    main = main
}

細かな違いはありますがほぼJSONの時と書き方がほとんど変わらないのがわかります。
前回のJSONデータをlua化したものをおいておきますので見てみてください。

beatoraja自由研究~jsonからluaへの変換~
luaで表示してみた

次はluaスキンにしたことでできる便利な機能などを紹介したいと思います。
それではでは~。

備忘録ついでにGitに追加してみることにしました。

タイトルとURLをコピーしました