Amazonでお得にショッピング! 特典を見る(Amazon)→

クルーザー級零式 Splatoon レイアウトまとめ 2025/04/08 15:03更新

  • URLをコピーしました!
まず最初に

知的好奇心を満たすための記事であり、
導入を推奨するものではないです。ご理解いただけない方はブラウザバック必須。

当記事のツールを使用することで被るいかなる不利益も
当ブログでは一切の責任を負いません
導入・使用は自己責任です

FF14における外部ツールについてよく知らない方のための記事はこちら
ツールの使用が露呈して余計なトラブルを生まないための記事はこちら

ブログ更新の際にはDiscordサーバーにて通知を行っています。詳しくはこちら

2025/04/08
いろいろ更新。割と揃ってる印象。

動作確認してないので何かあったらコメントお願いします。

もくじ

お役立ちリンク

公式GitHubリンク

光のツーラーさんのブログ

あわせて読みたい
「Splatoon」について【2025/01/06更新】 画面上にマーカーを配置するプラグイン「Splatoon」の紹介。いろいろ使い道がありそう。
あわせて読みたい
リプレイを保存できる「A Realm Recorded」について Splatoonの動作確認用 非対応コンテンツでもリプレイが保存できるプラグインを紹介しました。Splatoonの動作確認もできるようです。

紹介するレイアウト・スクリプトは『とらめも交流所』にて共有されたものを転載しています

最速でレイアウトの情報を得たい方はこちらからどうぞ。

クルーザー零式1層

光のツーラーさまが記事を出していました。

https://tooleroflight.blog.jp/archives/27293287.html#more

一括導入のボタンがあるので便利。

公式GitHub

https://github.com/PunishXIV/Splatoon/blob/main/Presets/Dawntrail/Raids/The%20Arcadion%205%20Savage.md

レッツダンスとディスコインファーナルのスクリプトあり。

レイアウトは被っているものがほとんどだと思います。ツーラーさんのやつを入れるなら不要。

2層

https://tooleroflight.blog.jp/archives/27297557.html
ツーラーさん

https://github.com/PunishXIV/Splatoon/blob/main/Presets/Dawntrail/Raids/The%20Arcadion%206%20Savage.md
公式GitHub

3層

https://github.com/PunishXIV/Splatoon/blob/main/Presets/Dawntrail/Raids/The%20Arcadion%207%20Savage.md
公式GitHub

