LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 3 years have passed since last update.

クラス構文とjsonデータを使ってキャラクターを一括で登録するプラグイン(V5以上向け)

Posted at

はじめに

ティラノスクリプトで、chara_newタグとchara_faceタグによるキャラクターの情報登録作業が、同じようなタグの記述で面倒に感じたのでそれを一括登録するプラグインを作りました。
表情差分パーツキャラクターの登録も出来ます。

導入方法

解凍して出てきた character_manager フォルダを、
data/others/plugin/ 下にコピーしてください。
その後、first.ks に以下のタグを記述してください。

[plugin name="character_manager"]

追加されるタグとパラメーター

[character_manager]

  • src
    • 【必須】読み込むjsonファイルを指定してください。jsonファイルは others フォルダ以下に配置してください。
  • type
    • 普通のキャラクターを登録する場合は normal、表情差分パーツキャラクターを登録する場合は parts を指定してください。
    • デフォルトは normal
  • var
    • 上級者向けのパラメーターです。このプラグインではクラス構文を使用しており、インスタンスする際のティラノ変数を独自で指定することが出来ます。
    • デフォルトは sf.character_manager
  • time
    • jsonファイルを読み込む時間をミリ秒で指定します。秒数が短すぎると、jsonファイルが読み込まれない場合があるのでご注意ください。
    • デフォルトは 10 [ミリ秒]

使い方

jsonファイルの用意

このプラグインではjsonファイルを使用します。
プラグインのフォルダ内にサンプルファイルがあるので、実際に使用する際はその書式と則って記述してください。

jsonファイルを直打ちするのは少し面倒なので、jsonファイルエディタの使用を推奨します。

_NORMAL.json

.../character_manager/_NORMAL.json
{
    "akane": {
        "param": {
            "jname": "アカネ",
            "storage": "chara/akane/normal.png",
            "width": "none",
            "height": "none",
            "reflect": false,
            "color": "none"
        },
        "face": {
            "happy": "chara/akane/happy.png",
            "sad": "chara/akane/sad.png"
        }
    },
    "yamato": {
        "param": {
            "jname": "ヤマト",
            "storage": "chara/yamato/normal.png",
            "width": "none",
            "height": "none",
            "reflect": false,
            "color": "none"
        },
        "face": {
            "happy": "chara/yamato/happy.png",
            "sad": "chara/yamato/sad.png"
        }
    }
}

_NORMAL.jsonファイルは、普通にキャラクター登録をする際に使用するjsonファイルのサンプルファイルです。
各キー・値の説明は以下の通りです。

{
    "[chara_new]のname": {
        param: {
            "jname": "[chara_new]のjname",
            "storage": "[chara_new]のstorage",
            "width": "[chara_new]のwidth",
            "height": "[chara_new]のheight",
            "reflect": "[chara_new]のreflect",
            "color": "[chara_new]のcolor"
        },
        face: {
            "[chara_face]のface": "[chara_face]のstorage"
        }
    }
}

_PARTS.json

_NORMAL.jsonファイルは、表情差分パーツキャラクターを登録する際に使用するjsonファイルのサンプルファイルです。

このファイルでは、fgimage/partsフォルダ以下の差分パーツを置いているものとしています。

  • back_hair.png
  • body_back.png
  • body_front.png
  • head.png
  • face_back.png
  • face_front.png
  • eye.png
  • hair_front.png
.../character_manager/_PARTS.json
{
    "test": {
        "param": {
            "jname": "Test",
            "storage": "color/empty.png",
            "width": 600,
            "height": 800,
            "reflect": "none",
            "color": "none"
        },
        "hair_back": {
            "zindex": 0,
            "face": {
                "default": "parts/hair_back.png"
            }
        },
        "body_back": {
            "zindex": 1,
            "face": {
                "default": "parts/body_back.png"
            }
        },
        "body_front": {
            "zindex": 2,
            "face": {
                "default": "parts/body_front.png"
            }
        },
        "head": {
            "zindex": 3,
            "face": {
                "default": "parts/head.png"
            }
        },
        "face_back": {
            "zindex": 4,
            "face": {
                "default": "parts/face_back.png"
            }
        },
        "face_front": {
            "zindex": 5,
            "face": {
                "default": "parts/face_front.png"
            }
        },
        "eye": {
            "zindex": 6,
            "face": {
                "default": "parts/eye_normal.png",
                "close": "parts/eye_close.png"
            }
        },
        "hair_front": {
            "zindex": 7,
            "face": {
                "default": "parts/hair_front.png"
            }
        }
    }
}

各キー・値の説明は以下の通りです。

{
    "[chara_new]のname": {
        "param": {
            "jname": "[chara_new]のjname",
            "storage": "[chara_new]のstorage",
            "width": "[chara_new]のwidth",
            "height": "[chara_new]のheight",
            "reflect": "[chara_new]のreflect",
            "color": "[chara_new]のcolor"
        },
        "[chara_layer]のpart": {
            "zindex": "[chara_layer]のzindex",
            "face": {
                "[chara_layer]のid": "[chara_layer]のstorage"
            }
        }
    }
}

値を空欄にしたい場合は "none" を記述してください。

タグを記述

実際に使用する際は _SAMPLE.ks のコードのように使用出来ます。

_SAMPLE.ks
[plugin name="character_manager"]

[character_manager type="normal" src="plugin/character_manager/_NORMAL.json"]
[character_manager type="parts" src="plugin/character_manager/_PARTS.json"]

[layopt layer="0" visible="true"]

[chara_show name="akane"]
[chara_show name="yamato"]
[l]
[chara_mod name="akane" face="sad" wait="false"]
[chara_mod name="yamato" face="sad"]
[l]
[chara_hide_all wait="true"]
[chara_show name="test"]
[l]
[chara_part name="test" eye="close" time="500"]
[s]

_SAMPLE.ksのプレビューの様子の動画があるので、よろしければどうぞ。

【URL】
https://twitter.com/i/status/1268103493975371781

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up