
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@akashic-extension/ss2asa
Advanced tools
SpriteStudio形式のファイルををakashic-animation形式にコンバートするコマンドラインツール。
ss2asa
は Node.js
で動作します。以下のコマンドでインストールできます。
$ npm install -g @akashic-extension/ss2asa
npx が利用できる環境では ss2asa
を直接呼び出すこともできます。
npx -p @akashic-extension/ss2asa ss2asa project-file.sspj
Akashic Engineの詳細な利用方法については、 公式ページ を参照してください。
SpriteStudioのプロジェクトファイルを渡してください。関連ファイル(ssae,ssce)を含めすべてコンバートします。
ss2asa project-file.sspj
出力されるファイルは次のように対応します。
SpriteStudio | akashic | 備考 |
---|---|---|
sspj | asapj | プロジェクトファイル |
ssae | asabn, asaan | ボーンファイルとアニメーションファイル |
ssce | asask | スキンファイル |
ヘルプを表示します。
バージョンを表示します。
出力先ディレクトリを指定します。存在しない時、ディレクトリを作成します。
出力ファイルのファイル名に次の接頭辞を加えます。
ファイル形式 | 接頭辞 |
---|---|
asapj | pj_ |
asabn | bn_ |
asaan | an_ |
asask | sk_ |
asaef | ef_ |
asaanファイル名(アニメーション名が用いられる)の前にssaeファイル名が加わります。2つの間は_
で区切られます。
例: ss2asa -l jobs.sspj
input:
jobs.sspj
├── fighter.ssae
│ ├── attack
│ └── walk
└── healer.ssae
├── attack
└── walk
output:
fighter_attack.asaan
fighter_walk.asaan
healer_attack.asaan
healer_walk.asaan
これは同一プロジェクト内の異なるssae間でアニメーション名の重複があった時、出力されるファイルが上書きされることを避けるための機能です。
この時各アニメーションデータの持つnameプロパティはロングネーム化されたファイル名と同じものになります。開発者はロングネームでアニメーションを指定してください。
すべてのアセットデータをまとめてasapjファイルに出力します。
例(contentsプロパティ内の関係のないものは省略):
{
"version": "3.0.0",
"type": "bundle",
"contents": [
{
"type": "project",
"name": "stickman",
"data": {
"userData": {}
}
},
{
"type": "bone",
"name": "stickman",
"data": {}
},
{
"type": "skin",
"name": "stickman",
"data": {}
},
{
"type": "animation",
"name": "anime_1",
"data": {}
}
]
}
SpriteStudio上で目玉アイコンを用いて非表示にしたパーツとそのアニメーションを削除します。
-p
オプションで出力ファイル名に加わる接頭辞を指定します。asapj,asabn,asask,asaan形式それぞれについて、この並びでカンマ区切りで指定します。デフォルトはpj_,bn_,sk_,an_
です。
実行時の出力に詳細情報を含めます。
ユーザデータを出力します。
ラベルをユーザデータ形式で出力します。-u
オプションが有効である必要があります。ユーザデータキーフレームはルートボーンのアニメーションとして追加されます。プロパティ名はlabel
です。
ボーン、スキン、アニメーションの有効な組み合わせの情報をasapjファイルのユーザデータとして出力します。contents.userData.combinationInfo
プロパティからアクセスできます。
例(contentsプロパティ内の関係のないものは省略):
{
"version": "2.0.0",
"contents": {
"userData": {
"combinationInfo": [
{
"boneName": "stickman",
"animationNames": [
"anime_1",
"anime_1_bezier",
"anime_1_liner"
],
"skinNames": [
"stickman"
]
}
]
}
}
}
asapjファイルと関連するファイルの一覧をasapjファイルのユーザデータとして出力します。contents.userData.relatedFileInfo
プロパティからアクセスできます。
例(contentsプロパティ内の関係のないものは省略):
{
"version": "2.0.0",
"contents": {
"userData": {
"relatedFileInfo": {
"boneSetFileNames": [
"stickgirl.asabn",
"stickman.asabn"
],
"skinFileNames": [
"stickgirl.asask",
"stickman.asask"
],
"animationFileNames": [
"stickgirl_anime_1.asaan",
"stickman_anime_1.asaan",
"stickman_anime_1_bezier.asaan",
"stickman_anime_1_liner.asaan"
],
"imageFileNames": [
"stickgirl.png",
"stickman.png"
]
}
}
}
}
アニメーションのレイアウト情報を出力します。contents.userData.layoutSizes
プロパティからアクセスできます。
ポーターを指定します。ポーターは各種データをシリアライズする前に加工・変換するものです。
現在は aop
(Array Oriented Porter) を指定できます。aop
を指定すると、ファイルサイズが削減されます。
aop を適用したファイルを読み込むことができる Akashic Animation は 4.2.0 以降になります。
Akashic Animation で利用できない属性を無視します。
ポーターを検証するデバッグ機能です。通常使用することはありません。
Node.js のモジュールとして呼び出すこともできます。
var ss2asa = require("@akashic-extension/ss2asa");
ss2asa.convert({
projFileName: "stickman.sspj",
outDir: "./out",
addPrefix: true
});
※ TypeScript で利用する場合、 @akashic/akashic-engine
の型定義ファイルを tsconfig.json
で指定する必要があります。
{
"compilerOptions": {
...
},
+ "files": [
+ "node_modules/@akashic/akashic-engine/lib/main.d.ts"
+ ]
...
}
projFileName: string
(required)
outDir: string
(required)
addPrefix?: boolean
(default: false
)
verbose?: boolean
(default: false
)
bundleAll?: boolean
(default: false
)
prefixes?: string[]
(default: []
)
asaanLongName?: boolean
(default: false
)
deleteHidden?: boolean
(default: false
)
labelAsUserData?: boolean
(default: false
)
outputUserData
が true
の場合)outputUserData?: boolean
(default: false
)
outputComboInfo?: boolean
(default: false
)
outputRelatedFileInfo?: boolean
(default: false
)
outputLayoutSize?: boolean
(default: false
)
以下のアトリビュートのアニメーションをサポートします。
akashic-animationは再生するアニメーションの0フレーム目がキーフレームでない時、0フレーム目に初期値を与えます。初期値は属性により異なります(次の表参照)。
属性 | 値 |
---|---|
X,Y座標 | 0, 0 |
Z回転 | 0 |
X,Yスケール | 1, 1 |
ローカルX,Yスケール | 1, 1 |
アルファ | 1 |
ローカルアルファ | 無し |
セル | 無し |
セル中心座標 | 0, 0 |
セルUV | 0, 0 |
優先順位 | 0 |
イメージ左右反転 | 無し |
イメージ上下反転 | 無し |
可視・不可視 | 可視 |
円アタリ判定半径 | 0 |
水平フリップ | 無し |
垂直フリップ | 無し |
ユーザデータ | 無し |
最終フレームがキーフレームでない時も同様に値を与えます。この値は最後のキーフレームと同じ値になります。
akashic-animationで再生したアニメーションがSpriteStudioと異なるとき、第0フレーム、最終フレームのいずれかまたは両方をキーフレームにすることで解決することがあります。
以下の補間方法をサポートします。
次の補間方法をサポートしていません。
ss2asa
はセルマップの参照するイメージのアセット名として、もとのイメージファイル名から拡張子を除いたものをasaskファイルに保存します。たとえば"stickman.png"のアセット名は"stickman"となります。
もしgame.jsonで指定されるイメージアセット名がファイル名から拡張子を除いたものでない時、実行時エラーとなります(game.jsonの更新にakashic-cli
を使用している限りそのような不整合は起こりません)。
ss2asaはNULLパーツの持つ属性値の内、以下のもののみを出力します。
akashic-animationはSpriteStudioの全機能をサポートしていません。サポートされない機能を誤って用いることを防ぐため、初期設定から編集可能な属性を選択することをお勧めします。
以下の手順はバージョン 5.5.1.5759 で確認しました。
注意: この設定は新規プロジェクトに対して適用されます。既存のプロジェクトについてはこの設定が完了後、改めてプロジェクト設定を編集してください。
属性名 | |
---|---|
✔ | 参照セル |
✔ | X座標 |
✔ | Y座標 |
Z座標 | |
X軸回転 | |
Y軸回転 | |
✔ | Z軸回転 |
✔ | Xスケール |
✔ | Yスケール |
✔ | ローカルXスケール |
✔ | ローカルYスケール |
✔ | 不透明度 |
✔ | ローカル不透明度 |
✔ | 優先度 |
✔ | 左右反転 |
✔ | 上下反転 |
✔ | 非表示 |
カラーブレンド | |
頂点変形 | |
✔ | 原点Xオフセット |
✔ | 原点Yオフセット |
Xアンカー | |
Yアンカー | |
Xサイズ | |
Yサイズ | |
✔ | イメージ左右反転 |
✔ | イメージ上下反転 |
✔ | UV X移動 |
✔ | UV Y移動 |
UV 回転 | |
UV Xスケール | |
UV Yスケール | |
✔ | 当たり半径 |
✔ | ユーザーデータ |
インスタンス |
本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。
ただし、画像ファイルおよび音声ファイルは CC BY 2.1 JP の元で公開されています。
FAQs
Convert SpriteStudio files to akashic-animation files.
We found that @akashic-extension/ss2asa demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.