ユーザ用ツール

サイト用ツール


メイドさんを○○する方法

メイドさんを○○する方法

メイド(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現在値

コメント

コメントを入力:
 
メイドさんを○○する方法.txt · 最終更新: 2023/04/17 15:26 by fumble