プチコン3号&BIGまとめWiki

Toukou/ファイルをまとめて圧縮 の変更点


#title(投稿プログラム : ファイルをまとめて圧縮)
#contents
// ↑↑↑↑ この2行は削除しないでください。 ↑↑↑↑
//
// ←このように「//」で始まる行はコメントです。ページ本文には反映されません。
//------------------------------------------------------------------------------
// ・投稿年月日は、このページを投稿しようとしている今日の日付を半角数字で入力してください。
//   この日付は、投稿プログラムを自動的に年月日順に並べる際に使用されます。
// ↓↓↓
2015年4月21日投稿
// ↑↑↑
//------------------------------------------------------------------------------
// ・投稿者名は、将来的に投稿プログラム一覧に表示するために使用します。
// ・「名無しさん」のままにしておくと、匿名の方からの投稿として扱われます。
// ↓↓↓
/ 投稿者 : actorbug
// ↑↑↑
//------------------------------------------------------------------------------
// ・適当にタグをつけることができます。半角のコンマ区切りで複数つけられます。
//   タグをつけると、同じタグが付いたページを検索することができます。
// ★次に該当するプログラムは、特定のタグを設定するようご協力お願いします。
//   これらを設定すると、将来的に投稿プログラム一覧に目立つマークが付くようになる予定です。
// ・短いプログラム → 「1行プログラム」「数行プログラム」「1画面プログラム」タグのいずれか1つ
// ・該当するなら「ゲーム」「実用ツール」「音楽」タグのいずれか
// ↓↓↓
/ &tag(投稿プログラム,実用ツール,actorstool);
// ↑↑

//------------------------------------------------------------------------------
// ここに概要とか書きます。
// ・** や *** で始まる行は子見出しとなります。* の数で深さが決まります。
// ・[#英数字] はページ内リンクに使用されるキーワードとなりますが、
//   消してもかまいません。ない場合はランダムな文字列が自動付与されます。
//   逆に、[#英数字] して同じものを増やしてしまった場合、目次からのリンクがちょっとおかしくなります。

