しお/シェルの差分の作り方・基礎
の編集
index.php?%E3%81%97%E3%81%8A/%E3%82%B7%E3%82%A7%E3%83%AB%E3%81%AE%E5%B7%AE%E5%88%86%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9%E3%83%BB%E5%9F%BA%E7%A4%8E
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
殊海夕音/FINE/template
* シェルの差分の作り方・基礎 [#a6dc7f79] このページでは、サーフェスの変化のある部分だけを切り抜いて、ベースサーフェスに重ねる方法を紹介します。~ 今後、変化のある部分だけの切り抜きを「差分」と呼びます。~ シェルのサーフェスすべてを、表情など変わる部分以外の絵もふくめて用意すると、すごい容量になります。~ それにPNAファイルまでついてくるとなると、ファイル数も相当なものになります。~ 容量が大きければ、ユーザさんのDLの時間やHDDの圧迫にも関わってくるので、軽くしましょう。~ ~ ** 0.初めに [#qa1c1e8c] すごく簡単な例として、Surface Manを用意しました。~ このゴーストを使って説明しています。~ &attachref(./surface_basic.nar);~ ~ ** 1.必要な部分をピックアップする [#qa1c1e8c] まず、Surface Manのマスターシェルを見てください(shell/master)。ごく普通の差分のないタイプのシェルです。~ このシェルであれば、顔部分しか変わっていないので、他は余分ということが分かります。~ なので、切り抜いてしまいましょう。~ &attachref(./i_sb01.png); 変わっているのはグリーンの部分だけなので、surface01.pngとsurface02.pngはこのようになりました。~ 顔部分だけになってしまったので、surface01.pnaとsurface02.pnaのPNAファイルは不要です。~ ~ ** 2.surfaces.txtを書く [#qa1c1e8c] 今の状態でサーフェスを適用すると、差分失敗のシェル(shell/difference)と同じように、生首だけ表示されてしまいます。~ かっこわるいので、surfaces.txtを書き換えましょう。~ surface1を例にとると、~ surface1 { collision0,9,153,141,182,Change } と現在書かれています。これに「element」を記述します。~ elementは差分をどうやって配置するかといった指示をします。~ この場合であれば、~ surface1 { element0,overlay,surface00.png,0,0 element1,overlay,surface01.png,20,20 collision0,9,153,141,182,Change } となります。~ 以下にelementの記述を一行づつ解説します。~ ~ *** element0,overlay,surface00.png,0,0 [#k28ac390] この指示を文章として読むと「0のエレメントにsurface00.pngをx0・y0の位置に重ねます」です。~ Surface Manはsurface00.pngがすべてのサーフェスのベースですので、element0にsurface00.pngを指定します。~ そして位置指定は、surface0と位置を変えなくていいので、0,0です。~ ~ *** element1,overlay,surface01.png,20,20 [#k28ac390] これもelement0とほぼ同じ指示です。 一つだけ違うのは、位置指定がされていることです。~ これをelement0と同じように0,0に指定してしまうと、顔がものすごくズレます。~ surface00.pngのx0・y0に重ねる指定になっているからです。~ この位置を指定するには、元の切り出し画像の左上隅からx・yいくつのところから切り出したか、その値を入れればいいわけです。~ Surface Manであれば、~ &attachref(./i_sb02.gif); 顔部分の左横と上の暗いピクセル数が、surface01.pngの位置指定の値です。~ この指定が面倒くさければ、右の例のように、左上隅x0・y0から目的のところまで切ってしまうと楽です。~ ~ surface2も同じように記述を加えてください。~ ~ ** 3.余分な部分を塗りつぶす [#qa1c1e8c] この状態で差分としてはぼぼできているのですが、たぶん差分成功/pna処理失敗のシェル(shell/almost)を適用したときのように、表情が変わると目の上のフチにわずかなジャギーが出ているはずです。~ これは個別に差分用のPNAファイルを用意してやっても消せますが、ファイルを増やさずに対処できます。~ はみ出している部分を透過色で塗りつぶしてしまいましょう。~ &attachref(./i_sb03.png); これだけです。~ ~ ~ 最終的に差分成功のシェル(shell/better)と同じになっていれば成功です。~ お疲れさまでした。~ ~ **コメント [#v73fcc6a] #comment(below)
タイムスタンプを変更しない
* シェルの差分の作り方・基礎 [#a6dc7f79] このページでは、サーフェスの変化のある部分だけを切り抜いて、ベースサーフェスに重ねる方法を紹介します。~ 今後、変化のある部分だけの切り抜きを「差分」と呼びます。~ シェルのサーフェスすべてを、表情など変わる部分以外の絵もふくめて用意すると、すごい容量になります。~ それにPNAファイルまでついてくるとなると、ファイル数も相当なものになります。~ 容量が大きければ、ユーザさんのDLの時間やHDDの圧迫にも関わってくるので、軽くしましょう。~ ~ ** 0.初めに [#qa1c1e8c] すごく簡単な例として、Surface Manを用意しました。~ このゴーストを使って説明しています。~ &attachref(./surface_basic.nar);~ ~ ** 1.必要な部分をピックアップする [#qa1c1e8c] まず、Surface Manのマスターシェルを見てください(shell/master)。ごく普通の差分のないタイプのシェルです。~ このシェルであれば、顔部分しか変わっていないので、他は余分ということが分かります。~ なので、切り抜いてしまいましょう。~ &attachref(./i_sb01.png); 変わっているのはグリーンの部分だけなので、surface01.pngとsurface02.pngはこのようになりました。~ 顔部分だけになってしまったので、surface01.pnaとsurface02.pnaのPNAファイルは不要です。~ ~ ** 2.surfaces.txtを書く [#qa1c1e8c] 今の状態でサーフェスを適用すると、差分失敗のシェル(shell/difference)と同じように、生首だけ表示されてしまいます。~ かっこわるいので、surfaces.txtを書き換えましょう。~ surface1を例にとると、~ surface1 { collision0,9,153,141,182,Change } と現在書かれています。これに「element」を記述します。~ elementは差分をどうやって配置するかといった指示をします。~ この場合であれば、~ surface1 { element0,overlay,surface00.png,0,0 element1,overlay,surface01.png,20,20 collision0,9,153,141,182,Change } となります。~ 以下にelementの記述を一行づつ解説します。~ ~ *** element0,overlay,surface00.png,0,0 [#k28ac390] この指示を文章として読むと「0のエレメントにsurface00.pngをx0・y0の位置に重ねます」です。~ Surface Manはsurface00.pngがすべてのサーフェスのベースですので、element0にsurface00.pngを指定します。~ そして位置指定は、surface0と位置を変えなくていいので、0,0です。~ ~ *** element1,overlay,surface01.png,20,20 [#k28ac390] これもelement0とほぼ同じ指示です。 一つだけ違うのは、位置指定がされていることです。~ これをelement0と同じように0,0に指定してしまうと、顔がものすごくズレます。~ surface00.pngのx0・y0に重ねる指定になっているからです。~ この位置を指定するには、元の切り出し画像の左上隅からx・yいくつのところから切り出したか、その値を入れればいいわけです。~ Surface Manであれば、~ &attachref(./i_sb02.gif); 顔部分の左横と上の暗いピクセル数が、surface01.pngの位置指定の値です。~ この指定が面倒くさければ、右の例のように、左上隅x0・y0から目的のところまで切ってしまうと楽です。~ ~ surface2も同じように記述を加えてください。~ ~ ** 3.余分な部分を塗りつぶす [#qa1c1e8c] この状態で差分としてはぼぼできているのですが、たぶん差分成功/pna処理失敗のシェル(shell/almost)を適用したときのように、表情が変わると目の上のフチにわずかなジャギーが出ているはずです。~ これは個別に差分用のPNAファイルを用意してやっても消せますが、ファイルを増やさずに対処できます。~ はみ出している部分を透過色で塗りつぶしてしまいましょう。~ &attachref(./i_sb03.png); これだけです。~ ~ ~ 最終的に差分成功のシェル(shell/better)と同じになっていれば成功です。~ お疲れさまでした。~ ~ **コメント [#v73fcc6a] #comment(below)
テキスト整形のルールを表示する
添付ファイル:
surface_basic.nar
1778件
[
詳細
]
i_sb03.png
1561件
[
詳細
]
i_sb01.png
1478件
[
詳細
]
i_sb02.gif
1435件
[
詳細
]