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

【Luaスキン】画像を配置する

【Luaスキン】画像を配置する beatorajaスキンいじり
この記事は約6分で読めます。

スキンを作っていく過程をブログで紹介していましたが逆引き辞典のような形式がありがたいとメールを頂きましたのでちょっとお試し的な感じで書いてみたいと思います。まずはスキンを作る上で基本となる画像の配置をLuaスキンの形式で。

main.luaskin

まずどのLuaファイルを読み込むのかを設定する.luaskinファイルを作成しておきます。
これを作らないとスキン選択画面で一覧に表示できないんで作っておきましょう。

require(“main”)のmainはmain.luaを指定しています。
return t.main()でmain.luaのmain関数を実行しています。
わからない場合はとりあえず下と同じように書いておけばOKです。

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

main.lua

いよいよ本題となるmain.lua。
まず骨組みはこんな感じ。

local header = {
	type = 5,			        -- 0:7k, 1:5k, 2:14k, 3:10k, 4:9k, 5:select, 6:decide, 7:result, 15:courceresult, 16:24k, 17:24kDouble
	name = "01_dstimage",   -- スキンの名前
	w = 1920,                   -- スキンの横幅
	h = 1080,                   -- スキンの高さ
	input = 500,
	fadeout = 500,
	property = {},
	filepath = {},
	offset = {}
}

local function main()
	-- ヘッダ情報のコピー
	local skin = {}
	for k, v in pairs(header) do
		skin[k] = v
    end
	-- ここにスキンを記述していく
	-- 画像ファイルの登録
    skin.source = {

	}
	-- 画像の切り出し
	skin.image = {

	}
	-- 画像を配置する
	skin.destination = {

	}
	return skin
end

return{
	header = header,
	main = main
}

skin.sourceで画像ファイルを登録

-- 画像ファイルの登録
skin.source = {
	-- img/image01.pngを1というIDで登録
	{id = 1, path = "img/image01.png"},
	-- idには文字列も可能
	{id = "sample", path = "img/image01.png"},
}

skin.imageで画像を切り出す

-- 画像の切り出し
skin.image = {
	-- orangeという名前でidが1の画像のx,y軸が0,0の地点から横300px,縦300pxを切り出す
	{id = "orange", src = 1, x = 0, y = 0, w = 300, h = 300},
	{id = "blue", src = "sample", x = 0, y = 700, w = 300, h = 300},
}

skin.destinationで画像を配置する

-- 画像を配置する
skin.destination = {
	-- orangeという名前で切り出した画像を左下から0px,0pxの位置に横幅300px,高さ300pxの大きさで貼り付ける
	{id = "orange", dst = {
		{x = 0, y = 0, w = 300, h = 300}
	}},
	{id = "blue", dst = {
		{x = 1620, y = 0, w = 300, h = 300}
	}}
}

まとめ

--[[
    画像配置サンプル
]]

local header = {
	type = 5,			        -- 0:7k, 1:5k, 2:14k, 3:10k, 4:9k, 5:select, 6:decide, 7:result, 15:courceresult, 16:24k, 17:24kDouble
	name = "01_dstimage",   -- スキンの名前
	w = 1920,                   -- スキンの横幅
	h = 1080,                   -- スキンの高さ
	input = 500,
	fadeout = 500,
	property = {},
	filepath = {},
	offset = {}
}

local function main()
	-- ヘッダ情報のコピー
	local skin = {}
	for k, v in pairs(header) do
		skin[k] = v
    end
	-- ここにスキンを記述していく
	-- 画像ファイルの登録
    skin.source = {
		-- img/image01.pngを1というIDで登録
		{id = 1, path = "img/image01.png"},
		-- idには文字列も可能
		{id = "sample", path = "img/image01.png"},
	}
	-- 画像の切り出し
	skin.image = {
		-- orangeという名前でidが1の画像のx,y軸が0,0の地点から横300px,縦300pxを切り出す
		{id = "orange", src = 1, x = 0, y = 0, w = 300, h = 300},
		{id = "blue", src = "sample", x = 0, y = 700, w = 300, h = 300},
	}
	-- 画像を配置する
	skin.destination = {
		-- orangeという名前で切り出した画像を左下から0px,0pxの位置に横幅300px,高さ300pxの大きさで貼り付ける
		{id = "orange", dst = {
			{x = 0, y = 0, w = 300, h = 300}
		}},
		{id = "blue", dst = {
			{x = 1620, y = 0, w = 300, h = 300}
		}}
	}
	return skin
end

return{
	header = header,
	main = main
}

画像が表示されました。

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