どちらもSFFとAIRファイルの編集が出来る (SAEはSNDも) ツールですがいろいろと使い勝手が違うのでちょっと比較。
やりたいことは
ということ。ココでの問題はSffAirMakerとSAEでCSV形式が違うということ。
スクリプト書いた。いじょ。
SffAirMakerとSffAirEditorのCSV形式を相互変換するスクリプト (AWK) を結局書いた。ので、共有しておこう。
SffAirMakerのCSV
<グループ>, <No>, <Pos X>, <Pos Y>, <独立パレット (1:独立, 0:共有)>, <ファイル名>サンプル
9000, 1, 0, 0, 1, Ayane-09000-00001, bmp0, 0, 114, 280, 0, Ayane-00000-00000, bmp0, 1, 113, 280, 0, Ayane-00000-00001, bmp0, 2, 113, 280, 0, Ayane-00000-00002, bmp0, 3, 112, 281, 0, Ayane-00000-00003, bmp0, 4, 112, 282, 0, Ayane-00000-00004, bmp0, 5, 111, 284, 0, Ayane-00000-00005, bmp0, 6, 108, 284, 0, Ayane-00000-00006, bmp0, 7, 105, 284, 0, Ayane-00000-00007, bmp0, 8, 97, 282, 0, Ayane-00000-00008, bmp0, 9, 88, 281, 0, Ayane-00000-00009, bmp0, 10, 92, 280, 0, Ayane-00000-00010, bmp0, 11, 108, 280, 0, Ayane-00000-00011, bmpSffAirEditorのCSV
"<ファイル名>",<グループ>,<No>,<Pos X>,<Pos Y>,<パレット共有(0:独自, 1:共有)>サンプル
"0000 9000-000.bmp",9000,0,0,0,0"0001 0000-000.bmp",0,0,114,280,1"0002 0000-001.bmp",0,1,113,280,1"0003 0000-002.bmp",0,2,113,280,1"0004 0000-003.bmp",0,3,112,281,1"0005 0000-004.bmp",0,4,112,282,1"0006 0000-005.bmp",0,5,111,284,1"0007 0000-006.bmp",0,6,108,284,1"0008 0000-007.bmp",0,7,105,284,1"0009 0000-008.bmp",0,8,97,282,1"0010 0000-009.bmp",0,9,88,281,1"0011 0000-010.bmp",0,10,92,280,1ファイル名の位置変更と共有パレットフラグの反転を行えれば問題はなさそう。
SffAirMaker→SffAirEditor
#!gawk## sam2sae.awk## SffAirMaker形式のCSVをSffAirEditor形式のCSVに変換するfunction trim(str, tmp) { tmp = str; sub(/^[ \t]+/, "", tmp); sub(/[ \t]+$/, "", tmp); return tmp;}BEGIN { FS=",";}{ shared = 0; if (trim($5) == "0") { shared = 1; } else { shared = 0; } printf("\"%s.%s\",%s,%s,%s,%s,%d\n", trim($6), trim($7), trim($1), trim($2), trim($3), trim($4), shared);}SffAirEditor→SffAirMaker
#!gawk## sae2sam.awk## SffAirEditor形式のCSVをSffAirMaker形式のCSVに変換するfunction trim(str, tmp) { tmp = str; sub(/^[ \t]+/, "", tmp); sub(/[ \t]+$/, "", tmp); return tmp;}BEGIN { FS=",";}{ shared = 0; if (trim($6) == "0") { shared = 1; } else { shared = 0; } filename = trim($1); sub(/^\"+/, "", filename); sub(/\"+$/, "", filename); split(filename, filenames, "."); printf("%s, %s, %s, %s, %d, %s, %s\n", trim($2), trim($3), trim($4), trim($5), shared, filenames[1], filenames[2]);}