ui-chan-mcp 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/.claude-plugin/marketplace.json +13 -0
  2. package/.claude-plugin/plugin.json +6 -0
  3. package/.env.example +13 -0
  4. package/LICENSE +36 -0
  5. package/README.md +214 -0
  6. package/agents/mode.md +47 -0
  7. package/agents/talk.md +23 -0
  8. package/bin/ui-chan-mcp.mjs +11 -0
  9. package/bin/ui-chan-node +35 -0
  10. package/bin/ui-chan.mjs +350 -0
  11. package/context/AFFINITY.md +94 -0
  12. package/context/SOUL.md +79 -0
  13. package/context/VOCABULARY.md +108 -0
  14. package/cue.schema.json +109 -0
  15. package/cues/default.json +21 -0
  16. package/cues/emo_anger.json +14 -0
  17. package/cues/emo_anger_hi.json +19 -0
  18. package/cues/emo_anger_lo.json +16 -0
  19. package/cues/emo_antic.json +18 -0
  20. package/cues/emo_antic_hi.json +16 -0
  21. package/cues/emo_antic_lo.json +6 -0
  22. package/cues/emo_disgust.json +19 -0
  23. package/cues/emo_disgust_hi.json +20 -0
  24. package/cues/emo_disgust_lo.json +6 -0
  25. package/cues/emo_fear.json +19 -0
  26. package/cues/emo_fear_hi.json +19 -0
  27. package/cues/emo_fear_lo.json +19 -0
  28. package/cues/emo_joy.json +17 -0
  29. package/cues/emo_joy_hi.json +15 -0
  30. package/cues/emo_joy_lo.json +13 -0
  31. package/cues/emo_sad.json +15 -0
  32. package/cues/emo_sad_hi.json +18 -0
  33. package/cues/emo_sad_lo.json +14 -0
  34. package/cues/emo_surprise.json +15 -0
  35. package/cues/emo_surprise_hi.json +14 -0
  36. package/cues/emo_surprise_lo.json +11 -0
  37. package/cues/emo_trust.json +16 -0
  38. package/cues/emo_trust_hi.json +20 -0
  39. package/cues/emo_trust_lo.json +6 -0
  40. package/cues/idling_doze_1.json +9 -0
  41. package/cues/idling_doze_2.json +9 -0
  42. package/cues/idling_doze_3.json +9 -0
  43. package/cues/idling_giggle_1.json +9 -0
  44. package/cues/idling_giggle_2.json +9 -0
  45. package/cues/idling_lookaround_1.json +10 -0
  46. package/cues/idling_lookaround_2.json +10 -0
  47. package/cues/idling_lookaround_3.json +10 -0
  48. package/cues/idling_ponder.json +9 -0
  49. package/cues/idling_sigh_1.json +11 -0
  50. package/cues/idling_sigh_2.json +11 -0
  51. package/cues/idling_yawn_1.json +9 -0
  52. package/cues/idling_yawn_2.json +12 -0
  53. package/cues/idling_yawn_3.json +12 -0
  54. package/cues/mix_anger_antic.json +16 -0
  55. package/cues/mix_antic_joy.json +16 -0
  56. package/cues/mix_disgust_anger.json +17 -0
  57. package/cues/mix_fear_surprise.json +18 -0
  58. package/cues/mix_joy_trust.json +19 -0
  59. package/cues/mix_joy_trust_hi.json +18 -0
  60. package/cues/mix_sad_disgust.json +12 -0
  61. package/cues/mix_surprise_sad.json +21 -0
  62. package/cues/mix_surprise_sad_hi.json +14 -0
  63. package/cues/mix_trust_fear.json +18 -0
  64. package/cues/pose_arms_crossed.json +9 -0
  65. package/cues/pose_banzai.json +17 -0
  66. package/cues/pose_smug_arms.json +11 -0
  67. package/cues/pose_smug_hips.json +11 -0
  68. package/cues/pose_think.json +8 -0
  69. package/cues/pose_umbrella.json +9 -0
  70. package/cues/self_guilt.json +20 -0
  71. package/cues/self_pride.json +10 -0
  72. package/cues/self_shame.json +19 -0
  73. package/cues/self_shy.json +16 -0
  74. package/cues/self_shy_hi.json +17 -0
  75. package/cues/sys_address.json +9 -0
  76. package/cues/sys_awkward.json +18 -0
  77. package/cues/sys_beam.json +18 -0
  78. package/cues/sys_blank.json +11 -0
  79. package/cues/sys_care.json +18 -0
  80. package/cues/sys_confused.json +12 -0
  81. package/cues/sys_dazed.json +10 -0
  82. package/cues/sys_dread.json +21 -0
  83. package/cues/sys_fluster.json +20 -0
  84. package/cues/sys_intro.json +15 -0
  85. package/cues/sys_laugh.json +20 -0
  86. package/cues/sys_neutral.json +5 -0
  87. package/cues/sys_present.json +9 -0
  88. package/cues/sys_rain.json +15 -0
  89. package/cues/sys_refuse.json +18 -0
  90. package/cues/sys_relief.json +15 -0
  91. package/cues/sys_sleepy.json +8 -0
  92. package/cues/sys_smirk.json +10 -0
  93. package/cues/sys_stream.json +15 -0
  94. package/cues/sys_success.json +15 -0
  95. package/cues/sys_think.json +9 -0
  96. package/dist/app/assets.js +54 -0
  97. package/dist/app/cues.js +130 -0
  98. package/dist/app/editor-main.js +199 -0
  99. package/dist/app/editor-preload.js +17 -0
  100. package/dist/app/main.js +527 -0
  101. package/dist/app/persona.js +136 -0
  102. package/dist/app/preload.js +14 -0
  103. package/dist/app/state.js +850 -0
  104. package/dist/app/tts.js +257 -0
  105. package/dist/mcp-server.js +408 -0
  106. package/dist/renderer/bundle.js +17983 -0
  107. package/dist/renderer/editor.html +150 -0
  108. package/dist/renderer/editor.js +17917 -0
  109. package/dist/renderer/index.html +425 -0
  110. package/dist/shared/paths.js +169 -0
  111. package/dist/shared/set-cue-schema.js +66 -0
  112. package/dist/shared/types.js +14 -0
  113. package/docs/CLIENTS.md +110 -0
  114. package/docs/CUE_AUTHORING.md +76 -0
  115. package/docs/DEVELOPMENT.md +129 -0
  116. package/docs/PERSONA.md +61 -0
  117. package/docs/PSD_LAYERS.md +123 -0
  118. package/docs/README.md +43 -0
  119. package/docs/SETUP.html +684 -0
  120. package/docs/STYLE.md +107 -0
  121. package/docs/TOOLS.md +33 -0
  122. package/docs/TROUBLESHOOTING.md +122 -0
  123. package/docs/TTS.md +61 -0
  124. package/docs/design/CUE_CATALOG.md +259 -0
  125. package/docs/images/faces.png +0 -0
  126. package/docs/images/panel.png +0 -0
  127. package/hooks/fire-event.js +14 -0
  128. package/hooks/hooks.json +77 -0
  129. package/hooks/lib/mascot.js +76 -0
  130. package/hooks/notify.js +15 -0
  131. package/hooks/reaction.js +46 -0
  132. package/hooks/session-start.js +80 -0
  133. package/package.json +96 -0
  134. package/persona/ui-chan.md +111 -0
  135. package/plugins/hermes/ui-chan/__init__.py +98 -0
  136. package/plugins/hermes/ui-chan/plugin.yaml +7 -0
  137. package/plugins/opencode/ui-chan.mjs +105 -0
  138. package/skills/beam/SKILL.md +37 -0
  139. package/skills/eli14/SKILL.md +139 -0
  140. package/skills/eli14/references/base.html +495 -0
  141. package/skills/mode/SKILL.md +67 -0
  142. package/skills/talk/SKILL.md +27 -0
  143. package/tools/setup/check-package.mjs +47 -0
  144. package/tools/setup/clients.mjs +399 -0
  145. package/tools/setup/doctor.mjs +105 -0
  146. package/tools/setup/home.mjs +126 -0
  147. package/tools/setup/prompt.mjs +134 -0
  148. package/tools/setup/update-check.mjs +8 -0
  149. package/tools/setup/update.mjs +350 -0
  150. package/tools/stop-app.mjs +22 -0
  151. package/ui-chan.config.json +973 -0
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://ui-chan-mcp.local/schema/cue.schema.json",
4
+ "title": "Cue",
5
+ "description": "1つの完成した見た目+声を表す最小単位。1ファイル=1Cue、継承なし、完全に自己完結。視覚は生のPSDレイヤーパスのみ(名前付き抽象フィールドを作らない)。強さ違いは intensity ではなく別ファイルの別Cueとして表現する。say/set_expressionの分離に起因していたタイミング問題を避けるため、テキスト(セリフ)はこのファイルには含めない — テキストは set_cue 呼び出し時の引数(このスキーマの対象外)。任意の description フィールドのみ例外的にカタログ用メタデータとして許可する(AIエージェントがこのCueをいつ使うべきか把握するため。persona プロンプトが起動時に全Cueから動的に一覧を生成して渡す)。",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "properties": {
9
+ "label": {
10
+ "type": "string",
11
+ "description": "論理名。ファイル名(=cue名)は emo_anger_hi のように構造的・ソート可能にする一方、これは人間向けの読みやすくユニークな呼び名(例「激おこ」「侮蔑・塩対応」)。set_cueの実行には使われず、カタログ表示やエディタのグルーピング表示のための参照メタデータ。",
12
+ "minLength": 1
13
+ },
14
+ "description": {
15
+ "type": "string",
16
+ "description": "このCueがどんな場面・気持ちを表すかの短い説明(人間・AI両方向けの参照情報)。set_cueの実行には一切使われず、MCPの persona プロンプトが起動時にcues/を読み込んでAIに一覧として渡す際にのみ使われる。カタログ用メタデータであり、見た目・声そのものには影響しない。",
17
+ "minLength": 1
18
+ },
19
+ "internal": {
20
+ "type": "boolean",
21
+ "description": "trueなら、このCueはAI向けのCue一覧(persona プロンプトが生成するset_cue用カタログ)から除外される。set_cueで直接指定すれば動作はする(実行を禁止するフラグではない)が、単体で場面に当てる想定ではなく、IdlingCue(ui-chan.config.jsonのidle.idlingCues/idle.chatter)が複数ステップの一部として内部的に参照するためだけのCueであることを示す。ファイル名のprefix等の暗黙の命名規則ではなく、この明示的なフラグで判定する。省略時はfalse扱い。",
22
+ "default": false
23
+ },
24
+ "select": {
25
+ "type": "array",
26
+ "description": "'*'ラジオレイヤーを選択するパスの配列。同じ階層(親フォルダ)のラジオを指定順に上書きできる。後に来る指定が勝つ。base(全Cue共通の初期状態、config側で定義)の後、このCueのselectが適用される。",
27
+ "items": {
28
+ "type": "string",
29
+ "pattern": "^!",
30
+ "description": "'/'区切りのPSDレイヤー名パス。ルートは常に必須フォルダ('!'始まり)。例: \"!目/*にっこり2\""
31
+ },
32
+ "default": []
33
+ },
34
+ "show": {
35
+ "type": "array",
36
+ "description": "ラジオではない通常レイヤー(汗・涙などの重ね着)を表示状態にするパスの配列。",
37
+ "items": {
38
+ "type": "string",
39
+ "pattern": "^!"
40
+ },
41
+ "default": []
42
+ },
43
+ "hide": {
44
+ "type": "array",
45
+ "description": "通常レイヤーを非表示にするパスの配列。base側で既に非表示のものをこのCueで明示的に隠す必要は通常ない。",
46
+ "items": {
47
+ "type": "string",
48
+ "pattern": "^!"
49
+ },
50
+ "default": []
51
+ },
52
+ "blink": {
53
+ "type": "boolean",
54
+ "description": "このCue表示中にまばたきアニメーションを有効にするか。目を大きく見開く/閉じているCue等ではfalseにして意図しないまばたきを防ぐ用途。省略時の扱いは実装依存(現行実装ではundefined=false扱い)。",
55
+ "default": false
56
+ },
57
+ "voice": {
58
+ "type": "object",
59
+ "description": "このCue固有の声色。VoiSona Talk REST APIの speech_synthesis_global_parameters のうち、Cueに焼き込む値(baked)だけを持つ。pitch/speed/volume/intonationはここに含めない — それらはset_cue呼び出し時のアドリブ引数(1行のセリフごとの演技)であり、このスキーマの対象外。",
60
+ "additionalProperties": false,
61
+ "properties": {
62
+ "style_weights": {
63
+ "type": "object",
64
+ "description": "スタイル名 → 重み。例 {\"Happy\": 0.7, \"Bashful\": 0.3}。実行時にボイスの style_names 順の配列へ変換して送信する(ブレンド計算はしない、素通し)。スタイル名は使用するVoiSonaボイスに依存するため、GET /api/talk/v1/voices/{voice_name}/{voice_version} の style_names で実在を確認すること。",
65
+ "additionalProperties": {
66
+ "type": "number",
67
+ "minimum": 0,
68
+ "description": "個々のスタイルの重み。上限・正規化要否はVoiSonaのバージョン/ボイスに依存するため、実装時に talk_api.yaml で要確認。"
69
+ },
70
+ "propertyNames": {
71
+ "minLength": 1
72
+ }
73
+ },
74
+ "alp": {
75
+ "type": "number",
76
+ "minimum": -1,
77
+ "maximum": 1,
78
+ "default": 0,
79
+ "description": "声質パラメータ。VoiSona global_parameters.alp をそのまま焼き込む。"
80
+ },
81
+ "huskiness": {
82
+ "type": "number",
83
+ "minimum": -20,
84
+ "maximum": 20,
85
+ "default": 0,
86
+ "description": "かすれ具合。VoiSona global_parameters.huskiness をそのまま焼き込む。"
87
+ }
88
+ }
89
+ }
90
+ },
91
+ "examples": [
92
+ {
93
+ "select": [
94
+ "!眉/*上がり",
95
+ "!目/*にっこり2",
96
+ "!口/*あは",
97
+ "!頬・顔色/*頬2"
98
+ ],
99
+ "show": [],
100
+ "hide": [],
101
+ "blink": false,
102
+ "voice": {
103
+ "style_weights": { "Happy": 1.0 },
104
+ "alp": 0,
105
+ "huskiness": 0
106
+ }
107
+ }
108
+ ]
109
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "label": "下地・素の姿勢",
3
+ "description": "全Cue共通の下地。通常時の素の姿勢・無表情",
4
+ "select": [
5
+ "!眉/*普通",
6
+ "!目/*基本目セット",
7
+ "!目/*基本目セット/!白目/*白目基本",
8
+ "!目/*基本目セット/*正面1",
9
+ "!口/*ん",
10
+ "!頬・顔色/*頬1",
11
+ "!奥の腕/*基本",
12
+ "!手前の腕/*基本"
13
+ ],
14
+ "hide": [
15
+ "!汗・涙/汗1",
16
+ "!汗・涙/汗2",
17
+ "!汗・涙/涙",
18
+ "!頬・顔色/かげり"
19
+ ],
20
+ "blink": true
21
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "label": "怒り",
3
+ "description": "怒り",
4
+ "select": [
5
+ "!眉/*怒り1",
6
+ "!口/*む"
7
+ ],
8
+ "blink": true,
9
+ "voice": {
10
+ "style_weights": {
11
+ "Angry": 1
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "label": "激おこ",
3
+ "description": "本気で怒る・激おこ(angryの強い版)",
4
+ "select": [
5
+ "!口/*いー",
6
+ "!目/*基本目セット/*縮小",
7
+ "!目/*基本目セット/!白目/*白目見開き",
8
+ "!眉/*怒り2"
9
+ ],
10
+ "show": [
11
+ "!頬・顔色/かげり"
12
+ ],
13
+ "blink": false,
14
+ "voice": {
15
+ "style_weights": {
16
+ "Angry": 1
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "label": "苛立ち・むっ",
3
+ "description": "むっ・不満(軽い怒り)",
4
+ "select": [
5
+ "!奥の腕/*腰",
6
+ "!手前の腕/*腰",
7
+ "!口/*む",
8
+ "!目/*基本目セット/!白目/*白目ジト",
9
+ "!眉/*怒り1"
10
+ ],
11
+ "voice": {
12
+ "style_weights": {
13
+ "Angry": 1
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "label": "期待・ワクワク",
3
+ "description": "ワクワク・興奮",
4
+ "select": [
5
+ "!奥の腕/*ばんざい",
6
+ "!手前の腕/*ばんざい",
7
+ "!頬・顔色/*頬2",
8
+ "!口/*おおー",
9
+ "!目/*基本目セット/*きらきら目",
10
+ "!眉/*上がり"
11
+ ],
12
+ "blink": false,
13
+ "voice": {
14
+ "style_weights": {
15
+ "Happy": 1
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "label": "やる気・決意",
3
+ "description": "やる気・気合い入れる",
4
+ "select": [
5
+ "!手前の腕/*ぐっ",
6
+ "!頬・顔色/*頬2",
7
+ "!口/*あは",
8
+ "!目/*基本目セット/!白目/*白目見開き",
9
+ "!眉/*怒り1"
10
+ ],
11
+ "voice": {
12
+ "style_weights": {
13
+ "Happy": 1
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "label": "関心・興味",
3
+ "description": "関心・興味(ちょっと気になる。期待 emo_antic より手前の軽い興味)",
4
+ "select": ["!眉/*上がり", "!目/*上向き1", "!口/*お"],
5
+ "voice": { "style_weights": { "Normal": 0.4, "Happy": 0.3 } }
6
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "label": "嫌悪",
3
+ "description": "純粋な嫌悪・「うわ、無理」(顔をそむける生理的な不快。塩対応 jito とは別の引く嫌悪)",
4
+ "select": [
5
+ "!眉/*困り",
6
+ "!目/*基本目セット/*目そらし2",
7
+ "!口/*え",
8
+ "!頬・顔色/*青ざめ1"
9
+ ],
10
+ "show": [
11
+ "!汗・涙/汗1"
12
+ ],
13
+ "voice": {
14
+ "style_weights": {
15
+ "Angry": 0.3,
16
+ "Sad": 0.2
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "label": "強い嫌悪・嫌悪感MAX",
3
+ "description": "強い嫌悪・生理的な拒絶(顔をしかめ青ざめる。嫌悪 emo_disgust の強い版)",
4
+ "select": [
5
+ "!頬・顔色/*(非表示)",
6
+ "!口/*えー",
7
+ "!目/*基本目セット/*目そらし2",
8
+ "!目/*基本目セット/!白目/*白目ジト",
9
+ "!眉/*怒り1"
10
+ ],
11
+ "show": [
12
+ "!頬・顔色/かげり"
13
+ ],
14
+ "voice": {
15
+ "style_weights": {
16
+ "Angry": 0.4,
17
+ "Sad": 0.3
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "label": "軽い嫌悪・うんざり",
3
+ "description": "軽い嫌悪・うんざり(少し顔をしかめ受け流す。嫌悪 emo_disgust より弱い)",
4
+ "select": ["!眉/*困り", "!目/*基本目セット/*目そらし1", "!口/*む"],
5
+ "voice": { "style_weights": { "Sad": 0.3 } }
6
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "label": "恐れ",
3
+ "description": "怖い・恐怖",
4
+ "select": [
5
+ "!眉/*困り",
6
+ "!目/*基本目セット/*縮小",
7
+ "!口/*△",
8
+ "!頬・顔色/*青ざめ1"
9
+ ],
10
+ "show": [
11
+ "!汗・涙/汗2"
12
+ ],
13
+ "voice": {
14
+ "style_weights": {
15
+ "Sad": 0.7,
16
+ "Bashful": 0.3
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "label": "恐怖",
3
+ "description": "scaredの強い版・強い恐怖",
4
+ "select": [
5
+ "!眉/*困り",
6
+ "!目/*基本目セット/*縮小",
7
+ "!口/*うわー",
8
+ "!頬・顔色/*青ざめ2"
9
+ ],
10
+ "show": [
11
+ "!汗・涙/汗2"
12
+ ],
13
+ "voice": {
14
+ "style_weights": {
15
+ "Sad": 0.7,
16
+ "Bashful": 0.3
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "label": "不安・冷や汗",
3
+ "description": "冷や汗・「やべっ」",
4
+ "select": [
5
+ "!口/*あ",
6
+ "!目/*基本目セット/*目そらし1",
7
+ "!目/*基本目セット/!白目/*白目ジト",
8
+ "!眉/*困り"
9
+ ],
10
+ "show": [
11
+ "!汗・涙/汗1"
12
+ ],
13
+ "voice": {
14
+ "style_weights": {
15
+ "Angry": 0.2,
16
+ "Sad": 0.2
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "label": "喜び",
3
+ "description": "うれしい・喜び",
4
+ "select": [
5
+ "!頬・顔色/*頬2",
6
+ "!口/*むふ",
7
+ "!目/*にっこり1",
8
+ "!眉/*上がり"
9
+ ],
10
+ "blink": false,
11
+ "voice": {
12
+ "style_weights": {
13
+ "Normal": 1,
14
+ "Happy": 1
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "label": "大喜び",
3
+ "description": "happyの強い版・大喜び",
4
+ "select": [
5
+ "!眉/*上がり",
6
+ "!目/*にっこり2",
7
+ "!口/*あはー",
8
+ "!頬・顔色/*頬2"
9
+ ],
10
+ "voice": {
11
+ "style_weights": {
12
+ "Happy": 1
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "label": "微笑み・平穏",
3
+ "description": "微笑み・にっこり",
4
+ "select": [
5
+ "!目/*にっこり1",
6
+ "!口/*ほほえみ"
7
+ ],
8
+ "voice": {
9
+ "style_weights": {
10
+ "Happy": 1
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "label": "悲しみ",
3
+ "description": "悲しい",
4
+ "select": [
5
+ "!眉/*困り",
6
+ "!目/*基本目セット/*目そらし2",
7
+ "!口/*えー"
8
+ ],
9
+ "blink": true,
10
+ "voice": {
11
+ "style_weights": {
12
+ "Sad": 1
13
+ }
14
+ }
15
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "label": "悲嘆",
3
+ "description": "強い悲しみ(涙は流さない。泣く naku と区別)",
4
+ "select": [
5
+ "!口/*えあー",
6
+ "!目/*ーー",
7
+ "!眉/*困り"
8
+ ],
9
+ "show": [
10
+ "!汗・涙/涙"
11
+ ],
12
+ "voice": {
13
+ "style_weights": {
14
+ "Angry": 1,
15
+ "Sad": 1
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "label": "しんみり",
3
+ "description": "しんみり・弱い悲しみ・憂い(涙も強い落ち込みもない静かな寂しさ。sad より手前)",
4
+ "select": [
5
+ "!眉/*困り",
6
+ "!目/*基本目セット/*目そらし1",
7
+ "!口/*え"
8
+ ],
9
+ "voice": {
10
+ "style_weights": {
11
+ "Sad": 0.5
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "label": "驚き",
3
+ "description": "驚き(正の純粋な驚き。ショック shock と区別)",
4
+ "select": [
5
+ "!奥の腕/*ばんざい",
6
+ "!手前の腕/*ばんざい",
7
+ "!口/*えあー",
8
+ "!目/*基本目セット/*目そらし1",
9
+ "!目/*基本目セット/!白目/*白目見開き",
10
+ "!眉/*上がり"
11
+ ],
12
+ "show": [
13
+ "!汗・涙/汗1"
14
+ ]
15
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "label": "驚愕",
3
+ "description": "大きな驚き(正の純粋な驚愕。負のショック shock と区別)",
4
+ "select": [
5
+ "!眉/*上がり",
6
+ "!目/*基本目セット",
7
+ "!目/*基本目セット/!白目/*白目見開き",
8
+ "!目/*基本目セット/*縮小",
9
+ "!口/*うわー"
10
+ ],
11
+ "show": [
12
+ "!汗・涙/汗1"
13
+ ]
14
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "きょとん",
3
+ "description": "きょとん・ぽかーん",
4
+ "select": [
5
+ "!奥の腕/*基本",
6
+ "!手前の腕/*基本",
7
+ "!目/*○○",
8
+ "!口/*お"
9
+ ],
10
+ "blink": true
11
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "label": "信頼",
3
+ "description": "穏やかな信頼・安心して身を委ねる(目を閉じた柔らかい表情。喜びの smile とは別の委ねる落ち着き)",
4
+ "select": [
5
+ "!目/*閉じ",
6
+ "!口/*ほほえみ",
7
+ "!頬・顔色/*頬2"
8
+ ],
9
+ "blink": false,
10
+ "voice": {
11
+ "style_weights": {
12
+ "Normal": 0.5,
13
+ "Bashful": 0.3
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "label": "溺愛・愛でる",
3
+ "description": "愛でる・「かわいいねぇ」(ういおじ化)",
4
+ "select": [
5
+ "!奥の腕/*指さし横",
6
+ "!手前の腕/*腰",
7
+ "!頬・顔色/*頬赤め1",
8
+ "!口/*ほあー",
9
+ "!目/*細目ハート",
10
+ "!目/*基本目セット/*ハート目",
11
+ "!目/*基本目セット/!白目/*白目ジト",
12
+ "!眉/*上がり"
13
+ ],
14
+ "voice": {
15
+ "style_weights": {
16
+ "Happy": 0.7,
17
+ "Bashful": 0.3
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "label": "容認・受け入れ",
3
+ "description": "軽い信頼・容認(穏やかに受け入れる。信頼 emo_trust より手前)",
4
+ "select": ["!目/*にっこり1", "!口/*ほほえみ"],
5
+ "voice": { "style_weights": { "Normal": 0.6 } }
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "うたた寝①",
3
+ "description": "うたた寝しかけの1ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*ーー",
7
+ "!口/*ん"
8
+ ]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "うたた寝②",
3
+ "description": "うたた寝しかけの2ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*閉じ",
7
+ "!口/*ん"
8
+ ]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "うたた寝③",
3
+ "description": "うたた寝しかけの3ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*ーー",
7
+ "!口/*ん"
8
+ ]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "くすくす①",
3
+ "description": "くすくす笑いの1ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*にっこり1",
7
+ "!口/*むふ"
8
+ ]
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "くすくす②",
3
+ "description": "くすくす笑いの2ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*にっこり2",
7
+ "!口/*にし"
8
+ ]
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "label": "きょろきょろ①",
3
+ "description": "きょろきょろの1ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*基本目セット",
7
+ "!目/*基本目セット/!白目/*白目基本",
8
+ "!目/*基本目セット/*目そらし1"
9
+ ]
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "label": "きょろきょろ②",
3
+ "description": "きょろきょろの2ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*基本目セット",
7
+ "!目/*基本目セット/!白目/*白目基本",
8
+ "!目/*基本目セット/*カメラ目線1"
9
+ ]
10
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "label": "きょろきょろ③",
3
+ "description": "きょろきょろの3ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*基本目セット",
7
+ "!目/*基本目セット/!白目/*白目基本",
8
+ "!目/*基本目セット/*正面1"
9
+ ]
10
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "label": "ぼんやり",
3
+ "description": "ぼんやり考える束の間の仕草(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!目/*上向き1",
7
+ "!口/*んー"
8
+ ]
9
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "ため息①",
3
+ "description": "ため息の1ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!口/*えー"
7
+ ],
8
+ "show": [
9
+ "!頬・顔色/かげり"
10
+ ]
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "label": "ため息②",
3
+ "description": "ため息の2ステップ目(アイドル演出内部用)",
4
+ "internal": true,
5
+ "select": [
6
+ "!口/*ほあー"
7
+ ],
8
+ "show": [
9
+ "!頬・顔色/かげり"
10
+ ]
11
+ }