motionCreators 向けの拡張プロフィール・詳細キャラクター設定プラグインです。
5組の選択式属性(ラジオボタン)と入力欄によって手軽に詳細な設定を行い、外部の JSON プリセットと連動して「人物背景(バックストーリー・セリフ・設定)」を自動管理・生成します。
1. 特徴
5組の選択肢で直感的に設定: 処女性、恋愛遍歴、プレイヤー/他人との関係、内心の想い、忠貞・性格傾向をクリックだけで設定可能。
カードが重くならない軽量設計: 人物カード内には選択ステータスとプリセットID(文字列)のみを保存。長文テキストは外部 JSON に保管されるため、カードデータが肥大化しません。
タグ連動型の背景テキスト(JSON連携): 選択した属性に最もマッチするプロフィール本文をプリセットライブラリから自動選出。
柔軟な名前置換機能: 設定した相手の名前や想い人の名前に応じて、本文内の表記や結びの文がリアルタイムに変化します。
2. 前提環境
EmotionCreators 本体
BepInEx 5.x
KKAPI (KoikatuAPI)
ExtendedSave (com.bepis.bepis.extendedsave)
3. インストール
ECProfileEx.dll を BepInEx/plugins/ フォルダ(またはそのサブフォルダ)に配置します。
初回起動時、BepInEx/plugins/ECProfileEx/Profiles/Presets.json が自動生成されます。
4. キャラメイク画面での使い方
キャラメイクの 「05_パラメータ(ParameterTop)」 タブの一番右に 「人物資料(ProfileEx)」 というサブカテゴリが追加されます。
① 基本設定(タグ・属性)
画面最上部の 「プロフィール設定を有効化」 にチェックを入れると設定項目が表示されます。
(※チェックを外した状態でカードを保存すると、本プラグインの拡張データはカードから完全に削除されます)
生理状態
「白紙処女」「経験済」「妊娠中」から選択。
「経験済」を選ぶと 経験相手、「妊娠中」を選ぶと 子の父親 の名前入力欄が出現します。
恋愛履歴
「白紙独身」「初恋段階」「過去あり」から選択。
「過去あり」を選ぶと 元恋人の名前 の入力欄が出現します。
現実関係(※「P」=プレイヤー)
「独身」「Pと交際」「Pと婚約」「Pと既婚」「他人と交際」「他人と婚約」「他人と既婚」から選択。
「他人と〜」を選ぶと 相手の名前 の入力欄が出現します。
内心
「なし」「P」「今の相手」「別の人」から選択。
「別の人」を選ぶと 想い人 の名前入力欄が出現します。
忠貞心性
「氷清堅貞」「守序従一」「軟弱追随」「勢利権衡」「奔放縦欲」から選択。
現在設定の概要(グレー文字)
選択中のステータスが1行のサマリーとして表示されます。
② 人物背景(内容エリア)
「内容を開く」にチェックが入っている場合、下部に背景テキスト編集エリアが表示されます。
候補情報の表示:
候補 3 件 · 1 件目 · preset_virgin_shy のように、現在のタグ設定に合致した候補数と現在の項目IDが表示されます。
[別の候補] ボタン:
現在の属性タグに一致する別のプリセットへ順に切り替えます(未保存の変更がある場合は警告が出ます)。
[今のタグで新規作成] ボタン:
現在の属性条件を保持したまま入力枠をクリアし、新規プリセット作成モードに入ります。
[ライブラリに保存] ボタン:
現在入力されている背景テキストを外部ファイル(UserCustom.json)に保存し、カードと関連付けます。
人物背景(テキスト入力枠):
複数行入力可能な大型テキストボックスです。文章の長さに応じて自動で高さが調整されます。
5. プリセットと JSON ファイルの仕様
プロフィールデータは以下のディレクトリに配置されます:
BepInEx/plugins/ECProfileEx/Profiles/
| ファイル名 | 役割 |
| Presets.json | プラグイン同梱・初期生成のプリセット集(読み込み専用)。 |
| *.json (任意) | ユーザーが追加したプリセット集(読み込み専用)。 |
| UserCustom.json | ゲーム内の「保存」ボタンから保存したデータ(プラグインが自動書き込み)。 |
安全な上書き仕様: 同一の ID が存在する場合、UserCustom.json の内容がプリセットを上書きします(元ファイルは破壊されません)。
外部編集の即時反映: 外部エディタで JSON を書き換えた後、ゲーム内で [別の候補] を押すと自動で再読み込み(リロード)されます。
タグ条件の書き方 (JSON)
conditions 内の各数値は -1 を指定すると「条件不問(ワイルドカード)」となります。
phys: 0=処女, 1=経験済, 2=妊娠中
love: 0=独身, 1=初恋, 2=過去あり
rel: 0=独身, 1〜3=Pと交際/婚約/既婚, 4〜6=他人と交際/婚約/既婚
heart: 0=なし, 1=P, 2=今の相手, 3=別の人
chast: 0=氷清堅貞, 1=守序従一, 2=軟弱追随, 3=勢利権衡, 4=奔放縦欲
プレースホルダー(名前の自動差し替え)
プリセット本文内に以下のタグを含めると、カード上で入力された名前に動的置換されます:
{相手} → 現実関係の「相手の名前」(未入力時は「那個人」、P関係時は「あなた」)
{心儀} → 内心の「想い人」(未入力時は「另一個人」、P時は「あなた」)
6. 設定ファイル (config) と言語
設定ファイル:BepInEx/config/ec.profileex.cfg
[General]
## 界面文案语言(変更後はゲームの再起動が必要です)
## Japanese = 日本語表記(デフォルト・EC本体の標準フォント推奨)
## Chinese = 簡体字中国語表記(フォントMODがない場合、文字化けする可能性があります)
## Auto = フォントの収録文字に応じて自動判定
Language = Japanese注意: 言語設定を変更した場合は、必ずゲームを再起動してください(キャラメイク画面初回生成時にタブが構築されるため)。
7. 注意事項・Q&A
Q. 他の人にキャラカードを渡したら背景文章が消えました
A. カード内にはテキストそのものではなく「プリセット ID」のみが保存されています。相手の環境にも同じ ID を含む JSON ファイル(または UserCustom.json)が存在しない場合、文章は表示されず「参照切れ(Reference Missing)」と警告が出ます(※カード内の ID 情報自体は失われません)。
Q. 背景枠に文字を打ち込んでも「保存」を押さないとダメ?
A. はい。背景枠に入力したテキストを外部ライブラリ(UserCustom.json)およびカードに紐付けるには、必ず [ライブラリに保存] を押してください。
8. 開発者向け API (他のMODからの連携)
他のMODやスクリプトからキャラクターのプロフィール設定を参照する場合、以下の API を利用できます:
if (ProfileExApi.TryGet(chaControl, out var snapshot))
{
if (snapshot.Enabled)
{
bool isVirgin = snapshot.IsVirgin; // 処女かどうか
bool isPregnant = snapshot.IsPregnant; // 妊娠中かどうか
bool withPlayer = snapshot.RelationIsPlayer; // プレイヤーとの関係か
int chastity = snapshot.Chastity; // 忠貞心性 (0〜4)
// 人物背景を取得
var profileItem = snapshot.ResolveProfile();
string storyText = profileItem?.text;
}
}