https://tooleroflight.blog.jp/archives/27323027.html
ツーラーさん(GitHubの上位互換

4層

https://github.com/PunishXIV/Splatoon/blob/main/Presets/Dawntrail/Raids/The%20Arcadion%208%20Savage.md
公式GitHub

https://tooleroflight.blog.jp/archives/27345284.html#more

光狼招来(スクリプト)

クリックで展開
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Dalamud.Game.ClientState.Objects.Types;
using ECommons;
using ECommons.Configuration;
using ECommons.DalamudServices;
using ECommons.GameFunctions;
using ECommons.GameHelpers;
using ECommons.ImGuiMethods;
using ECommons.Logging;
using FFXIVClientStructs.FFXIV.Client.Game;
using Splatoon;
using Splatoon.SplatoonScripting;

namespace SplatoonScriptsOfficial.Duties.Dawntrail;

public class M8S_Tactical_Pack : SplatoonScript
{
    public enum State
    {
        None,
        TetherCreated,
        Running,
        End
    }

    private const ushort GreenDebuff = 4392;
    private const ushort OrangeDebuff = 4391;
    private const ushort OrangeDragonDataId = 18225;
    private const ushort GreenDragonDataId = 18219;
    private const ushort OrangeCubeDataId = 18262;
    private const ushort GreenSphereDataId = 18261;

    private bool _isGreen;

    private State _state = State.None;
    public override HashSet<uint>? ValidTerritories => [1263];
    public override Metadata? Metadata => new(1, "Garume");

    private static IBattleNpc? OrangeDragon => Svc.Objects
        .FirstOrDefault(x => x.DataId == OrangeDragonDataId) as IBattleNpc;

    private static IBattleNpc? GreenDragon => Svc.Objects
        .FirstOrDefault(x => x.DataId == GreenDragonDataId) as IBattleNpc;

    private static IBattleNpc? OrangeCube => Svc.Objects
        .FirstOrDefault(x => x.DataId == OrangeCubeDataId) as IBattleNpc;

    private static IBattleNpc? GreenSphere => Svc.Objects
        .FirstOrDefault(x => x.DataId == GreenSphereDataId) as IBattleNpc;

    private Config C => Controller.GetConfig<Config>();

    public override void OnRemoveBuffEffect(uint sourceId, Status status)
    {
        if (status.StatusId is GreenDebuff or OrangeDebuff)
        {
            var greenCount = FakeParty.Get().Count(x => x.StatusList.Any(y => y.StatusId == GreenDebuff));
            var orangeCount = FakeParty.Get().Count(x => x.StatusList.Any(y => y.StatusId == OrangeDebuff));
            if (greenCount == 0 && orangeCount == 0) _state = State.End;
        }
    }

    public override void OnReset()
    {
        _state = State.None;
    }

    public override void OnTetherRemoval(uint source, uint data2, uint data3, uint data5)
    {
        if (_state == State.TetherCreated)
        {
            _state = State.Running;
            if (Controller.TryGetElementByName("Tether", out var element)) element.Enabled = false;
        }
    }

    public override void OnSetup()
    {
        var element = new Element(0)
        {
            radius = 1.5f,
            thicc = 15f,
            tether = true,
            Donut = 0.3f
        };
        Controller.RegisterElement("Tether", element);
    }

    public override void OnUpdate()
    {
        if (_state is State.TetherCreated or State.Running)
        {
            if (Controller.TryGetElementByName("Tether", out var element))
                element.color = GradientColor.Get(C.BaitColor1, C.BaitColor2).ToUint();
        }
        else
        {
            Controller.GetRegisteredElements().Each(x => x.Value.Enabled = false);
        }

        if (_state == State.Running)
        {
            if (_isGreen)
            {
                var remainingTime = Player.Status
                    .FirstOrDefault(x => x.StatusId == GreenDebuff)?.RemainingTime ?? 0;
                if (remainingTime == 0)
                {
                    _state = State.End;
                    return;
                }

                if (remainingTime < C.RemainingTime)
                {
                    var pos = GreenSphere!.Position;
                    if (Controller.TryGetElementByName("Tether", out var element))
                    {
                        element.Enabled = true;
                        element.SetOffPosition(pos);
                    }
                }
            }
            else
            {
                var remainingTime = Player.Status
                    .FirstOrDefault(x => x.StatusId == OrangeDebuff)?.RemainingTime ?? 0;
                if (remainingTime == 0)
                {
                    _state = State.End;
                    return;
                }

                if (remainingTime < C.RemainingTime)
                {
                    var pos = OrangeCube!.Position;
                    if (Controller.TryGetElementByName("Tether", out var element))
                    {
                        element.Enabled = true;
                        element.SetOffPosition(pos);
                    }
                }
            }
        }
    }

    public override void OnSettingsDraw()
    {
        ImGuiEx.SliderInt("Remaining Time", ref C.RemainingTime, 0, 10);
    }

    public override void OnTetherCreate(uint source, uint target, uint data2, uint data3, uint data5)
    {
        PluginLog.Warning($"taget: {target}, source: {source}, data2: {data2}, data3: {data3}, data5: {data5}");
        PluginLog.Warning($"source: {source.GetObject().Address} player: {Player.Object.Address}");
        if (target.GetObject().DataId is OrangeDragonDataId or GreenDragonDataId &&
            _state == State.None &&
            source.GetObject().Address == Player.Object.Address)
        {
            _state = State.TetherCreated;
            _isGreen = target.GetObject().DataId == OrangeDragonDataId;
            var pos = _isGreen ? GreenDragon!.Position : OrangeDragon!.Position;
            if (Controller.TryGetElementByName("Tether", out var element))
            {
                element.Enabled = true;
                element.SetOffPosition(pos);
            }
        }
    }

    public class Config : IEzConfig
    {
        public Vector4 BaitColor1 = 0xFFFF00FF.ToVector4();
        public Vector4 BaitColor2 = 0xFFFFFF00.ToVector4();
        public int RemainingTime = 8;
    }
}

鎧袖一触

~Lv2~{"Name":"M8S 鎧袖一触","Group":"AAC Cruiserweight M4 Savage","ZoneLockH":[1263],"ElementsL":[{"Name":"ビット ドーナツ","type":1,"radius":15.0,"Donut":12.0,"refActorNPCID":13850,"refActorRequireCast":true,"refActorCastId":[42084],"refActorComparisonType":4,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0},{"Name":"ビット 円","type":1,"radius":22.0,"refActorNPCID":13850,"refActorRequireCast":true,"refActorCastId":[42083],"refActorComparisonType":4,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0},{"Name":"半面焼き 左","type":3,"refX":30.0,"refY":20.0,"offX":-30.0,"offY":20.0,"radius":20.0,"refActorNPCID":13844,"refActorRequireCast":true,"refActorCastId":[42079],"refActorComparisonType":4,"includeRotation":true,"AdditionalRotation":1.5707964,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0},{"Name":"半面焼き 右","type":3,"refX":30.0,"refY":20.0,"offX":-30.0,"offY":20.0,"radius":20.0,"refActorNPCID":13844,"refActorRequireCast":true,"refActorCastId":[42081],"refActorComparisonType":4,"includeRotation":true,"AdditionalRotation":4.712389,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0}]}

光の牙

~Lv2~{"Name":"M8S_光の牙_閃光砲&連撃閃光砲","Group":"AAC Cruiserweight M4 Savage","ZoneLockH":[1263],"ElementsL":[{"Name":"閃光砲","type":3,"refY":17.0,"radius":4.0,"refActorNPCID":13848,"refActorRequireCast":true,"refActorCastId":[42078],"refActorComparisonType":4,"includeRotation":true,"onlyVisible":true,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0},{"Name":"連撃閃光砲","type":3,"refY":17.0,"radius":4.0,"refActorNPCID":13848,"refActorRequireCast":true,"refActorCastId":[42102],"refActorComparisonType":4,"includeRotation":true,"onlyVisible":true,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0}]}

ハウリングブレード_剛刃一閃

~Lv2~{"Name":"M8S_ハウリングブレード_剛刃一閃","Group":"AAC Cruiserweight M4 Savage","ZoneLockH":[1263],"ElementsL":[{"Name":"サークル1","type":1,"offY":17.5,"radius":8.0,"fillIntensity":0.5,"refActorNPCID":13844,"refActorRequireCast":true,"refActorCastId":[42085],"refActorComparisonType":4,"includeRotation":true,"onlyTargetable":true,"onlyVisible":true,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0},{"Name":"サークル2","type":1,"offY":17.5,"radius":8.0,"fillIntensity":0.5,"refActorNPCID":13844,"refActorRequireCast":true,"refActorCastId":[42828],"refActorComparisonType":4,"includeRotation":true,"onlyTargetable":true,"onlyVisible":true,"refActorTetherTimeMin":0.0,"refActorTetherTimeMax":0.0}]}

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメント一覧 (13件)

  • 二層の「序盤の羽生えて飛んでいくギミックの近接用立ち位置目安」が
    反応しないのですがなにか条件ありますか?

    0
  • 2層の序盤のはねのレイアウト入れても全部OFFになってるからか表示されないし、全部ONにし手も表示されないですね

    0
  • スポットライトの設定はD2だとNE inside と SE insideで良いよね?
    なぜか左半分に安置表示されちゃうんだが
    あきらめて全ヶ所表示で自分の担当のばしょ凝視してる

    0
    • 解決済みかもだけど、一度スプラ消してから再度入れるといいかも。
      あと、
      Once stable Dalamud version is released, type /xlbranch command, select “release” option, click “Pick” button and restart the game to turn off the beta.

      もお忘れずに。
      基本的なことだけど割とみんな忘れてることが多い。

      0
  • スプラはランチャーなしで動かすことは可能でしょうか?
    もしできるのであればい知りたいのですが…こちらでこの内容ですみません。

    0
      • そんなのがあるんですね、それって導入したらスプラ使えるって認識出会ってます?それか新しく導入しないとだめ?

        0
        • その程度の知能ならminionなんかやめとき
          有料な上launcher程親切じゃないから、おとなしくアプデ待っとけ

          9
    • 自動スキル回し以外はランチャーの方が優秀やで、ミニオンの方は全部自分でカスタマイズしないとダメだから大人しく有志の介護が手厚いランチャーをお勧めします

      0

匿名 へ返信する コメントをキャンセル

もくじ