OblivionWikiJP
(避難所)
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
(
+
) |
ヘルプ
|
ログイン
]
開発資料/コンパニオン改造手引/GG_CJE解体新書
をテンプレートにして作成
開始行:
**はじめに
このチュートリアルはGG Companion Japnese Edition v.1.1(...
本チュートリアルをより理解するための下準備として、GGをゲ...
それではチュートリアルをはじめましょう。
**オブジェクトの名前について
まずはMODを作る際の注意を少ししたいと思います。CSを開いて...
#ref(GG_T_001.jpg)
こうして変更するオブジェクトの名前を統一しておくことは、...
ちなみに、別々のMOD同士の中で、ID名が偶然にも同じになって...
それではGGを導入するとどのような変更が行われるのか、実際...
**MapMarkerについて
GGを入れてゲームをスタートすると、MAP画面にValeria’s Camp...
#ref(GG_T_002.jpg)
上のピクチャーはそのMapMarkerのプロパティです。「Visible...
それでは実際にValeriaに会いに行って見ることにします。ファ...
**NPCの動作について
演出としてコンパニオンが仲間になる以前には、他のNPCと同様...
**AIパッケージについて
オリジナルのNPCが日々生活をしているように振舞えるのは、AI...
ただ、日常生活だけを送るNPCとは異なり、コンパニオンはプレ...
#ref(GG_T_003.jpg)
リストを見てみると、どうやらGG〜から始まる新しく作成した9...
#ref(GG_T_004.jpg)
その項目をダブルクリックして開いて、ScheduleタブのDuratio...
**Conditionsについて
Conditionとは「条件」という意味ですが、これはMODを作成し...
スクリプト初心者の方はTES4CSHLPのScript/Conditionを参照し...
さて条件設定ですが、この「GGValWander」の場合ならば、GGの...
#ref(GG_T_004.jpg)
Conditionsタブのリスト項目、上から4番目の項目を見てくださ...
「今コンパニオンがいるセル(場所)の情報を得て、それがSki...
ようにここでは設定されています。
「Condition Function」とは条件を設定する際に用いる関数の...
さて、ここでセットされた「GetInCell」とは「そのセルの情報...
そして「Function Parameters」でその得られたセルの情報と比...
「Comparison」は比較という意味で、そこには「==」が入って...
それでは次の設定項目であるValueが「1」とはどういうことな...
これは「GetInCell」という関数がどんな機能を持っているかを...
この条件設定タブウィンドウで行う設定をスクリプトで記述す...
if GetInCell SkingardHouseforSale == 1
→そのコンパニオンをうろうろさせる
ということになります。
もしその場所がSkingardHouseforSaleならば「1 == 1」なので...
それでは話を条件設定タブに戻します。タブの右下にある「OR...
これで条件設定を一通り見ましたが、実は「Condition Functio...
例えばリストの2番目の項目は「GetRandum Percent」という関...
またリストの1番目の「GetScriptVariable」は対象となってい...
こういった変数はそれだけを見てもどんな条件を設定している...
他のパッケージもこのような要領で設定してありますので、い...
**クエストの概略について
さて彼女に話しかければ当然会話が返ってくるわけですが、会...
まずTESで用いられる会話はクエスト単位で制御されています。
ここでいうクエストとはメインツールバーの「Q」のボタンを押...
#ref(GG_T_005.jpg)
この場所はTESのデーターベースと言ってよい場所で、ゲーム上...
また会話の編集作業は、個々のNPCのプロパティのDialogueボタ...
#ref(GG_T_006.jpg)
しかし、このウィンドウでは新しいTopicを追加できない仕様な...
たとえばネズミ退治のクエストと、それに関連するNPCを2人新...
**GGのクエストについて
それではGGのクエストはどうなっているのでしょうか?
ツールバーのQUESTSボタンでQUESTウィンドウを出して調べると...
ここで気をつけるのは、クエストは会話のデーターベースとし...
GGValeriaDoOnceというクエストを見てください。
#ref(GG_T_005.jpg)
ここには会話も書かれていませんし、クエスト履歴として機能...
**スクリプトの添付場所について
もともとスクリプトはオブジェクトに添付されることでその機...
もう少し言うと、Valeria自身にもスクリプトが添付されていま...
1つはその実行される頻度の問題です。
NPCに貼られたスクリプトはNPCのAIが実行される頻度と同じで...
2つ目は使用できるスクリプトの違いです。
NPCに貼られたスクリプトにはリファレンススクリプト(参照ス...
これらスクリプトの属性を考えてGGはスクリプトを添付する場...
私はGGの場合、そんなに属性のことは考えず、主にそのGGに使...
実際、2つ目のリファレンススクリプトか、ノンリファレンスス...
(余談になりますが、GGの場合ノンリファレンススクリプトを...
また実行頻度の問題もコンパニオンはもともとプレイキャラク...
ただこれから新しいスクリプトを作成しようとする人は、スク...
**Valeriaとの会話
さてこれからは実際にValeriaと会話することにより彼女に命令...
初めてValeriaと話すと彼女はオリジナルのGreetingを使った挨...
**Result Scriptについて
それでは実際にValeriaの会話の一部を見て見ましょう。
「Editar ID」リストから「GGValeriaJoin」を探して開いてみ...
ここで焦点を当てるのはResult Scriptの使い方です。これはゲ...
#ref(GG_T_007.jpg)
「そうね・・・あなたは一見してイヤな感じでもないし〜」と...
GGValCamp.disable
set GGValeriaQuest.bIsCompanion to 1
set GGValeriaQuest.bDoClass to 1
「GGValCamp.disable」はつまりValeria's Campを無効にしろと...
次に「set GGValeriaQuest.bIsCompanion to 1」ですが、これ...
**変数の使い方について
変数はその中に主に数字をとっかえひっかえ入れ替えて使用す...
変数を宣言した時にはその変数の中には数字の「0」が入ってい...
今「bIsCompanion」に1をセットしました。
これはValeriaがコンパニオンになったという状態を表すもので...
これにより、例えば下のピクチャのValeriaのステータスを見る...
#ref(GG_T_008.jpg)
Conditionsのリストの真ん中の項目に注目すると、「bIsCompan...
変数はこのような会話の表示のオン・オフという小さな事柄か...
なお、他の人が作成したMODにおいて、それら変数を見るとき、...
最後に「set GGValeriaQuest.bDoClass to 1」ですが、これは...
具体的には557行以下の
if GGValeriaQuest.bDoClass == 1
MessageBox "彼女の戦闘スタイルを決定してください: ",...
set GGValeriaQuest.bDoClass to 0
endif
に処理が引き継がれます。
MessageBox関数はゲーム上にメッセージを表示させるものであ...
これ以降の行でどのようにしてクラスが決定されるているかは...
**GGのスクリプトの使い方について
GGのスクリプトの構造は万事がこのような形で作られています...
if GGValeriaQuest「何かの変数」 == 1
→行動をする(例えばステータスを表示させたり、戦闘の方法...
といった形をとるわけです。
Result Scriptでそれらスクリプト処理をそのまま書き込んでし...
そんなわけで、1行で終わるような短いスクリプトでないのなら...
**終わりに
最初はGGの機能に着目して、随時そのスクリプトの記述は何を...
拙いチュートリアルになりましたが、これがあなたのMOD製作の...
終了行:
**はじめに
このチュートリアルはGG Companion Japnese Edition v.1.1(...
本チュートリアルをより理解するための下準備として、GGをゲ...
それではチュートリアルをはじめましょう。
**オブジェクトの名前について
まずはMODを作る際の注意を少ししたいと思います。CSを開いて...
#ref(GG_T_001.jpg)
こうして変更するオブジェクトの名前を統一しておくことは、...
ちなみに、別々のMOD同士の中で、ID名が偶然にも同じになって...
それではGGを導入するとどのような変更が行われるのか、実際...
**MapMarkerについて
GGを入れてゲームをスタートすると、MAP画面にValeria’s Camp...
#ref(GG_T_002.jpg)
上のピクチャーはそのMapMarkerのプロパティです。「Visible...
それでは実際にValeriaに会いに行って見ることにします。ファ...
**NPCの動作について
演出としてコンパニオンが仲間になる以前には、他のNPCと同様...
**AIパッケージについて
オリジナルのNPCが日々生活をしているように振舞えるのは、AI...
ただ、日常生活だけを送るNPCとは異なり、コンパニオンはプレ...
#ref(GG_T_003.jpg)
リストを見てみると、どうやらGG〜から始まる新しく作成した9...
#ref(GG_T_004.jpg)
その項目をダブルクリックして開いて、ScheduleタブのDuratio...
**Conditionsについて
Conditionとは「条件」という意味ですが、これはMODを作成し...
スクリプト初心者の方はTES4CSHLPのScript/Conditionを参照し...
さて条件設定ですが、この「GGValWander」の場合ならば、GGの...
#ref(GG_T_004.jpg)
Conditionsタブのリスト項目、上から4番目の項目を見てくださ...
「今コンパニオンがいるセル(場所)の情報を得て、それがSki...
ようにここでは設定されています。
「Condition Function」とは条件を設定する際に用いる関数の...
さて、ここでセットされた「GetInCell」とは「そのセルの情報...
そして「Function Parameters」でその得られたセルの情報と比...
「Comparison」は比較という意味で、そこには「==」が入って...
それでは次の設定項目であるValueが「1」とはどういうことな...
これは「GetInCell」という関数がどんな機能を持っているかを...
この条件設定タブウィンドウで行う設定をスクリプトで記述す...
if GetInCell SkingardHouseforSale == 1
→そのコンパニオンをうろうろさせる
ということになります。
もしその場所がSkingardHouseforSaleならば「1 == 1」なので...
それでは話を条件設定タブに戻します。タブの右下にある「OR...
これで条件設定を一通り見ましたが、実は「Condition Functio...
例えばリストの2番目の項目は「GetRandum Percent」という関...
またリストの1番目の「GetScriptVariable」は対象となってい...
こういった変数はそれだけを見てもどんな条件を設定している...
他のパッケージもこのような要領で設定してありますので、い...
**クエストの概略について
さて彼女に話しかければ当然会話が返ってくるわけですが、会...
まずTESで用いられる会話はクエスト単位で制御されています。
ここでいうクエストとはメインツールバーの「Q」のボタンを押...
#ref(GG_T_005.jpg)
この場所はTESのデーターベースと言ってよい場所で、ゲーム上...
また会話の編集作業は、個々のNPCのプロパティのDialogueボタ...
#ref(GG_T_006.jpg)
しかし、このウィンドウでは新しいTopicを追加できない仕様な...
たとえばネズミ退治のクエストと、それに関連するNPCを2人新...
**GGのクエストについて
それではGGのクエストはどうなっているのでしょうか?
ツールバーのQUESTSボタンでQUESTウィンドウを出して調べると...
ここで気をつけるのは、クエストは会話のデーターベースとし...
GGValeriaDoOnceというクエストを見てください。
#ref(GG_T_005.jpg)
ここには会話も書かれていませんし、クエスト履歴として機能...
**スクリプトの添付場所について
もともとスクリプトはオブジェクトに添付されることでその機...
もう少し言うと、Valeria自身にもスクリプトが添付されていま...
1つはその実行される頻度の問題です。
NPCに貼られたスクリプトはNPCのAIが実行される頻度と同じで...
2つ目は使用できるスクリプトの違いです。
NPCに貼られたスクリプトにはリファレンススクリプト(参照ス...
これらスクリプトの属性を考えてGGはスクリプトを添付する場...
私はGGの場合、そんなに属性のことは考えず、主にそのGGに使...
実際、2つ目のリファレンススクリプトか、ノンリファレンスス...
(余談になりますが、GGの場合ノンリファレンススクリプトを...
また実行頻度の問題もコンパニオンはもともとプレイキャラク...
ただこれから新しいスクリプトを作成しようとする人は、スク...
**Valeriaとの会話
さてこれからは実際にValeriaと会話することにより彼女に命令...
初めてValeriaと話すと彼女はオリジナルのGreetingを使った挨...
**Result Scriptについて
それでは実際にValeriaの会話の一部を見て見ましょう。
「Editar ID」リストから「GGValeriaJoin」を探して開いてみ...
ここで焦点を当てるのはResult Scriptの使い方です。これはゲ...
#ref(GG_T_007.jpg)
「そうね・・・あなたは一見してイヤな感じでもないし〜」と...
GGValCamp.disable
set GGValeriaQuest.bIsCompanion to 1
set GGValeriaQuest.bDoClass to 1
「GGValCamp.disable」はつまりValeria's Campを無効にしろと...
次に「set GGValeriaQuest.bIsCompanion to 1」ですが、これ...
**変数の使い方について
変数はその中に主に数字をとっかえひっかえ入れ替えて使用す...
変数を宣言した時にはその変数の中には数字の「0」が入ってい...
今「bIsCompanion」に1をセットしました。
これはValeriaがコンパニオンになったという状態を表すもので...
これにより、例えば下のピクチャのValeriaのステータスを見る...
#ref(GG_T_008.jpg)
Conditionsのリストの真ん中の項目に注目すると、「bIsCompan...
変数はこのような会話の表示のオン・オフという小さな事柄か...
なお、他の人が作成したMODにおいて、それら変数を見るとき、...
最後に「set GGValeriaQuest.bDoClass to 1」ですが、これは...
具体的には557行以下の
if GGValeriaQuest.bDoClass == 1
MessageBox "彼女の戦闘スタイルを決定してください: ",...
set GGValeriaQuest.bDoClass to 0
endif
に処理が引き継がれます。
MessageBox関数はゲーム上にメッセージを表示させるものであ...
これ以降の行でどのようにしてクラスが決定されるているかは...
**GGのスクリプトの使い方について
GGのスクリプトの構造は万事がこのような形で作られています...
if GGValeriaQuest「何かの変数」 == 1
→行動をする(例えばステータスを表示させたり、戦闘の方法...
といった形をとるわけです。
Result Scriptでそれらスクリプト処理をそのまま書き込んでし...
そんなわけで、1行で終わるような短いスクリプトでないのなら...
**終わりに
最初はGGの機能に着目して、随時そのスクリプトの記述は何を...
拙いチュートリアルになりましたが、これがあなたのMOD製作の...
ページ名:
▲
■
▼