DAO GFF WIP

http://social.bioware.com/wiki/datoolset/index.php/GFF

を見ながらGFFを読み込むプログラムの作成を試みる。

ヘッダ読み込みOK。構造体配列も問題なし。フィールド配列もおk。

で、肝心の欲しいデータが埋まっているRaw Data Blockを読み込みたいのだが、途端にドキュメントの情報が無くなってしまう。

どこかにデータを参照するためのmimic pointersなるものが埋まっているはずなのだが、上記の難なく読めた部分には存在しなかった。Raw Data Blockの先頭からの逐次読み込みでは、バイナリ見て見当をつけれるデータはサルベージできても、順序よく並んでいなかったのでデータの階層構造は得ることができず使うことができない。となると参照に必要なアドレスはRaw Data Blockに埋まっているはずなのだが、Raw Data Blockの情報は無いし、どうもGFFの中でも各種ファイルタイプ別に割と自由奔放に定義されているような雰囲気なので探すのに骨が折れそう。今のところは見当もつかない。

tlkファイルは構造体配列もフィールド配列も個数が1つで、階層構造もあってないようなものと非常にシンプルなので、力業でもなんとかなりそうなのだが、目的のdlgファイルの階層構造は結構複雑なので応用できなさそうだった。

OfficialのProjectsページにGFFをダンプするツールがアップロードされていたが、これもRaw Data Blockには手を着けていない。やっぱり情報が無くて難しいと言うことなんだろうか。もう一つはconversationを検索する機能をもっているのだが、データベース上のエクスポートされる前のデータを参照しているような感じで、ソースは公開されて無い。残念。

DAO memo

BiowareのEngineを覗くのは初なので今更なのだが、会話の親子関係はdlgファイルにあるっぽいなあ。

本家のdlgはrimファイルで固められているのでこれをtoolsetで開いて解凍する。これを開くとtoolsetでdlgをデータベース上に作ったようなツリー状態では何故か見れないのだが、構造体そのまんまっぽいのはが参照できる。で、確かに親子関係は記されている模様。IDはdlg単位では割とまとまっているものの、IDだけでは親子は判断できない雰囲気だ。

dlgファイルの中の構造体は多分そのまんまなので一部の型のサイズをいくらに定義しているか分かればなんとかなりそうだが、dlgファイルそのものの構造はどうなってるのかな。
自力で調べるよりも海外サイト探した方が楽かもしれない。

(追記)余裕であった。Bioware流石やで。

http://social.bioware.com/wiki/datoolset/index.php/GFF

Arcanum: Of Steamworks & Magick Obscura part.3

Black Rootの居酒屋でお話してたら、Danteが仲間に。基本的に仲間になるまで名前が不確定名だ。DanteはDernholmの税金徴収クエスト後に王と和解してグループから外れるのだが、クエスト完了時にWaitさせて一時的に外しておくことで、そのまま仲間として連れて行ける模様。

バレバレな低スキルのProwling(いわゆるSneaking)をするとNPCの視線をこちらに向けることができる。これは常にその場に立っていて動かないNPCにも有効。これを利用することで、スキルが足りなくてばれてしまうような位置にある扉やチェストの解錠などもできたり。

武器に書いてあるFTってのはこちらのFatigue消耗値かと思っていたが、相手に与えるFatigue減少値のことなのかも。斧とかハンマーとかの重い武器でぶん殴られるとあっという間にFatigueが尽きて動けなくなって死んでしまう。

偶にNPCが壁に向かって突っ込んで消失してしまう。戦闘時に追いかけられてる最中にひたすら逃げ回ってると発生しやすかったり。特にTarantの見せ物屋(博物館?)の近くで夜から朝へと時間経過させると、支配人とGarが出勤する際に同じ部屋のドアから出ようとする。するとお互いに経路がぶつかるのだが、これをGarが迂回しようとして確実に壁に突っ込んで消滅する。まあ、Garは仲間にするのが遅かったようでレベルが低いので、自由にしてFate Pointになってもらうことに。
ちなみにこの見せ物小屋、Falloutで登場するBrahminの剥製が置いてあります。

メインクエストでIsle of Despairへ。巨大な壊れた機械(潜水艦らしい)が横たわっているのだが、こういうのってなんだか良いなあ。しかもAncientなのでロストテクノロジーらしい。絵的にもFallout 2のSpecial Encounterのクジラに似ているなと思った。あれは元ネタありますが、こっちもあるのかな?
この島でのキーパーソンのThorvaldは仲間にならなかった。十分説得できそうだったのだが、どうもレベルが足りなかったらしい。この段階でレベル23以上って周回してやり馴れた人じゃないと中々到達しない気がする。

Dragon Age: Origins JP

進められないということは、いつものように英語のまま進めてクリアして満足してしまう、ということは無くなるので、これを逆手にとって日本語化プロジェクトに参加しました。別段、英語が得意というわけでは無いのですが…やれる範囲で頑張りたいと思います。

よろしくお願いいたします。

Dragon Age: Origins JP wiki

JPMOD Wiki Dragon Age: Origins 日本語化プロジェクト

Dragon Age: Origins part.3

駄目だ、とにかく設定を変えてもクラッシュする。ドライバも変えまくってみたが駄目だったし、あらゆることは試してみたのでもうこっちではどうにもならん。forum見たら大勢というわけではないが、同じようにrandom crashesに悩まされる人もいる模様。

お陰で殆ど進まなかった。まあCampでひたすらMorriganと話し込んでいた所為もあるが、Lotheringでは進行不能に近い頻度でクラッシュorフリーズするし。

マシンの負担も馬鹿にならんだろうし、しばらく別のゲームでもやるかな。そういえばATIにあわせて作ったといえば、Sourceエンジンへのドライバ対応も酷かった。8800Ultra購入当初のドライバのバージョンでは動いていたのだが、その後の1年くらいは起動直後に死亡するようになっていて、忘れた頃にまともに動くようになっていたなあ。

日本語化の役に立つかなと気晴らしにtlkのIDでツリー状に仕分けしてしてみるツールなんぞを作ってみたりしたのだが、大体の会話の塊は分かるものの、toolsetで確認出来るようなツリー状の会話の前後関係はやっぱり含まれていないような。前後関係が分かると大分翻訳しやすくなるとは思うのだが残念。IDの付け方の法則にもよるんだろうが、恐らくはカットシーンとかの別のファイルに含まれているんだろう。ということは、まずはtoolsetの使い方からか。

とりあえずゲーム本編の方。

ジャーナルから会話ログを参照することは可能なので、一応後から読み返すことができる。

Lotheringに入ってから急にといった感じなのだが、重要そうなNPCやオブジェクトの上にこれ見よがしに”!”をつけるのは止めようよ。ネトゲじゃあるまいし、雰囲気台無しだ。

Morriganが仲間になる。結構面白い。
*Campでお話。
Lotheringへ行く。
追い剥ぎをどうにかする。
*Priestと商人のもめ事をどうにかする。
*迷子の子供をどうにかする。
*TavernでLoghainの部隊連中にいちゃもんつけられる。
*Lelianaが仲間になる。
(*はサブクエストまたは小さなイベント。)