Petit Matesのカスタマイズ
大きさや発話のオン・オフは設定画面で変更できます。このページでは,テキストファイルを編集して,自分のセリフを追加する方法を説明します。内蔵のキャラクター画像やアプリ本体を編集する必要はありません。
編集するファイルを選ぶ
| ファイル | 用途 | 反映の目安 |
|---|---|---|
user.toml | 普段の表示・数・発話・天気 | アプリの再起動 |
speech.toml | セリフと吹き出しの表示時間 | アプリの再起動 |
behavior.toml | 追加アニメーションの条件,リアクション,性格 | ユーザー側の変更は再起動を基本とする |
params.tomlなど | 移動・待機・物理の詳細値 | OS別の配置と監視対象は動作パラメーターを参照 |
manifest.toml | スプライトとアニメーション定義 | キャラクター素材の作者向け |
speech.tomlとbehavior.tomlのユーザー用フォルダーは,user.tomlと同じ場所の下です。
| 環境 | 基準フォルダー |
|---|---|
| macOS | ~/Library/Application Support/PetitMates/ |
| Windows | %LOCALAPPDATA%\PetitMates\ |
PetitMates/
├── user.toml
├── common/
│ └── speech.toml
└── bearded_dragon/
└── speech.tomlcommonは全種類への追加,種類別フォルダーはその種類だけへの追加です。フォルダー名はbearded_dragon・pond_turtle・leopard_geckoを使います。必要なフォルダーとファイルを自分で作成します。
セリフを追加する
- アプリを終了し,既存のユーザーファイルがあればコピーして退避します。
- 全種類へ追加する場合は
common/speech.toml,フトアゴだけならbearded_dragon/speech.tomlを開きます。 - 次の例を保存します。既存のファイルへ足す場合は,
[[speech]]からの一組を末尾へ追加します。 - アプリを起動し,発話を有効にして待ちます。
[[speech]]
text_ja = "少し休んでいこうかな"
text_en = "Maybe it is time for a little break."
trigger = "random"
weight = 1.0追加したセリフは,内蔵のセリフと一緒に候補になります。起動直後に必ず表示されるわけではありません。通常の発話には待機時間と抽選があります。表示言語に対応する文章がなければ,もう片方の言語の文章を使います。
読み込みと重ね合わせ
読み込み順は「内蔵共通 → 内蔵の種類別 → ユーザーの種類別 → ユーザー共通」です。[[speech]]は後から追加され,既存のセリフを置き換えません。同じ内容を複数のファイルへ書くと,候補が重複します。
[speech_display]の値は,後のファイルで指定された項目が優先されます。セリフには上書き用のIDはありません。TOMLを解析できないファイルは読み飛ばされるため,追加した文章が出ないときは,引用符や[[speech]]の綴りも確認してください。
表示時間を変える
[speech_display]
duration_sec = 8.0
fade_out_sec = 1.0
[[speech]]
text_ja = "今日はゆっくりいこう"
text_en = "Taking it slowly today."
trigger = "random"
duration_sec = 10.0標準は表示全体が6秒,最後のフェードアウトが1秒です。個別のduration_secは,そのセリフだけに適用されます。表示全体の時間にフェードアウトも含まれます。正の秒数を使い,フェードアウトを表示全体より短くしてください。
セリフの条件
| キー | 値・意味 |
|---|---|
text_ja・text_en | 日本語・英語の文章。少なくとも片方を用意 |
trigger | random・time・weather・state |
weight | 通常抽選の重み。省略時1.0。正の値を使う |
hours | 時刻の配列。0〜23 |
weekdays | Mon・Tue・Wed・Thu・Fri・Sat・Sun |
months | 月の配列。1〜12 |
seasons | spring・summer・autumn・winter |
weather | sunny・cloudy・rainy・snowy |
temp_min・temp_max | 気温の下限・上限。摂氏 |
state | stateトリガーのイベント名。startup・landing・hour_change |
duration_sec | そのセリフの表示時間 |
oneshot | セリフと一緒に使う,素材側で定義されたアニメーション名 |
時間条件はtrigger = "time"で使います。曜日・月・時刻などを複数指定した場合は,すべてに一致する候補が対象になります。季節は3〜5月が春,6〜8月が夏,9〜11月が秋,12〜2月が冬という固定の分類です。
[[speech]]
text_ja = "そろそろひと息つこう"
text_en = "A good time for a short break."
trigger = "time"
hours = [15, 16]
weekdays = ["Mon", "Tue", "Wed", "Thu", "Fri"]
weight = 1.0これは平日の15時台・16時台に候補となる例で,15時ちょうどの通知ではありません。randomに時間条件を付けても,現在の抽選処理では時間による絞り込みを行いません。
天気条件はweatherトリガーで使い,天気設定から情報を取得できた場合に候補となります。stateは移動状態名を自由に監視する指定ではなく,上記3つのイベントに対応します。hour_changeではhoursで対象時刻を絞れます。イベントのセリフは通常の重み付き抽選とは別に候補から選ばれます。
性格と追加アニメーション
behavior.tomlの[personality]は,移動の頻度・速度や休み方の傾向を表します。次は内蔵ファイルの値であり,設定画面の初期値ではありません。
| 種類 | restlessness | curiosity | sleepiness | agility |
|---|---|---|---|---|
| フトアゴヒゲトカゲ | 0.60 | 0.50 | 0.25 | 0.65 |
| クサガメ | 0.15 | 0.25 | 0.65 | 0.35 |
| レオパードゲッコー | 0.70 | 0.75 | 0.30 | 0.60 |
値は0〜1で,それぞれ動き回りやすさ・探索・眠りやすさ・速さに関係します。現在の実装は,パラメーターを読み込んだ後に性格から一部の値を再計算します。動作パラメーターの優先順位も参照してください。
ユーザー用behavior.tomlは起動時の重ね合わせに参加しますが,性格の実行中監視先はMacの素材フォルダー,WindowsのEXE横の{種類名}_behavior.tomlです。起動後の再読み込みで性格が変わる場合があるため,ユーザー側の性格指定を固定的な設定として扱わないでください。
[[behavior]]は時間・天気・ランダム条件による追加アニメーション,[[reaction]]はgrabbed・dropped・hoveredへの反応を指定します。アニメーション名は素材のmanifest.tomlに定義されている必要があり,未定義の名前は無視されます。これらのリストは追加で重なり,状態機械全体を置き換える仕組みではありません。
素材側の作業やコード変更を伴う調整では,状態遷移と動作パラメーターを参照してください。通常の利用では,セリフの追加から試すと変更範囲を把握しやすくなります。