環境の準備 - (2008/10/12 (日) 00:56:24) の編集履歴(バックアップ)
はじめに(用意するもの)
MODの開発をする為に用意するもの。
Module System
いわゆる「ソース」と呼ばれているもの。
現在はVer0.960対応のものがリリースされている。
DL先:http://forums.taleworlds.net/index.php/topic,39256.0.html
現在はVer0.960対応のものがリリースされている。
DL先:http://forums.taleworlds.net/index.php/topic,39256.0.html
Python
Pythonはオープンソースのプログラム言語。WikipediaのPythonの頁
Module Systemをいじった後にコンパイルする為に必要になる。
DL先:http://www.python.org/download/
Module Systemをいじった後にコンパイルする為に必要になる。
DL先:http://www.python.org/download/
Pythonをインストールしたら、どのディレクトリからでもPythonを呼び出せるようにPathの設定をする。
環境変数PATHの設定:http://www.pythonweb.jp/install/setup/index1.html
(環境変数PATHを反映させるため再起動する必要があるかもしれない)
環境変数PATHの設定:http://www.pythonweb.jp/install/setup/index1.html
(環境変数PATHを反映させるため再起動する必要があるかもしれない)
Mount&Blade本体
コンパイルした後、テストするときに必要、Module Systemとバージョンを合わせておくこと。EnableEditModeにするとMod制作に便利なコアンドが使える。方法はゲーム起動>Configure>Advanced>EnableEditModeにチェック
自分のMODを作る準備
\Mount&Blade\Modules\にあるNativeというフォルダをコピーして好きな名前にする。半角英数字が無難である。
Module Systemの中のmodule_info.pyを開いて出力するパスを設定する。パスの設定にはスラッシュ</>を使いバックスラッシュ<\>を使わないこと。
たとえばnewmodというフォルダならば、
C:/Program Files/Mount&Blade/Modules/newmod/
という具合である。
次にModule Systemフォルダの中のbuild_module.batをダブルクリックするとコンパイルが始まる。
Module Systemの中のmodule_info.pyを開いて出力するパスを設定する。パスの設定にはスラッシュ</>を使いバックスラッシュ<\>を使わないこと。
たとえばnewmodというフォルダならば、
C:/Program Files/Mount&Blade/Modules/newmod/
という具合である。
次にModule Systemフォルダの中のbuild_module.batをダブルクリックするとコンパイルが始まる。
Module System内のファイルの説明
Module Systemフォルダの中には次のようなファイルがある。
header_で始まるファイル
process_で始まるファイル
ID_で始まるファイル
module_で始まるファイル
この中でMOD製作者が変更できるのはModuleで始まるファイルである。
header_で始まるファイル
process_で始まるファイル
ID_で始まるファイル
module_で始まるファイル
この中でMOD製作者が変更できるのはModuleで始まるファイルである。
- module_animations.py
- アニメーション
- module_constants.py
- 定数に関する設定
- module_dialogs.py
- NPCとの会話の設定
- module_factions.py
- ファクション
- module_game_menus.py
- ゲームメニュー
- module_info.py
- コンパイル時の出力パスの設定
- module_items.py
- アイテム
- module_map_icons.py
- マップアイコン
- module_meshes.py
- ゲームオープニングやゲーム中に挿入される挿絵の定義
- module_mission_templates.py
- 戦闘や町や村など3D画面状態で呼び出される記述
- module_music.py
- 音楽
- module_particle_systems.py
- パーティクル
- module_parties.py
- 町や村、城の初期の位置を設定する。
- module_party_templates.py
- パーティーのを構成する部隊などの基本的な設定
- module_presentations.py
- クレジットや戦闘中のマップ画面やエンディングの設定
- module_quests.py
- クエスト
- module_scene_props.py
- 町や村を構成するオブジェクトに関する設定
- module_scenes.py
- 平原や森林などランダムな地形生成と町や村の地形の設定
- module_scripts.py
- ゲーム中繰り返し呼び出されるスクリプトの記述
- module_simple_triggers.py
- フィールドマップ状態で呼び出される記述
- module_skills.py
- スキル
- module_skins.py
- キャラクタの顔、髪型、ひげ、性別、声、流血などと、馬の設定
- module_sounds.py
- 効果音
- module_strings.py
- 文字列
- module_tableau_materials.py
- 家紋の入った旗、鎧、盾とゲームログウインドウに出てくるキャラクタの肖像
- module_triggers.py
- フィールドマップ状態で呼び出される記述
- module_troops.py
- LooterやSeaRaiderなどの部隊
- module_variables.py
- 不明
Module Systemの詳しい解説(英語)
http://forums.taleworlds.net/index.php/board,12.0.html
http://forums.taleworlds.net/index.php/board,12.0.html
Mount & Blade Mod Makers Q&A Thread
http://forums.taleworlds.net/index.php/topic,6575.0.html
http://forums.taleworlds.net/index.php/topic,6575.0.html
他のMODからアイテムを移植する
作業をはじめるまえに自分のMODのファイルを用意する。新しく作る必要があるなら
\Mount&Blade\Modules\
にある"Native"というフォルダをコピーして好きな名前をつけること。次にModule.iniというファイルを開き、
scan_module_textures = 0 を
scan_module_textures = 1
と編集する。これは新しいMODのテクスチャフォルダを参照させるためです。
\Mount&Blade\Modules\
にある"Native"というフォルダをコピーして好きな名前をつけること。次にModule.iniというファイルを開き、
scan_module_textures = 0 を
scan_module_textures = 1
と編集する。これは新しいMODのテクスチャフォルダを参照させるためです。
さて、新しく追加したいアイテムのデータを調べてみましょう。追加する元のMODのResourceフォルダを見てください。中に拡張子がBRFというファイルがあるでしょうか?BRFファイルはメッシュデータとテクスチャやマテリアルの設定のためのデータがあります。それからTexturesフォルダの中にはDDSという拡張子の画像データがあるでしょうか?もし、自分の必要なデータがどれか分からない時、少し乱暴ですが、すべてのResourceフォルダとTexturesフォルダの中身を、新しいMODにコピーするといいでしょう。
もし必要なデータのみを移植したいならそれらを取り出す作業があります。BRF Editというツールをダウンロードしてください。
http://members.iinet.net.au/~dstent/mnb/BRFEdit0-8-95.exe
DDSファイルをExprolerでサムネイル表示させるには(DDS Thumbnail Viewer)
http://developer.nvidia.com/object/dds_thumbnail_viewer.html
次にBRFEditを起動して、Files>SettingからMount&Bladeへのパスを設定します。そしてあなたのMOD(Module)を選びます。
File>Openから移植したいBRFを開きます。注意して欲しいのですが、先ほど述べたように、BRFのデータにはMeshとMaterialとTextureがあり、それらがすべてセットになったデータもあれば、それぞれ別のファイルになっている場合もあります。どれかMeshのデータを探して開いてください。非常にデータがたくさんあり、自分の欲しいメッシュの名前が分かっている場合、(秀丸等で)Grep検索すると早いでしょう。必要なメッシュが見つかったらNameとMaterialの名前をメモしてください。NameとMatrialの下にMeshとMaterialのタブがあるのが分かるでしょうか?MaterialのタブをクリックしてDiffuseのところの名前をメモしてください。これはDDSファイルになります。メモし終わったら、File>Newを押してあたらしいBRFファイルを作ります。(もし元のファイルをいじってしまって、セーブしますかときかれた場合は、セーブしないでください)。Importというボタンを押してください。必要なBRFファイルを選び、必要なMeshのデータを選んでください。他に移植したいMeshがあれば作業を繰り返します。Saveして分かりやすい名前をつけます。(たとえばnewitems.brf)
次にMaterialも同様に必要なデータを探して新しいBRFファイルを作ります(たとえばnewmaterials.brf)
次にtextureも同様に必要なデータを探して新しいBRFファイルを作ります(たとえばnewtextures.brf)
BRFファイルはあなたの新しいMODのResourceフォルダに保存してください。
必要なDDSファイルはあなたの新しいMODのTexturesフォルダにコピーしてください。
もし必要なデータのみを移植したいならそれらを取り出す作業があります。BRF Editというツールをダウンロードしてください。
http://members.iinet.net.au/~dstent/mnb/BRFEdit0-8-95.exe
DDSファイルをExprolerでサムネイル表示させるには(DDS Thumbnail Viewer)
http://developer.nvidia.com/object/dds_thumbnail_viewer.html
次にBRFEditを起動して、Files>SettingからMount&Bladeへのパスを設定します。そしてあなたのMOD(Module)を選びます。
File>Openから移植したいBRFを開きます。注意して欲しいのですが、先ほど述べたように、BRFのデータにはMeshとMaterialとTextureがあり、それらがすべてセットになったデータもあれば、それぞれ別のファイルになっている場合もあります。どれかMeshのデータを探して開いてください。非常にデータがたくさんあり、自分の欲しいメッシュの名前が分かっている場合、(秀丸等で)Grep検索すると早いでしょう。必要なメッシュが見つかったらNameとMaterialの名前をメモしてください。NameとMatrialの下にMeshとMaterialのタブがあるのが分かるでしょうか?MaterialのタブをクリックしてDiffuseのところの名前をメモしてください。これはDDSファイルになります。メモし終わったら、File>Newを押してあたらしいBRFファイルを作ります。(もし元のファイルをいじってしまって、セーブしますかときかれた場合は、セーブしないでください)。Importというボタンを押してください。必要なBRFファイルを選び、必要なMeshのデータを選んでください。他に移植したいMeshがあれば作業を繰り返します。Saveして分かりやすい名前をつけます。(たとえばnewitems.brf)
次にMaterialも同様に必要なデータを探して新しいBRFファイルを作ります(たとえばnewmaterials.brf)
次にtextureも同様に必要なデータを探して新しいBRFファイルを作ります(たとえばnewtextures.brf)
BRFファイルはあなたの新しいMODのResourceフォルダに保存してください。
必要なDDSファイルはあなたの新しいMODのTexturesフォルダにコピーしてください。
もう一度あなたの新しいMODのフォルダのModule.iniを開きます。ファイルの最後に以下を追加します。例:
load_mod_resource = newtextures
load_mod_resource = newmaterials
load_mod_resource = newitems
Texture>Material>Meshの順番で読み込まないとエラーが出るので注意してください。
次にmodule_items.pyを開きます。あたらしいItemの挿入する位置は適当にすると不具合が起こります。既存のアイテムを上書きするか、一番最後に挿入するようにしましょう。
["new_item", "Dragon slayer", [("newitem",0)], itp_type_polearm|itp_merchandise・・・・・]
カンマで区切られた3番目のデータがメッシュの名前です。先ほどメモしたメッシュの名前を入れます。名前は同じものがあるとエラーになるので注意してください。
最後のitp_merchandiseは店で扱うかどうかを決めます。店で扱う時は2日ごとに在庫が変わるのでゲーム中で最低2日待ってください。より確実に反映させるには新しくゲームを開始する必要があるかもしれません。
build_module.batを実行してコンパイルします。あなたのMODを起動して実際に反映しているか確認してください。(もしくはMount&Blade実行中にCtrl+MでModuleの再読み込みをします)
load_mod_resource = newtextures
load_mod_resource = newmaterials
load_mod_resource = newitems
Texture>Material>Meshの順番で読み込まないとエラーが出るので注意してください。
次にmodule_items.pyを開きます。あたらしいItemの挿入する位置は適当にすると不具合が起こります。既存のアイテムを上書きするか、一番最後に挿入するようにしましょう。
["new_item", "Dragon slayer", [("newitem",0)], itp_type_polearm|itp_merchandise・・・・・]
カンマで区切られた3番目のデータがメッシュの名前です。先ほどメモしたメッシュの名前を入れます。名前は同じものがあるとエラーになるので注意してください。
最後のitp_merchandiseは店で扱うかどうかを決めます。店で扱う時は2日ごとに在庫が変わるのでゲーム中で最低2日待ってください。より確実に反映させるには新しくゲームを開始する必要があるかもしれません。
build_module.batを実行してコンパイルします。あなたのMODを起動して実際に反映しているか確認してください。(もしくはMount&Blade実行中にCtrl+MでModuleの再読み込みをします)