「Module System/Document by Jik (2)」の編集履歴(バックアップ)一覧に戻る
Module System/Document by Jik (2) - (2009/02/12 (木) 17:45:15) のソース
*M&B Module System Documentation PART4-6 PART1-3は[[コチラ>Module System/Document by Jik (1)]] ---- #contents ---- ***&aname(part4){PART4} この章ではパーティテンプレートを扱います。 PART2で学んだパーティと混同しないように注意してください。 簡単に言うと、パーティテンプレートはmap上に出現するパーティのガイドラインです。 パーティはmap上のユニークな存在なのに対して、テンプレートはゲーム内では見えません。 パーティテンプレートIDが与えられている場合、そのパーティIDへ入力する操作は無効となります。 パーティテンプレートは&bold(){module_party_template.py}にあります。 ****4.1 Module_Party_Templatesの意味 party_templates =[, で始まるパイソンのリストは、最初にいくつかのハードワイヤードなテンプレートを含みます。その部分は編集してはいけません。 module_party_templateのタプルはmodule_partiesのそれとよく似ています。 しかし互換性はありません。 パーティテンプレートの例を見てみます。 >("village_farmers","Village Farmers",icon_peasant,0,fac_innocents,merchant_personality,[(trp_farmer,5,10),(trp_peasant_woman,3,8)]), このテンプレートのパーティは”famers”と呼ばれます。 (訳注:これはVillege Farmersのはず 。恐らくJIK氏が修正し忘れています。) このパーティはfarmerとpeasant womanによって構成され、臆病に行動します。 またゲーム中に接触すると自動的にダイアログが始まります。 (フラグpf_auto_start_dialogが抜けていますが、全てのパーティが接触によって自動的にダイアログが始まるからでしょうか) タプルの意味を見ていきます。 1)パーティテンプレートID。他のファイルからの参照に使います。 2)パーティテンプレートの名前。このテンプレートを使うパーティの名前になります。 3)フラグ。header_parties.pyに使用可能なフラグの表があります。 4)メニュー。module_partiesと同じく非推奨で、0を入れます。 5)ファクション。 6)パーソナリティ。map上でのパーティの行動を決めるフラグが入ります。 7)スタックリスト。最大6スタックまで可能です。 7.1)兵士ID。 7.2)最少人数。 7.3)最大人数。 7.4)メンバーフラグ(オプション)。メンバーに関するフラグを追加できます。 例:(trp_swadian_crossbowman,5,14,pmf_is_prisoner) Villege Farmersのタプルを当てはめてみます。 1)パーティテンプレートID = "village_farmers" 2)パーティテンプレートの名前 = "Village Farmers" 3)フラグ = icon_peasant 4)メニュー = 0 5)ファクション = fac_innocents 6)パーソナリティ = merchant_personality 7)スタックリスト 7.1)兵士ID = trp_farmer, trp_peasant_woman 7.2)最少人数 = 11, 16(訳注:これも修正し忘れ。正しくは5, 3) 7.3)最大人数 = 22, 44(訳注:同上。10, 8) 7.4)メンバーフラグ = なし もうタプルを読むのにも慣れてきたことでしょう。 この中で他と違うのは6番目、パーソナリティのフラグです。 次節ではこのフラグの役割を扱います。 ****4.2 パーソナリティ 前の節で触れたとおり、パーソナリティはmap上でパーティの行動を決定します。 パーティの勇気(courage)と攻撃性(aggressiveness)を直接指定したり、 merchant_personalityのようなプリセットを指定できます。 プリセットは勇気と攻撃性を含む定数で、header_parties.pyの一番下で定義されています。 ex. merchant_personality = aggressiveness_0 | courage_7 攻撃性0のパーティは他のパーティを一切攻撃しません。 攻撃性8では、攻撃側と防御側の関係が悪く、また防御側が数で大きく勝っていない場合に攻撃します。 勇気はどれ位の大きさのパーティから逃げるかを決定します。 勇気が高いほどは数が多い相手からも逃走しにくくなります。 この値は0から15の範囲で自由に決められます。 しかしMODDING初心者にはプリセットの利用を薦めます。 プリセットは初めてのMODに使うには十分実用的です。 最後にフラグ banditnessについて触れておきます。 このフラグはパーティを盗賊として、近くのパーティに常に注意し、獲物が大量の金/交易品を持っている場合は攻撃するようにします。 盗賊が軍隊に襲い掛からないように、攻撃性を低くするかパーティの人数を少なく抑えたほうがよいでしょう。 ****4.3 新しいテンプレートの作成 "farmers"のタプルをリストの最後尾にコピー&ペーストして手を加えます。 >(&bold(){"new_template","new_template"},icon_peasant,0,fac_innocents,merchant_personality,[(trp_farmer,5,10),(trp_peasant_woman,3,8)]), Idを“farmers”を”new_template”に、名前も同様に変更しました。更に手を加えていきます。 まずファクションをfac_neutralに、パーソナリティをsoldier_personalityに変更します。 >("new_template","new_template",icon_peasant,0,&bold(){fac_neutral},&bold(){soldier_personality},[(trp_farmer,5,10),(trp_peasant_woman,3,8)]), これにより中立勢力となり、また敵の部隊を攻撃するようになりました。 更に兵士の構成も変更します。 >("new_template","new_template",icon_peasant,0,fac_neutral,soldier_personality,[&bold(){(trp_npc17,1,1),(trp_new_troop,16,44)}]), この例は幾つかの重要な変化を含んでいます。 特に重要なのは”(trp_npc17,1,1)”が入ったことで、PART3で作ったGeoffrey君がこの部隊に入りました。 ヒーローユニットは唯一無二なので当然その数は1です。 部下としてtrp_new_troopを追加します。これもPART3で作った兵士です。 最少で16人、最多44人の“new troop”がパーティに入ります。 セーブしてビルドします。成功すれば新しいテンプレートが利用可能になります。 しかし新しいテンプレートを利用するパーティが存在しないので、ゲームを起動してもGeoffrey君の部隊は出現しません。 後の章ではテンプレートの部隊の出現方法を学びますが、 とりあえず今はGeoffrey君とその仲間達は置いておいて、 PART5では新しいアイテムの作り方を学びます。 ***&aname(part5){PART5} ***&aname(part6){PART6}