メイドさんを○○する方法
メイド(Maidクラス)
メイドはID(GUID)で識別出来ます。
メイドは表示されるまでボディを持っていません。
メイドと呼ばれますが、男を含めキャラクター全般を扱います。
メイドさんをあれこれしたい場合はこのクラスのインスタンスをとって操作します。
中身の代表的なもの
詳細な中身は Maid にキャレットを当てて F12 で確認してください。
Parts(MaidPartsクラス)
メイドのパーツと思いきや、ただの色情報。
status(Statusクラス)
ステータス情報、名前などもここにある、常に存在すると思われる。
body0(TBodyクラス)
表示用の情報、表示中のみ存在する、スロットの情報などもこの中。
表示されるときに作成される、表示されるときに次項のPropに従って作成される。
スロット情報は表示されるときにPropに従うということなので表示されていない場合はPropの変更が次回表示時に反映されるが、既に表示されている場合はPropを変更しても表示には影響しない、それを反映するのがひな形の処理で行ったAllProcPropSeqStartとうことになる。
TBodySkinがスロット毎のデータ、ここの持ち方がCOM3D2とCOM3D2.5で異なっておりCOM3D2.5でプラグインが壊滅した原因。
Prop(MaidPropクラス)
プロパティ?、ステータスではない情報、エディット内容が入っている。
これは常に存在すると思われる。
取得はGetProp、設定はSetProp、他にもDelPropなどもある。
全登録メイド/男/NPCの取得
メイドさん
CharacterMgr.GetStockMaidList();
男
CharacterMgr.GetStockMan();
NPCメイドさん
CharacterMgr.GetStockNpcMaid();
NPC男
CharacterMgr.GetStockNpcMan();
参考 - 全メイドのIDと名称取得
var maids = GameMain.Instance.CharacterMgr.GetStockMaidList(); foreach (var maid in maids) { Debug.Log($"{maid.status.guid} : {maid.status.fullNameJpStyle}" ); }
アクティブ(表示中)なメイド/男の取得(正攻法)
CharacterMgr.GetMaid(番号);
CharacterMgr.GetMaid(ID);
CharacterMgr.GetMan(番号);
アクティブ(表示中)なメイド/男の人数取得
CharacterMgr.GetMaidCount();
CharacterMgr.GetManCount();
参考 - アクティブなメイドのIDと名称取得
var characterMgr = GameMain.Instance.CharacterMgr; for (var index = 0; index < characterMgr.GetMaidCount(); index++) { var maid = characterMgr(index); Debug.Log($"{maid.status.guid} : {maid.status.fullNameJpStyle}" ); }
※この正攻法では非正規な方法で表示されているメイドは取得できません。
アクティブ(表示中)なメイド/男の取得(非正規)
GetStockMaidList等ですべてとって、Maid.body0がnullでなくMaid.Visibleがtrueなものを抽出する。
参考 - 全メイドのIDと名称取得
var maids = GameMain.Instance.CharacterMgr.GetStockMaidList().Where(maid=>maid.body0 != null && maid.Visible); foreach (var maid in maids) { Debug.Log($"{maid.status.guid} : {maid.status.fullNameJpStyle}" ); }
ステータス情報(Statusクラス)
直接みればわかりますが、ステータス情報が入っています。
F12で見に行けばわくわくするかも?
名前
姓(lastName),名(firstName),ニックネーム(nickName)
呼び名(callName:取得のみ)、姓名日本語形式(fullNameJpStyle:取得のみ)、姓名英語形式(fullNameEnStyle:取得のみ)
など
性格タイプ(Personal.Dataクラス)
personal
メイドの性格(無垢とかふわ妹など)
表示用の名前はdrawName。(例 : maid.status.personal.drawName)
関係(Relationクラス)
relation
関係で表示されるもの。
各パラメータ
base | 基本値 |
current | 現在値 |
max | 最大値 |
baseMax | 基本最大値 |
などが付いているものもあります。
ダンスであれば以下のような形で、danceは参照だけ出来る形です。
ダンスの値を書き換えたい場合はbaseDanceを変更します。
dance | 基本値+ボーナス値 |
baseDance | 基本値 |
体力であれば以下のような形で、ボーナス値が含まれるmaxHpは参照のみです。
体力が減らないようにするには、毎フレームcurrentHpにmaxHpの値を入れ続ける・・・というようなことを行います。
maxHp | 基本最大値+ボーナス値 |
baseMaxHp | 基本最大値 |
currentHp | 現在値 |
コメント