* 概要 [#Summary]
プロジェクト内のファイルを、まとめて1つのファイルに圧縮します。

圧縮には、PCで一般的なZIPと同じアルゴリズム(Deflate)を使用しています。~
公式のプロ生ちゃんキャラセット(約2MB)を圧縮すると、120KB(+展開用のプログラム6KB)程度になります。

用途としては以下のものを想定しています。
+ 作品を公開する際のサイズを小さくしたい。(4MBを超えているなど)
+ 普段使わないプロジェクトをまとめておいてプロジェクト数を減らしたい。

* 使い方 [#Usage]
** 圧縮 [#Komidashi1]
+ 圧縮したいプロジェクトで、それぞれのファイルの種類を確認しておく(確認方法は後述)
+ 圧縮したいプロジェクトで「PACK」プログラムを実行
+ 十字ボタン上下でカーソル移動、左右で種類を選択
+ Aボタンで圧縮開始
+ プロジェクト名+「.PKD」という名前のファイルが出来る

** 公開とダウンロード [#Komidashi2]
公開
+ 新たにプロジェクトを作って、「.PKD」ファイルと「UNPACK」プログラムをコピー
+ この2つのファイルが入ったプロジェクトを公開

ダウンロード
+ 公開されたプロジェクトをダウンロード
+ 「UNPACK」プログラムを実行
+ 書き込み確認が何度も出るので、ひたすら「はい」を押す
+ 「.PKD」ファイルと「UNPACK」プログラムの削除確認が出るので、「はい」を押す

** プロジェクトをまとめる [#Komidashi3]
+ 新たにプロジェクトを作って、「SELECT_PACK」「CLEAN_PACK」プログラムをコピー
+ まとめたいプロジェクトを「PACK」プログラムで圧縮する。この時、ゲームの途中経過を保存するセーブファイルは圧縮しない。
+ 「.PKD」ファイルとセーブファイルを1.のプロジェクトにコピー
+ 使いたくなったら「SELECT_PACK」プログラムを実行し、使いたいプロジェクトを選択して展開する。
+ 使い終わったら「CLEAN_PACK」プログラムを実行することで、展開で作成されたファイルが削除される。~
(セーブファイルは削除されないので、途中経過は消えない)

* 種類について [#Komidashi4]
ここで言う「種類」とは、プチコンにおけるファイルの種類のことです。
|~種類|~説明|~アイコン|~リソース名|
|GRP|グラフィックページを保存したもの|山と家|GRP0:〜GRP5:|
|DAT|数値配列を保存したもの|四角が3x3に並んだもの|DAT:|
|PRG|プログラムSLOTを保存したもの|水平線が縦に並んだもの|なし or PRG0:〜PRG3:|
|TXT|文字列を保存したもの|ABC|TXT:|
|---|圧縮したくない場合に選択|||
圧縮時にファイルの種類を正しく指定しないと、圧縮に失敗します。~
最初に表示される種類は、拡張子から機械的に決められたものなので、必ず手動で正しい値を選択してください。

** 種類の確認方法 [#Komidashi7]
以下のいずれかの方法で確認できます。
- 「作品を見る」で該当プロジェクトを開き、下中央の「DAT」ボタンを押すと表示されるアイコンで確認。
- 保存時にファイル名の先頭に付けたリソース名で確認。
- 「PACK」プログラムを実行してみて、Type mismatchエラーになるファイルはGRP、Illegal file formatエラーになるファイルはDAT。

** 例 [#example]
公式のプロ生ちゃんキャラセット「PRONAMA」を圧縮する場合を例に説明します。

まず、「作品を見る」で「PRONAMA」プロジェクトを開き、下中央の「DAT」ボタンを押すと、下画面にこのように表示されます。
#ref(example1.jpg)
左のアイコンから、CHR_PRONAMAがGRP、DEF_PRONAMAとANM_PRONAMAがDAT、PRONAMAがPRGであることがわかります。

次に「PACK」プログラムを「PRONAMA」プロジェクトにコピーして実行します。~
初期状態だと、PRONAMA以外の種類がすべてGRPになっているので、~
十字キーの上下左右でANM_PRONAMAとDEF_PRONAMAの種類をDATに変更します。
#ref(example2.jpg)
この状態でAボタンを押せば、圧縮に成功するはずです。

* 注意 [#Komidashi5]
- 遅いです。公式のプロ生ちゃんキャラセットの圧縮に1分強、展開に30秒強かかります(New3DS)。
- 多次元配列を保存したDATファイルを圧縮することはできません。
- データによっては圧縮できずに、かえってサイズが増える場合があります。
- 「PACK」「UNPACK」という名前のプログラム、「PACKFILE」という名前のデータファイル、「@BACKUP.」で始まるファイル、「.PKD」で終わるデータファイルは圧縮できません。
- まとめたプロジェクトで同じ名前のファイルが使われていると誤動作します。

* 修正履歴 [#Komidashi6]
- 2015/04/23 (木) 22:02:22 圧縮側で圧縮率を下げて少し高速化。展開側を少し高速化。拡張子「.DAT」はDATを「.TXT」はTXTを初期値とする。
- 2015/04/26 (日) 08:38:43 プロジェクトをまとめる機能の追加。圧縮ファイル名を「.PKD」に変更。バイナリファイルのデフォルトをDATに。圧縮前後の比率を表示。
- 2015/05/10 (日) 06:21:38 日本語表記に変更。枠の高さ自動調整。バイナリファイルのデフォルトををGRPに。デフォルトをDATに戻す場合は、24行目の「PUSH T,3」を「PUSH T,4」に変更してください。

* 公開キー [#QR]
プチコン3号用の公開キーです。トップメニューの「作品公開とダウンロード」から公開キーを入力すると、作品をダウンロードすることができます。
#ptcmid(74N3F3D4)

/////////////////////////////////
// コメントを募集したくないなら、ここから下は削除してください

* CHECKER FLAG (ひとことコメント) [#Comments]
この作品に対するコメントがあれば一言どうぞ。(作品に直接関係ない質問や雑談は[[掲示板>Board]]へ)
- ''投稿者'' : Deflateを実装しただけで満足してしまったので、もう圧縮アルゴリズムの開発はしない予定です。すみません。 (&new{2015/04/23 (木) 21:29:26};)
- ''天郷思音'' : うわあさすがパソコンで使われる方法だけあって圧縮がよく効くなぁ自分のを開発する気が失せた(自分のは1/2-1/3くらい) (&new{2015/04/26 (日) 11:20:13};)
- ''BLACK787'' : 凄い有用できる (&new{2015/04/26 (日) 16:22:42};)
- ''投稿者'' : >>天郷思音さん 概要の数字を見てそう思ったのならすみません。あれはたまたまうまく行った場合の話です。この圧縮形式が苦手としているテキストファイルが対象だと、1/2すら行かない場合もあります。 (&new{2015/04/26 (日) 17:40:32};)
- ''iwasaki'' : 開発中のgrp-png変換プログラムに組み込んで公開したいのですがよろしいですか?deflateenc$などいくつかの関数をcommon defに修正すると思います。 (&new{2015/04/27 (月) 13:56:57};)
- ''天郷思音'' : ほう、私の書いた結果もそれなり良好な場合で、いろいろ漢字とか使いまくると悪くなります。 (&new{2015/04/27 (月) 14:43:06};)
- ''投稿者'' : >>iwasakiさん 好きに使っていただいてかまいません。 (&new{2015/04/27 (月) 21:38:07};)
- ''iwasaki'' : ありがとうございます! (&new{2015/04/27 (月) 22:31:33};)
- ''iwasaki'' : おかげさまでGRP画像変換ツール集にPNGサポートを追加できました。ありがとうございました。公開キー:RAV423C4 (&new{2015/05/02 (土) 18:09:04};)
- ''iwasaki'' : ところでzip形式に対応する予定はありますか?PC間でzipファイルをやりとりできたら便利かなぁと。 (&new{2015/05/02 (土) 18:30:41};)
- ''投稿者'' : 今のところ予定はありません。PCとデータをやりとりする環境を作っておらず、検証ができないためです。 (&new{2015/05/02 (土) 19:02:27};)
- ''iwasaki'' : 了解です。GWの宿題として改造してみます!うまくいったら取り込んでもらえたら嬉しいです。 (&new{2015/05/02 (土) 19:26:11};)
- ''BLACK787'' : 使用させて頂きます。あと、このサイトに、リンクをはらせて頂きます。 (&new{2015/05/03 (日) 19:02:10};)
- ''BLACK787'' : ↑↑訂正 このサイトのリンクを張らせてもらいます。 (&new{2015/05/03 (日) 19:11:08};)
- ''iwasaki'' : zipアーカイバですがBETA公開できるところまできました。RBKXNNAEです。これにpack/unpackのUIを追加するつもりです。 (&new{2015/05/05 (火) 13:13:37};)
- ''iwasaki'' : PACKにPZIPを組み込みました。公開キーはPBN3EWQEです。PACK.PRGという名称です。よろしければ取り込んでください。UNPACKについては良い考えが浮かばなかったので、PUNZIPで解凍ということになります。 (&new{2015/05/09 (土) 02:20:33};)
- ''投稿者'' : せっかく作っていただいたのに申し訳ないのですが、解凍プログラムが複数あると混乱を招くおそれがあるので、同梱は見送らせていただきます。こちらに組み込むよりは、PCとデータをやりとりするプログラムに直接組み込んだほうが、使い勝手は良さそうです。 (&new{2015/05/09 (土) 04:20:37};)
- ''iwasaki'' : そうですよね、了解です。 (&new{2015/05/09 (土) 11:32:14};)
- ''スムージー'' : すごい!つかわせていただきます( ̄^ ̄)ゞ (&new{2015/08/01 (土) 10:23:32};)
- ''名無し'' : Toukou/東方崩結録のほうにこれをつかわせていただきました ありがとうございます (&new{2015/11/11 (水) 13:51:55};)
- ''hagetixyan719'' : ↑自分も同じく使わさせて頂きました。もしかして3のを圧縮したのって… (&new{2015/11/19 (木) 01:38:00};)
- ''名無しさん'' : 2次元配列が圧縮できない… (&new{2016/02/20 (土) 18:16:11};)
- ''Newきゃらくたぁ製作所'' : 同じ名前のファイル(TXTとDAT)があった場合はどっちをどっちに指定してもエラー起きたりしませんか?あ、[[Toukou/MKsoft CHAOS]]で使わせていただこうと思っています。 (&new{2016/05/23 (月) 20:12:56};)
- ''、'' : 【PACK】というファイルで圧縮して、出来たとおもったら21行目でエラー。 (&new{2016/07/05 (火) 17:00:37};)

// コメント欄が一番下のコメントの子要素になっていたので空白行追加
- ''Knowledge'' : 参考にして宜しいでしょうか?高度なツールの制作を頑張ってみたいのです。 (&new{2019/04/30 (火) 23:12:01};)

#comment

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.007 秒 | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30