grfファイルの作成と活用
オリジナル要素を追加するためには欠かせない「grfファイル」について見ていきましょう。
1、grfファイルとは
ラグナロクオンラインで使用するgrfファイルとは「Gravity Re-Packed File」の略で、データ圧縮形式の一つです。
クライアントフォルダのdata.grfには4万以上にも及ぶ膨大なゲームデータファイルが圧縮されています。
つまり、ZIPファイルやRARファイルなどと同様に考えれば良いわけです。
「専用ツールが必要な圧縮ファイルと」考えると分かりやすいでしょうか。
≪参考サイト≫
GPF形式のファイルとは
http://www.convert-extensions.com/format/GPF-Ragnarok-Online-Gravity-Re-Packed-File.html
(別タブ or 別ウインドウで開きます)
本サーバーのファイルアップデート方法は、差分パッチとしてgpfファイル(=Gravity Packed File)をダウンロードし、data.grf内に再圧縮していく方法です。
gpfとgrfは同じフォーマットです。拡張子が異なるのは、パッチ用かベース用かの違いを区別しているだけです。
今後オリジナルデータを追加していくにあたり、そのデータ全てをクライアントのdataフォルダに入れるわけにはいきません。grfファイルに圧縮して読み込まないと反映されないファイルもあるからです。
そこでオリジナルのgrfファイルを用意し、各種追加データを読み込ませるための準備を整えましょう。
2、必要なツールのダウンロード
grfファイルを作成するためには専用の圧縮・解凍ツールを使用します。
専用ツールを使えば、新たなgrfファイルを作成するだけでなくdata.grfを展開することもできるため、ゲームデータの吸い出しを行うことも可能です。
まずは以下のサイトにアクセスし、「GRF Factory Japanese Version」をクリックしてファイルをダウンロードしてください。
Clair de lune - ツールダウンロードページ
http://www.valbarossa.com/oops/modules/mydownloads/
xviewcat.php?cid=33
(別タブ or 別ウインドウで開きます)
解凍して出てきたGrfFactory.exeを使用します。
3、grfファイルの作成
実際にツールを使用してgrfファイルを作成してみましょう。
GrfFactoryを起動
ツールを起動すると上記の画面になります。
今回は「構築・実装 > クライアント準備」で作成した「dataフォルダとその中身」をgrfファイルへと圧縮してみましょう。
つまり、接続に必要なデータをgrfファイル化するというわけです。
圧縮するフォルダの選択とgrfバージョンの設定
まずは圧縮したいフォルダを選択しましょう
「フォルダ追加」をクリックします。エクスプローラーが表示されますのでgrfファイルに圧縮したいフォルダを指定しましょう。
dataフォルダ内には、ユーザ設定が保存されているluaファイル(OptionInfo.lua・ChatWndInfo_U.lua・UserKeys_s.lua)が作成されている場合があります。
これらのファイルはユーザー設定情報が保存されているため、dataフォルダ内に残す必要があります。一旦別フォルダによけておきましょう
フォルダを選択すると下図のようにフォルダ内ファイルが一覧表示されます。
次にgrfファイルのバージョンを設定しましょう
初期設定ではバージョン0×103となっていますので、バージョン0×200を選択します。
どちらでも支障はありませんが、現在公式で使用されているdata.grfのバージョンが2.00なので合わせておいた方が無難だと思われます。
圧縮開始
再圧縮をクリックし、出力先とファイル名を決定すれば作成開始されます。出力先に同名のgrfファイルが存在するとエラーが発生します。上書き処理が出来ないようですね。
今回は接続用データを圧縮したので「connect.grf」と名前をつけて保存することにします。
4、作成したgrfファイルを読み込ませるには
通常、クライアントはdata.grfしか読み込みません。
そのためdiffパッチを当てて複数のgrfファイルを使用できるようにし、data.iniファイルで読み込ませるgrfを指定する必要があります。
必要なdiffパッチの適用
「構築・実装 > クライアント準備 > 2、Diffパッチソフトのダウンロードとパッチ適用」で適用済みだと思われますが、まだの場合は以下のパッチを当てましょう。
適用するパッチ
- [Data](7) Enable Multiple GRFs
- 複数のgrfファイルを読み込めるようにするパッチ
このパッチを当てると最大10個までgrfファイルを読み込めるようになります。data.grfの分を除くと、新たに9個が使用可能です。
10個以上を指定しようとすると、クライアントが起動しなくなりますのでご注意ください。
data.iniの設定
クライアントフォルダ内にあるdata.iniを設定します。ファイルが無ければ新たに作成してください。そして中身を以下のように書き換えます。
[Data]
0=
1=
2=
3=
4=
5=
6=
7=
8=
9=data.grf
grfファイルは下から上へと順番に読み込まれます。
そして、異なるgrfファイル間で同名のファイルがあった場合は新しく読み込まれたファイルだけが適用されます。
先ほど作成したgrfファイル名を0から8までのどこかに書き加えます。今回は以下のように記述してみましょう。
[Data]
0=connect.grf
1=
2=
3=
4=
5=
6=
7=
8=
9=data.grf
上記の場合、まずdata.grfが読み込まれ、次いでconnect.grfが読み込まれます。
実はどちらのgrfファイルにも「cliantinfo.xml」が入っています。
ですが上記の並び順にすることで、connect.grf内にあるcliantinfo.xmlだけが適用されるというわけです。
これで設定は完了です。
ログインテストを行い、無事にログインできるかどうか試してみてください。
5、GrfFactoryの使いこなし術
このツールは他にも色々と使用方法があります。ここではdata.grfの展開方法と、grfファイル同士を合わせて再圧縮する方法をご紹介します。
data.grfを展開してみる
ツールを起動し、「ファイルを開く」をクリックします。ここでdata.grfを選択すると中身が表示されますので、「全てを展開」をクリックします。ファイル数が多いので、少し時間がかかるかもしれません。
特定のファイルだけを展開する場合は必要なファイルをクリックして選択し、「展開」をクリックします。
読み込んだgrfファイルのあるフォルダ内に「data」という名前で解凍されます。既にdataフォルダがある場合は上書きされてしまいますので、一時的にdata.grfをデスクトップなどに移動してから展開しましょう。
また、「*.spr」などで検索すると、特定の拡張子のみを抽出できます。
検索結果に表示されたファイルを選択し、「展開」をクリックすることで必要なデータだけを抜き出す事ができます。
grfファイルに新たなファイルを再圧縮してみる
前項と同様にgrfファイルを読み込みます。その後「ファイル追加」をクリックして別のgrfファイルを読み込みましょう。
すると上記のような画面になります。「+」と表示されている部分が新たに追加されるファイルです。最初に読み込んだファイルとの差分ということになりますね。後は「再圧縮」をクリックし、保存すればOKです。
韓国クライアントから最新データを抜き出すことが可能です。
data.grfを読み込んだ後に韓国クライアントの「rdata.grf」を読み込めば、data.grfには存在しないファイルが「+」と表示されます。つまり、+がついたファイルだけを選択して展開すれば最新データの差分をとることができます。
6、ぜひ複数のgrfファイルを使い分けましょう!
オリジナル要素を追加していくと、編集が必要なファイル数が山のように増えていきます。
単一のgrfファイルに全てのファイルを詰め込むと、どれが何に必要なファイルなのか判らなくなる可能性があります。
そこで「フォルダごと圧縮する」というgrfファイル作成の特性を生かし、追加要素のカテゴリー毎にフォルダ分けを行うと便利です。
そしてフォルダごとにgrfファイルを作成すれば管理が楽になるでしょう。
以下に、私が使用しているdata.iniの設定をご紹介します。
私の場合はデータの入れ替えや修正が多いので、細かく分けておいた方が便利に感じました。
[Data]
0=1.grf ……オリジナル髪型(不具合修正)・基本パレット
1=2.grf ……拡張パレット(髪色・服色)
2=3.grf ……オリジナルアイテム・オリジナル装備用
3=4.grf ……オリジナルマップのマップデータ用
4=5.grf ……マップ追加に必要なテキストファイル用
5=6.grf ……オリジナルモンスター・NPC用
6=7.grf ……タイトル画面・ロード画面などの画像用
7=8.grf ……オリジナルスキル・エフェクト・職業用
8=9.grf ……接続データ用
9=data.grf