Inside SDK

インストールしてはあるものの殆ど起動したことの無いTwo Worlds SDKにはどんな機能があるのかなと、あれこれ触ってみる。

まずはLevel Editor。Earth Seriesでおなじみのと言えば分かりやすいだろうか。基本的にはEarth-4 Engineのはずなので、確かにLevel Editorは同じものになっちゃうだろう。

そして、Script Editor。Script LanguageはC++。Compileは付属のCompilerで行うんだけど、MingwというかGCCそのものだ。含まれているScriptsにはReality PumpのEngineerによるコメントも入っているので、Poland語が読めれば分かりやすいかもしれない。

SDKに含まれるFile Setを眺めて気がついたのは、SDKには恐らく全て含まれちゃっているという感じ。EngineのSource Codeはもちろん含まれていないけれど、Customized Earth-4 Engineの上に構築されたTwo Worldsそのものの全てが入っている。他にもParticle Editor、Tree Generator、そしておなじみWD形式のArchive作成Toolと必要なもの全部入っちゃって良いのかなという感じだ。

SDKに含まれていないWD Archive用のTool。そしてTranslation用のLang Editorなんかも基本的にはEarth Seriesと同じ。こちらもInside Two WorldsからDownload出来る。Modderのための…ではあるけれど、基本的にはTwo Worlds本体を開発するためのKitが公開されているわけだ。

確かにここまで含まれていると、「ありとあらゆることが出来るので、SDKの配布はコントロールしたい」とどこかのInterviewで話していたのも頷ける感じだ。もっとも、本人認証などを要求されるわけではないので、Contolといっても緩やかな感じではあるけれど。

広告

Inside SDK」への4件のフィードバック

  1. SDKにフォントファイルは含まれているんでしょうか?
    含まれているなら日本語表示にトライしてみたいと考えているのですが…

    • SDK は script, effects, map, 等を編集、作成するもので font は含まれていません。

      font は game 本体の install の一部として wd packages のどれかに含まれていると思います。

      Earth-4 engine なので wdpackager と、LangEdit を入手すれば language.wd を展開して翻訳された string table の作成は難しくないと思います。

      ただ font は raster font ではないかと思うので、そこがかなり手間ではないかと思います。

  2. なるほど、SDKにはTwoWorldsの実装部のソース・リソースは含まれていないということですね。
    SDKがあれば何とかななるかも…と思ったのは甘かったようです。
    FontsCache/FNT_Index_*.xfn
    Fonts/Index_1.dat
    この2つがフォントファイルと思うんですが、ファイル構造の解析をするなら、かなり時間がかかりそうですね。

    • Earth-4 の source そのものは流石についてきませんが、ほぼ C とでも言える (Earth-C という C variant で pre-process して gcc で compile します) Main Quest その他は一応全て存在している感じです。

      Interface 定義部に Font の 定義はあるのですが、Cryptic で、これを edit してどうこうというのはかなり難しい気はします。例としては:

      Fonts
      {
      0: Index_1 , 18, 400, 0, 0xFFD7D7C6, 1, 1, 0xFF000000

      こんな感じの cryptic な定義だったりします。ちなみに、font の問題さえ解消できれば原理的には CJK を含めた multi-laguage の使用は問題ないはずです。Earth-4 engine は UNICODE (UCS2 LE) の使用が可能で、文字列に関連する functions には全て W とつく wide character 用の api も用意されています。Interface 関連の API は、ANSI または Wide string のどちらかを arg として受け取ることが出来ます。(というか2重に定義されています)

      void SetQuestTitle(int nQuestUID, string strTitle)
      void SetQuestTitle(int nQuestUID, stringW pszTitle)
      void SetQuestDescription(int nQuestUID, string strDescription)
      void SetQuestDescription(int nQuestUID, stringW pszDescription)

      ただし、in-game 中で font を dynamic に変更するための API などは用意されていないので、font の仕組みを解明する、というところにかなり手間取りそうです。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中