Ad
1: 2018-05-06 (Sun) 19:20:12 njf source Edit Backup No.1 as current. Cur: 2018-05-06 (Sun) 19:39:06 njf source Edit
Line 23: Line 23:
  <string>{126,111}</string>   <string>{126,111}</string>
  </dict>   </dict>
 +
 +この中のdict二階層下の「<key>MLRSPanel0000</key>」とかの部分がフレーム名で、dict三階層目の「<string>{{4,4},{126,111~}}</string>」とかが、スプライトシート上のその画像の左上の座標と幅、高さをピクセルで表したものです。
 +
 +まず、この部分を取り出すPythonのスクリプトを書きました。
 +
 + from bs4 import BeautifulSoup
 + import sys
 + import os
 + import re
 + 
 + argvs = sys.argv
 + 
 + 
 + if len(argvs) < 2 :
 +     print "no file name"
 +     quit()
 + 
 + fileName = argvs[1]
 + 
 + if not os.path.exists(fileName):
 +     print "file does not exist"
 +     quit()
 + 
 + p = re.compile(u"[{|}|]")
 + p2 = re.compile(u",+")
 + 
 + with open(fileName, 'r') as f:
 +     bf = BeautifulSoup(f.read(),"html.parser")
 +     dictAll = bf.dict.dict
 +     frameName = ""
 +     for d in dictAll:
 +         if d.name == "key":
 +             frameName = d.get_text()
 +         elif d.name == "dict":
 +             for dd in d:
 +                 if dd.name == "string":
 +                     print frameName, p2.sub(u" ",p.sub(u"",dd.get_text()))
 +                     break
 +
 +このスクリプトの名前を「readSpCocos2ToCut.py」とすると、plistファイルを引数として
 +
 + python readSpCocos2ToCut.py texture.plist > texture.list
 +
 +を実行すれば、「texture.list」というファイルの中に、フレーム名、左上x座標、左上y座標、幅、高さのみを一覧にした以下のようなデータが書き込まれます。
 +
 + MLRSPanel0000 4 4 126 111
 + UpgradeIcon0000 134 4 28 18
 + artilleryPanel0000 166 4 118 68
 +
 +次に、ImagiMagickのconvertコマンドを使った以下のシェルを書き、「cropTexture.sh 」という名前で保存します
 + cat $1 | while read FN TL TT W H
 + do
 +  convert $2 -crop "$W"x"$H"+$TL+$TT  $FN.png
 + done
 +
 +そして先ほどのリストのファイルとtextureのpngファイルと実行すると、フレーム名のついたpngファイルが製作されます。
 +
 + sh cropTexture.sh texture.list texture.png


Front page   Edit Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 324, today: 2, yesterday: 2
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF