2024/11/22 WAIEI CitMin開発記録

機能追加

ジャケット画像アニメーション表示機能を追加

SMXの曲決定後のジャケット画像がアニメーションする機能を再現できるようした。

曲フォルダ内にjacket_animationsフォルダを作成し、その中に次のテーブルを返却するdefault.luaを用意する。

  • Actor ... ジャケットアニメーションのDef.Actorを返却するfunction
  • Length ... アニメーションの長さ(秒を定義。0.4未満は表示されない)
  • Size ... Actorで想定しているジャケットの1辺のサイズ(px)

参考にノイズが走って画像が一瞬変わるエフェクト。

local function actors()
    return Def.ActorFrame({
        LoadActor('ja_help'),
        LoadActor('ja_hope1')..{
            OnCommand = function(self)
                self:diffusealpha(1):sleep(0.95):diffusealpha(0)
                self:sleep(1.0)
                self:diffusealpha(1)
            end,
        },
        LoadActor('ja_hope2')..{
            OnCommand = function(self)
                self:diffusealpha(0)
                self:sleep(0.55)
                self:diffusealpha(1):sleep(0.4):diffusealpha(0)
                self:sleep(0.3)
                self:diffusealpha(1):sleep(0.5):diffusealpha(0)
            end,
        },
        LoadActor('ja_noise')..{
            OnCommand = function(self)
                self:diffusealpha(0)
                self:sleep(0.5)
                self:diffusealpha(1):sleep(0.1):diffusealpha(0)
                self:sleep(0.3)
                self:diffusealpha(1):sleep(0.1):diffusealpha(0)
                self:sleep(0.2)
                self:diffusealpha(1):sleep(0.1):diffusealpha(0)
                self:sleep(0.4)
                self:diffusealpha(1):sleep(0.1):diffusealpha(0)
                self:sleep(0.1)
                self:diffusealpha(1):sleep(0.3):diffusealpha(0)
            end,
        },
        LoadActor('../hope-jacket')..{
            OnCommand = function(self)
                self:diffusealpha(0)
                self:sleep(2.2)
                self:linear(0.5)
                self:diffusealpha(1)
            end,
        },
    })
end

return {
    Actor = actors,
    Length = 2.7,
    Size = 256,
}

次のような動作をする。

ジャケットアニメーションが終わるまで1ステップ目が来ないのであまり長いのはおススメしない。