丸ダイスの卓上開発日誌

個人ゲーム開発者「丸ダイス」のページです! がんばりますね!

Skyboxを一発でテクスチャセットとして出力するPhotoshopプラグイン

Skyboxを一発でテクスチャセットとして出力するPhotoshopプラグイン

作りました

f:id:marudice:20170328025222p:plain こんな感じの画像(4096x3072px) から f:id:marudice:20170328025336p:plain こんな感じにSkyboxで必要なテクスチャをsuffix付きで同じフォルダに出力します。

Photoshopプラグインを入れる方法は君自身の手で見つけ出してくれ!

// OutputSkyboxTexes.jsx
var size = 1024;

function saveOne(doc, suffix, x_idx, y_idx)
{
  var clone = doc.duplicate();
  clone.crop([x_idx*size, y_idx*size, (x_idx+1)*size, (y_idx+1)*size])
  docName = doc.fullName.fsName.toString();

  fileName = docName.substr (0, docName.length - 4) + "_" + suffix;
  pngSaveOpt = new PNGSaveOptions();
  pngSaveOpt.interlaced = false;

  saveFileObj = new File(fileName);
  //保存する
  try {
      clone.saveAs(saveFileObj, pngSaveOpt, true, Extension.LOWERCASE );
      clone.close(SaveOptions.DONOTSAVECHANGES);
  } catch(msg) {
      alert(msg + " 保存できませんでした");
  }
}

function main()
{
  var doc = activeDocument;
    try {
        //ファイル名を取得
        docName = doc.fullName.fsName.toString();
    } catch(msg) {
        alert(msg + " 一度どこかにセーブしてから実行して下さい");
        return;
    }


  saveOne(doc, "up", 2, 0);
  saveOne(doc, "left", 3, 1);
  saveOne(doc, "front", 2, 1);
  saveOne(doc, "back", 0, 1);
  saveOne(doc, "right", 1, 1);
  saveOne(doc, "down", 2, 2);
}

//本体実行
main();

ココが便利!

フィルターとか色調補正とか、Skyboxを調整してはUnityで確認して…の作業が格段に早くなります! いっそAssetフォルダ内にpsdごと放り込んでもいいカモ。

More

↑は、1枚のSkybox用Textureが1024x1024ですが、sizeをいじれば512x512とかも出来ます。 saveOne(doc, “up”, 2, 0); … の繰り返しのとこを変えれば、サイコロ展開図の位置関係が多少違っても対応出来ます。

おわり!