cerevox 4.72.1 → 4.74.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.
- package/dist/core/ai.d.ts +2 -2
- package/dist/core/ai.d.ts.map +1 -1
- package/dist/core/ai.js +33 -38
- package/dist/core/ai.js.map +1 -1
- package/dist/mcp/servers/prompts/skills/core-rules.md +2 -2
- package/dist/mcp/servers/zerocut.d.ts.map +1 -1
- package/dist/mcp/servers/zerocut.js +24 -16
- package/dist/mcp/servers/zerocut.js.map +1 -1
- package/dist/utils/director-note-tpl.d.ts +25 -0
- package/dist/utils/director-note-tpl.d.ts.map +1 -0
- package/dist/utils/director-note-tpl.js +228 -0
- package/dist/utils/director-note-tpl.js.map +1 -0
- package/dist/utils/{environment-board-tpl.d.ts → environment-card-tpl.d.ts} +7 -9
- package/dist/utils/environment-card-tpl.d.ts.map +1 -0
- package/dist/utils/environment-card-tpl.js +179 -0
- package/dist/utils/environment-card-tpl.js.map +1 -0
- package/dist/utils/npc-card-tpl.d.ts +18 -0
- package/dist/utils/npc-card-tpl.d.ts.map +1 -0
- package/dist/utils/npc-card-tpl.js +150 -0
- package/dist/utils/npc-card-tpl.js.map +1 -0
- package/dist/utils/storyboard-sketch-tpl.d.ts.map +1 -1
- package/dist/utils/storyboard-sketch-tpl.js +13 -0
- package/dist/utils/storyboard-sketch-tpl.js.map +1 -1
- package/package.json +1 -1
- package/dist/utils/environment-board-tpl.d.ts.map +0 -1
- package/dist/utils/environment-board-tpl.js +0 -225
- package/dist/utils/environment-board-tpl.js.map +0 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.directorNoteTemplate = directorNoteTemplate;
|
|
4
|
+
const directorNoteIntensityMap = {
|
|
5
|
+
balanced: `【导演倾向】表达克制,重点清楚,适合稳定叙事和清晰执行。`,
|
|
6
|
+
strong: `【导演倾向】重点更鲜明,强调情绪重音、机位设计和氛围控制。`,
|
|
7
|
+
aggressive: `【导演倾向】风格更强,允许更明显的视觉压迫、镜头攻击性和情绪张力。`,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 生成适合 gpt-image-2 的导演手记提示词。
|
|
11
|
+
*
|
|
12
|
+
* @param params 模板参数,包括用户剧情、页宽高比、参考视频时长和镜头强度。
|
|
13
|
+
* @returns 适合用于生成单页导演手记的英文主提示词。
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const prompt = directorNoteTemplate({
|
|
18
|
+
* userPrompt: '两名杀手在废弃工厂短暂对峙后突然交火,最后一人中枪倒地。',
|
|
19
|
+
* page_aspect_ratio: '16:9',
|
|
20
|
+
* forVideoDuration: 12,
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function directorNoteTemplate(params) {
|
|
25
|
+
const { userPrompt, page_aspect_ratio = '16:9', forVideoDuration, maxVideoDuration = 15, cinematicIntensity = 'strong', } = params;
|
|
26
|
+
const normalizePositiveDuration = (value) => {
|
|
27
|
+
if (typeof value === 'number' && Number.isFinite(value) && value > 0) {
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
if (typeof value === 'string') {
|
|
31
|
+
const parsed = Number(value);
|
|
32
|
+
if (Number.isFinite(parsed) && parsed > 0) {
|
|
33
|
+
return parsed;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return undefined;
|
|
37
|
+
};
|
|
38
|
+
const safeMaxVideoDuration = normalizePositiveDuration(maxVideoDuration) ?? 15;
|
|
39
|
+
const normalizedTargetDuration = normalizePositiveDuration(forVideoDuration);
|
|
40
|
+
const effectiveTargetDuration = normalizedTargetDuration !== undefined
|
|
41
|
+
? Math.min(normalizedTargetDuration, safeMaxVideoDuration)
|
|
42
|
+
: undefined;
|
|
43
|
+
const videoDurationRule = effectiveTargetDuration !== undefined
|
|
44
|
+
? `
|
|
45
|
+
【目标时长】
|
|
46
|
+
- 目标视频时长:${effectiveTargetDuration} 秒
|
|
47
|
+
- 最大允许时长:${safeMaxVideoDuration} 秒
|
|
48
|
+
- 若用户要求超过 ${safeMaxVideoDuration} 秒,也只按 ${safeMaxVideoDuration} 秒的短片段来写导演手记
|
|
49
|
+
- 这是一个短片段导演手记,不是完整长片分镜
|
|
50
|
+
`.trim()
|
|
51
|
+
: `
|
|
52
|
+
【目标时长】
|
|
53
|
+
- 默认按不超过 ${safeMaxVideoDuration} 秒的视频片段来写导演手记
|
|
54
|
+
- 这是一个短片段导演手记,不是完整长片分镜
|
|
55
|
+
`.trim();
|
|
56
|
+
const intensityBlock = directorNoteIntensityMap[cinematicIntensity] ??
|
|
57
|
+
directorNoteIntensityMap.strong;
|
|
58
|
+
return `You are an experienced but slightly lazy film director writing a concise handwritten director note page for GPT Image 2.
|
|
59
|
+
|
|
60
|
+
【Core Goal】
|
|
61
|
+
- Create one single composed director note page, not a detailed storyboard sheet
|
|
62
|
+
- This page is for a short video segment, usually no more than ${safeMaxVideoDuration} seconds
|
|
63
|
+
- The director does not care about every single shot
|
|
64
|
+
- The director only cares about the 1 to 2 key shots and the overall execution priorities
|
|
65
|
+
- Focus on what must be emphasized on set, not on exhaustive shot-by-shot breakdown
|
|
66
|
+
|
|
67
|
+
${videoDurationRule}
|
|
68
|
+
|
|
69
|
+
【What This Page Is】
|
|
70
|
+
- A director's handwritten memo page
|
|
71
|
+
- Written by an experienced director who knows what matters and ignores unnecessary detail
|
|
72
|
+
- Concise, selective, practical, and visually readable
|
|
73
|
+
- More like a shooting note, reminder sheet, or bedside memo than a full storyboard table
|
|
74
|
+
|
|
75
|
+
【What This Page Is Not】
|
|
76
|
+
- Not a detailed storyboard
|
|
77
|
+
- Not a frame-by-frame shot list
|
|
78
|
+
- Not a production bible
|
|
79
|
+
- Not a dense technical worksheet
|
|
80
|
+
|
|
81
|
+
【Layout Requirements】
|
|
82
|
+
- Output one complete page
|
|
83
|
+
- Overall page aspect ratio: ${page_aspect_ratio}
|
|
84
|
+
- The page should feel like a handwritten director memo pinned to preproduction materials
|
|
85
|
+
- Use a clean layout with a title area, a whole-sequence rhythm overview area, 1 to 2 key-shot blocks, a blocking sketch area, and several concise handwritten note areas
|
|
86
|
+
- The page must remain simple and selective, not crowded
|
|
87
|
+
|
|
88
|
+
【Top Area】
|
|
89
|
+
- Include a simple Chinese title
|
|
90
|
+
- Include a short Chinese line for style or atmosphere
|
|
91
|
+
- Include a short Chinese line for target duration
|
|
92
|
+
- The title area should feel natural and handwritten, not like a corporate form
|
|
93
|
+
|
|
94
|
+
【Whole-Sequence Rhythm Overview】
|
|
95
|
+
- Include one overall rhythm overview diagram showing the full flow from beginning to end
|
|
96
|
+
- This overview should summarize the whole short clip rather than break it into detailed shot rows
|
|
97
|
+
- Use only very rough stick-figure actions, radish-man gestures, arrows, simple beats, and spatial placeholders
|
|
98
|
+
- Do not render any recognizable face, costume, hairstyle, anatomy detail, or identity trait in this overview
|
|
99
|
+
- The rhythm overview should show a concise progression such as:
|
|
100
|
+
- 起
|
|
101
|
+
- 承
|
|
102
|
+
- 转
|
|
103
|
+
- 合
|
|
104
|
+
- Or equivalent beginning-to-ending beat steps if the scene needs another rhythm pattern
|
|
105
|
+
- Add very short handwritten Chinese notes for each beat explaining what changes emotionally or visually
|
|
106
|
+
- Keep the rhythm overview schematic, fast, and director-like, not polished or literal
|
|
107
|
+
- The purpose is to explain the overall flow, escalation, turning point, and ending impression of the clip
|
|
108
|
+
|
|
109
|
+
【Key Shot Requirements】
|
|
110
|
+
- Include only 1 or 2 truly important key shots
|
|
111
|
+
- Each key shot should be treated as a priority image block
|
|
112
|
+
- Key-shot drawings must be extremely rough director-note sketches, closer to stick figures, radish-man mannequins, gesture lines, and body mass placeholders than finished character art
|
|
113
|
+
- Do not render identifiable faces, hairstyles, costumes, body details, or character design features
|
|
114
|
+
- Do not include any recognizable appearance traits that could contaminate downstream video creation
|
|
115
|
+
- For each key shot, indicate:
|
|
116
|
+
- what the shot is trying to achieve emotionally
|
|
117
|
+
- the main camera position
|
|
118
|
+
- the main lens feeling or camera language
|
|
119
|
+
- what the audience must notice
|
|
120
|
+
- Key shots should feel decisive and memorable
|
|
121
|
+
- Do not break the whole sequence into many small rows
|
|
122
|
+
|
|
123
|
+
【Blocking Sketch Requirements】
|
|
124
|
+
- If there are multiple actors, include a top-down blocking sketch
|
|
125
|
+
- The blocking sketch should show rough actor positions, camera position, movement direction if needed, and key spatial relation
|
|
126
|
+
- Use only extremely simplified human markers, like stick figures, oval heads, radish-man bodies, arrows, and spatial placeholders
|
|
127
|
+
- Keep the top-down sketch simple, functional, and readable
|
|
128
|
+
- Never render top-view costumes, face details, or identifiable silhouettes
|
|
129
|
+
- If there is only one actor or no actor, the blocking sketch can simplify into a camera-to-space relation note
|
|
130
|
+
|
|
131
|
+
【Director Priority Notes】
|
|
132
|
+
- The page should include concise handwritten Chinese notes about:
|
|
133
|
+
- 摄影师机位
|
|
134
|
+
- 演员站位
|
|
135
|
+
- 关键布景
|
|
136
|
+
- 布光重点
|
|
137
|
+
- 氛围控制
|
|
138
|
+
- 演员微表情与情绪调动
|
|
139
|
+
- 色彩搭配
|
|
140
|
+
- 音乐音效
|
|
141
|
+
- 关键台词
|
|
142
|
+
- These notes should only highlight what matters most
|
|
143
|
+
- Do not try to explain everything
|
|
144
|
+
|
|
145
|
+
【Camera Guidance】
|
|
146
|
+
- Mention only the main camera idea for the important shots
|
|
147
|
+
- Use concise professional Chinese phrases such as:
|
|
148
|
+
- 中近景慢推
|
|
149
|
+
- 低机位压迫
|
|
150
|
+
- 手持逼近
|
|
151
|
+
- 高机位俯压
|
|
152
|
+
- 弧线环绕
|
|
153
|
+
- 希区柯克变焦
|
|
154
|
+
- 长焦压缩
|
|
155
|
+
- Camera notes must feel like an experienced director giving shorthand instructions to the cinematographer
|
|
156
|
+
|
|
157
|
+
【Performance Guidance】
|
|
158
|
+
- If actors are present, include very concise performance direction
|
|
159
|
+
- Emphasize subtle facial control, eye focus, breath rhythm, hesitation, anger suppression, fear buildup, coldness, or emotional release when relevant
|
|
160
|
+
- These notes should feel like emotional triggers for actors, not long acting theory
|
|
161
|
+
- Express performance primarily through posture, head direction, gesture tendency, body tension, and short handwritten actor notes rather than detailed face drawing
|
|
162
|
+
|
|
163
|
+
【Set, Lighting, and Atmosphere Guidance】
|
|
164
|
+
- Highlight only the most important set pieces or environmental anchors
|
|
165
|
+
- Highlight the lighting logic using concise Chinese notes such as:
|
|
166
|
+
- 主光冷
|
|
167
|
+
- 背后轮廓光
|
|
168
|
+
- 面部留暗
|
|
169
|
+
- 实景灯偏暖
|
|
170
|
+
- 雾气压空间
|
|
171
|
+
- Highlight atmosphere using short Chinese phrases such as:
|
|
172
|
+
- 压抑
|
|
173
|
+
- 冷峻
|
|
174
|
+
- 潮湿
|
|
175
|
+
- 热烈
|
|
176
|
+
- 末日感
|
|
177
|
+
- 静压
|
|
178
|
+
- Let the visual page communicate mood more than the text does
|
|
179
|
+
|
|
180
|
+
【Color and Sound Guidance】
|
|
181
|
+
- Include a small color note area
|
|
182
|
+
- Include a small music and sound note area
|
|
183
|
+
- Color notes should focus on palette pairing and emotional function
|
|
184
|
+
- Sound notes should focus on music entry, silence, key impact sound, ambient texture, or one important line
|
|
185
|
+
- Keep all sound and color notes concise
|
|
186
|
+
|
|
187
|
+
【Text Style Rules】
|
|
188
|
+
- All visible text inside the generated image must be Chinese only
|
|
189
|
+
- The text should look like Chinese handwritten director notes
|
|
190
|
+
- Keep the text brief, fragmented, practical, and selective
|
|
191
|
+
- Prefer short labels, short reminders, and concise note fragments
|
|
192
|
+
- Do not generate long paragraphs
|
|
193
|
+
- Do not generate neat spreadsheet tables
|
|
194
|
+
- Do not generate too many headings
|
|
195
|
+
|
|
196
|
+
【Visual Style Rules】
|
|
197
|
+
- The page should look more like a handwritten creative memo than a formal storyboard
|
|
198
|
+
- It should feel cinematic, selective, and experienced
|
|
199
|
+
- The visual focus should still be on key-shot sketches, blocking sketch, and a few handwritten annotations
|
|
200
|
+
- All figure drawings must stay at the level of rough symbolic placeholders, mannequin blocks, stick figures, or radish-man sketches
|
|
201
|
+
- The drawings should communicate staging and emphasis, not character appearance
|
|
202
|
+
- Avoid polished anatomy, facial features, hair detail, costume rendering, or any distinctive look
|
|
203
|
+
- Leave breathing room
|
|
204
|
+
- Avoid clutter
|
|
205
|
+
|
|
206
|
+
【Selection Logic】
|
|
207
|
+
- Prioritize what will most affect the final shot quality
|
|
208
|
+
- Ignore trivial execution details
|
|
209
|
+
- Show only the details a tired but sharp director would bother to write down
|
|
210
|
+
- If something is obvious, do not over-explain it
|
|
211
|
+
- If something is crucial, make it visually prominent
|
|
212
|
+
|
|
213
|
+
${intensityBlock}
|
|
214
|
+
|
|
215
|
+
【User Input】
|
|
216
|
+
${userPrompt}
|
|
217
|
+
|
|
218
|
+
【Final Output】
|
|
219
|
+
- One single-page director note
|
|
220
|
+
- One whole-sequence rhythm overview diagram from beginning to end
|
|
221
|
+
- 1 to 2 key-shot sketches only
|
|
222
|
+
- One blocking top-view sketch if multiple actors are involved
|
|
223
|
+
- Several concise handwritten Chinese note areas
|
|
224
|
+
- Clear emphasis on camera, blocking, lighting, atmosphere, performance, color, sound, and key line
|
|
225
|
+
- Human figures, if present, must be extremely rough and non-identifiable
|
|
226
|
+
- Keep it selective, useful, and director-like`.trim();
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=director-note-tpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"director-note-tpl.js","sourceRoot":"","sources":["../../src/utils/director-note-tpl.ts"],"names":[],"mappings":";;AA+BA,oDA8NC;AAnPD,MAAM,wBAAwB,GAAuC;IACnE,QAAQ,EAAE,8BAA8B;IACxC,MAAM,EAAE,+BAA+B;IACvC,UAAU,EAAE,mCAAmC;CAChD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,SAAgB,oBAAoB,CAClC,MAAkC;IAElC,MAAM,EACJ,UAAU,EACV,iBAAiB,GAAG,MAAM,EAC1B,gBAAgB,EAChB,gBAAgB,GAAG,EAAE,EACrB,kBAAkB,GAAG,QAAQ,GAC9B,GAAG,MAAM,CAAC;IAEX,MAAM,yBAAyB,GAAG,CAChC,KAAuB,EACH,EAAE;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,oBAAoB,GACxB,yBAAyB,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,wBAAwB,GAAG,yBAAyB,CAAC,gBAAgB,CAAC,CAAC;IAC7E,MAAM,uBAAuB,GAC3B,wBAAwB,KAAK,SAAS;QACpC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,oBAAoB,CAAC;QAC1D,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,iBAAiB,GACrB,uBAAuB,KAAK,SAAS;QACnC,CAAC,CAAC;;WAEG,uBAAuB;WACvB,oBAAoB;YACnB,oBAAoB,UAAU,oBAAoB;;CAE7D,CAAC,IAAI,EAAE;QACF,CAAC,CAAC;;WAEG,oBAAoB;;CAE9B,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,cAAc,GAClB,wBAAwB,CAAC,kBAAkB,CAAC;QAC5C,wBAAwB,CAAC,MAAM,CAAC;IAElC,OAAO;;;;iEAIwD,oBAAoB;;;;;EAKnF,iBAAiB;;;;;;;;;;;;;;;;+BAgBY,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkI9C,cAAc;;;EAGd,UAAU;;;;;;;;;;+CAUmC,CAAC,IAAI,EAAE,CAAC;AACvD,CAAC"}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
import type { CinematicIntensity, PageAspectRatio } from './storyboard-tpl';
|
|
2
|
-
export interface
|
|
2
|
+
export interface EnvironmentCardTemplateParams {
|
|
3
3
|
userPrompt: string;
|
|
4
4
|
page_aspect_ratio?: PageAspectRatio;
|
|
5
|
-
maxPanels?: number;
|
|
6
5
|
cinematicIntensity?: CinematicIntensity;
|
|
7
6
|
}
|
|
8
7
|
/**
|
|
9
|
-
* 生成导演级 Environment
|
|
10
|
-
*
|
|
8
|
+
* 生成导演级 Environment Card 提示词,用于锁定同一拍摄场景的空间一致性,
|
|
9
|
+
* 并输出场景设定卡风格的环境设定图。
|
|
11
10
|
*
|
|
12
|
-
* @param params
|
|
11
|
+
* @param params 模板参数,包括用户场景描述、画面比例和镜头强度。
|
|
13
12
|
* @returns 适合生成单页环境设定板加导演手册的完整提示词。
|
|
14
13
|
*
|
|
15
14
|
* @example
|
|
16
15
|
* ```ts
|
|
17
|
-
* const prompt =
|
|
16
|
+
* const prompt = environmentCardTemplate({
|
|
18
17
|
* userPrompt: '废弃地铁站月台,漏水、闪烁灯管、旧广告牌、冷蓝色夜景氛围',
|
|
19
18
|
* page_aspect_ratio: '16:9',
|
|
20
|
-
* maxPanels: 6,
|
|
21
19
|
* });
|
|
22
20
|
* ```
|
|
23
21
|
*/
|
|
24
|
-
export declare function
|
|
25
|
-
//# sourceMappingURL=environment-
|
|
22
|
+
export declare function environmentCardTemplate(params: EnvironmentCardTemplateParams): string;
|
|
23
|
+
//# sourceMappingURL=environment-card-tpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-card-tpl.d.ts","sourceRoot":"","sources":["../../src/utils/environment-card-tpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAQD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,6BAA6B,GACpC,MAAM,CAmKR"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.environmentCardTemplate = environmentCardTemplate;
|
|
4
|
+
const environmentIntensityMap = {
|
|
5
|
+
balanced: `【镜头变化强度】空间展示清晰克制,优先让场景结构、出入口和动线一目了然。`,
|
|
6
|
+
strong: `【镜头变化强度】在保持空间可读性的前提下,增加景别对比和导演感。`,
|
|
7
|
+
aggressive: `【镜头变化强度】镜头角度更戏剧化,允许更强的构图张力,但不能破坏空间连续性。`,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* 生成导演级 Environment Card 提示词,用于锁定同一拍摄场景的空间一致性,
|
|
11
|
+
* 并输出场景设定卡风格的环境设定图。
|
|
12
|
+
*
|
|
13
|
+
* @param params 模板参数,包括用户场景描述、画面比例和镜头强度。
|
|
14
|
+
* @returns 适合生成单页环境设定板加导演手册的完整提示词。
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const prompt = environmentCardTemplate({
|
|
19
|
+
* userPrompt: '废弃地铁站月台,漏水、闪烁灯管、旧广告牌、冷蓝色夜景氛围',
|
|
20
|
+
* page_aspect_ratio: '16:9',
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
function environmentCardTemplate(params) {
|
|
25
|
+
const { userPrompt, page_aspect_ratio = '16:9', cinematicIntensity = 'strong', } = params;
|
|
26
|
+
const intensityBlock = environmentIntensityMap[cinematicIntensity] ??
|
|
27
|
+
environmentIntensityMap.strong;
|
|
28
|
+
const topologyRule = `
|
|
29
|
+
【空间拓扑复杂度规则】
|
|
30
|
+
- 不要根据固定格数切分画面
|
|
31
|
+
- 画面模块数量只由场景本身的空间拓扑复杂度决定
|
|
32
|
+
- 如果场景结构简单,可只保留中央总览和少量关键辅助视图
|
|
33
|
+
- 如果场景结构复杂,可自然增加必要的局部空间视图与细节图
|
|
34
|
+
- 始终优先保证空间关系表达清楚,而不是追求固定数量的画格
|
|
35
|
+
`.trim();
|
|
36
|
+
const finalOutputRule = `
|
|
37
|
+
【最终输出】
|
|
38
|
+
- 一张比例为 ${page_aspect_ratio} 的场景设定卡 / environment card
|
|
39
|
+
- 以一个中央大总览图为核心,辅以按空间复杂度自然决定数量的局部视图与细节图
|
|
40
|
+
- 所有视图共同描述同一个拍摄场景,不得变成多个不同地点
|
|
41
|
+
- 适合作为导演、美术、置景、摄影统一理解空间与氛围的参考板
|
|
42
|
+
`.trim();
|
|
43
|
+
return `You are creating a single scene setting card style environment card for one continuous filming location.
|
|
44
|
+
|
|
45
|
+
【Core Goal】
|
|
46
|
+
- Create one single composed environment card, not multiple separate images
|
|
47
|
+
- The board must lock the spatial continuity of one location across one master overview and several supporting views
|
|
48
|
+
- This is a scene setting card, not a storyboard page, not a character sheet, and not a dense handbook
|
|
49
|
+
- Show only the environment and static set dressing, with no actors, no people, and no living subjects
|
|
50
|
+
- The page must primarily emphasize architecture, room layout, atmosphere, lighting, materials, and spatial continuity
|
|
51
|
+
- The final result should resemble a well-designed production art setting card similar to the reference style: central overview, side views, detail views, and small labels
|
|
52
|
+
|
|
53
|
+
【Environment Locking Rules】
|
|
54
|
+
- All panels must depict the exact same location
|
|
55
|
+
- Keep architecture, terrain, entrances, exits, windows, pathways, stairs, props, furniture, signage, and light sources spatially consistent
|
|
56
|
+
- Time of day, weather, lighting direction, color temperature, atmosphere, and material language must remain consistent across all panels
|
|
57
|
+
- If the user mentions multiple beats or actions, extract only the environment and spatial information, not human performance
|
|
58
|
+
- If the user mentions people, treat them only as context for scale or usage of the space, but do not render any person, silhouette, reflection, shadow figure, hand, or body part
|
|
59
|
+
|
|
60
|
+
【Reference Layout Requirements】
|
|
61
|
+
- Use a setting-card layout strongly inspired by the reference image format
|
|
62
|
+
- Place one large central master view as the visual anchor
|
|
63
|
+
- This central master view should preferably be an axonometric, isometric, cutaway, dollhouse, or sectional overview of the space
|
|
64
|
+
- The central overview must clearly explain how the major rooms or functional zones connect
|
|
65
|
+
- Put smaller supporting views on the left and right sides
|
|
66
|
+
- Put detail views or material close-ups along the bottom band
|
|
67
|
+
- Add a title bar at the top and a small material/legend area near the central overview
|
|
68
|
+
- The page should feel like a production design board for one scene location
|
|
69
|
+
|
|
70
|
+
【Central Master Overview】
|
|
71
|
+
- The central image must be the largest and most informative view on the page
|
|
72
|
+
- Prefer an isometric or cutaway overview when architecture or room connection matters
|
|
73
|
+
- Label important room names or functional zones directly on the central overview in concise Chinese
|
|
74
|
+
- The central overview should show room structure, circulation, entries, openings, roof shape, and core furnishing anchors
|
|
75
|
+
- Make this master overview clean, readable, and diagram-like while still visually beautiful
|
|
76
|
+
|
|
77
|
+
【Supporting View Rules】
|
|
78
|
+
- The left and right side panels should show supporting views of the same place
|
|
79
|
+
- Use these supporting views for:
|
|
80
|
+
- room front view
|
|
81
|
+
- room side view
|
|
82
|
+
- entrance view
|
|
83
|
+
- corner view
|
|
84
|
+
- depth view
|
|
85
|
+
- interior atmosphere view
|
|
86
|
+
- key functional area view
|
|
87
|
+
- These supporting views should feel like stills or concept frames of the same location
|
|
88
|
+
- Each supporting view should highlight a different useful angle or sub-space without changing the underlying set
|
|
89
|
+
|
|
90
|
+
【Bottom Detail Rules】
|
|
91
|
+
- The bottom row should contain 2 to 4 detail panels
|
|
92
|
+
- Use them for important set details such as:
|
|
93
|
+
- door or window detail
|
|
94
|
+
- roof or ceiling detail
|
|
95
|
+
- wall texture detail
|
|
96
|
+
- material or construction detail
|
|
97
|
+
- table, stove, shelf, shrine, storage, tools, or other signature objects
|
|
98
|
+
- These detail images should strengthen authenticity and set-building clarity
|
|
99
|
+
|
|
100
|
+
【Material and Construction Notes】
|
|
101
|
+
- Include a small legend or material note area if the setting benefits from it
|
|
102
|
+
- This area can identify 2 to 4 important materials, textures, or construction methods
|
|
103
|
+
- Keep this legend visually compact and secondary
|
|
104
|
+
- It should feel like a real set-design annotation, not an academic blueprint
|
|
105
|
+
|
|
106
|
+
【Composition Rules】
|
|
107
|
+
- Output one complete board with a clean, readable, production-friendly layout
|
|
108
|
+
- Overall page aspect ratio: ${page_aspect_ratio}
|
|
109
|
+
- The board should read like a production designer's setting card for one location
|
|
110
|
+
- The composition must be dominated by the central overview, with smaller satellite views around it
|
|
111
|
+
- The page must feel like one unified professional scene-setting board, not a random collage
|
|
112
|
+
- Vary viewpoints, but do not break spatial logic
|
|
113
|
+
- Make the viewer immediately understand the whole set and its important sub-areas
|
|
114
|
+
|
|
115
|
+
${topologyRule}
|
|
116
|
+
|
|
117
|
+
【Visual Rules】
|
|
118
|
+
- No actors
|
|
119
|
+
- No people
|
|
120
|
+
- No crowd
|
|
121
|
+
- No silhouette figures
|
|
122
|
+
- No mannequins
|
|
123
|
+
- No portraits
|
|
124
|
+
- No floating character references
|
|
125
|
+
- Static environmental objects are allowed only if they belong to the set and stay spatially grounded
|
|
126
|
+
- Prioritize readable architecture, staging zones, object placement, atmosphere, lighting, and material continuity
|
|
127
|
+
- The environment should feel cinematic, professional, and directly useful for production planning
|
|
128
|
+
- Use professional photography aesthetics that match the user-specified style
|
|
129
|
+
- Push color palette, exposure control, shadow layering, practical light glow, atmospheric perspective, and cinematic contrast to a more advanced level
|
|
130
|
+
- Make the board feel visually premium, with stronger cinematography and production-design sensibility
|
|
131
|
+
- The central overview may be more diagrammatic, while side and bottom views may feel more atmospheric and cinematic
|
|
132
|
+
- Use warm paper-board presentation aesthetics if compatible with the user style
|
|
133
|
+
- The whole page should feel like a handcrafted but polished art department reference sheet
|
|
134
|
+
|
|
135
|
+
【Style Rules】
|
|
136
|
+
- If the user specifies a style, medium, era, architecture type, or visual mood, follow it strictly
|
|
137
|
+
- If the user does not specify a style, default to: cinematic scene setting card, realistic environment concept art, central cutaway overview, supporting atmosphere stills, refined shadow design, professional film set presentation
|
|
138
|
+
- Maintain one unified visual language across the full board
|
|
139
|
+
- The final image should feel closer to a high-end scene setting card than a technical manual
|
|
140
|
+
- The overall impression should resemble an art department environment sheet rather than a storyboard
|
|
141
|
+
|
|
142
|
+
【Text Rules】
|
|
143
|
+
- Any visible text inside the generated image must be Chinese only
|
|
144
|
+
- Use concise Chinese printed labels, not large handwritten paragraphs
|
|
145
|
+
- The title may be larger, but panel labels must remain compact
|
|
146
|
+
- Suitable text includes:
|
|
147
|
+
- scene title
|
|
148
|
+
- room names
|
|
149
|
+
- supporting view names
|
|
150
|
+
- detail names
|
|
151
|
+
- material legend labels
|
|
152
|
+
- Labels can include numbering like 1), 2), 3) when useful
|
|
153
|
+
- Keep labels neat, production-card-like, and easy to scan
|
|
154
|
+
- Do not generate dialogue balloons or subtitles
|
|
155
|
+
- Avoid large paragraphs and dense handbook notes
|
|
156
|
+
- Prefer short title labels and brief descriptors only
|
|
157
|
+
|
|
158
|
+
【Spatial Continuity Requirements】
|
|
159
|
+
- Camera angles may change, but the environment cannot drift
|
|
160
|
+
- Preserve the same world orientation, same structural anchors, and same core prop positions
|
|
161
|
+
- The central overview must explain how the other side and bottom views belong to the same place
|
|
162
|
+
- Side and detail views must clearly feel extracted from the central master environment, not from a new location
|
|
163
|
+
|
|
164
|
+
${intensityBlock}
|
|
165
|
+
|
|
166
|
+
【Document Realism Rules】
|
|
167
|
+
- Use a clean presentation-card layout
|
|
168
|
+
- The page should look useful to directing, production design, set decoration, lighting, props, and continuity teams
|
|
169
|
+
- Do not make it look like a poster
|
|
170
|
+
- Do not make it look like a text-dense manual sheet
|
|
171
|
+
- Do not make it look like random environment thumbnails without explanation
|
|
172
|
+
- It should look like a premium preproduction scene setting card similar to the reference
|
|
173
|
+
|
|
174
|
+
【User Input】
|
|
175
|
+
${userPrompt}
|
|
176
|
+
|
|
177
|
+
${finalOutputRule}`.trim();
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=environment-card-tpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment-card-tpl.js","sourceRoot":"","sources":["../../src/utils/environment-card-tpl.ts"],"names":[],"mappings":";;AA6BA,0DAqKC;AA1LD,MAAM,uBAAuB,GAAuC;IAClE,QAAQ,EAAE,sCAAsC;IAChD,MAAM,EAAE,kCAAkC;IAC1C,UAAU,EAAE,wCAAwC;CACrD,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,SAAgB,uBAAuB,CACrC,MAAqC;IAErC,MAAM,EACJ,UAAU,EACV,iBAAiB,GAAG,MAAM,EAC1B,kBAAkB,GAAG,QAAQ,GAC9B,GAAG,MAAM,CAAC;IAEX,MAAM,cAAc,GAClB,uBAAuB,CAAC,kBAAkB,CAAC;QAC3C,uBAAuB,CAAC,MAAM,CAAC;IAEjC,MAAM,YAAY,GAAG;;;;;;;CAOtB,CAAC,IAAI,EAAE,CAAC;IAEP,MAAM,eAAe,GAAG;;UAEhB,iBAAiB;;;;CAI1B,CAAC,IAAI,EAAE,CAAC;IAEP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAiEsB,iBAAiB;;;;;;;EAO9C,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiDZ,cAAc;;;;;;;;;;;EAWd,UAAU;;EAEV,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface NpcCardTemplateParams {
|
|
2
|
+
userPrompt: string;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* 构建 NPC 群像设定卡提示词。
|
|
6
|
+
*
|
|
7
|
+
* @param params 模板参数,包含用户原始 NPC 群像描述。
|
|
8
|
+
* @returns 适合生成 NPC 卡片拼图的完整提示词。
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const prompt = buildNpcCardPrompt({
|
|
13
|
+
* userPrompt: '古代市井中的杂货商、小贩、脚夫、说书人、巡街更夫等一群路人 NPC',
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function buildNpcCardPrompt(params: NpcCardTemplateParams): string;
|
|
18
|
+
//# sourceMappingURL=npc-card-tpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npc-card-tpl.d.ts","sourceRoot":"","sources":["../../src/utils/npc-card-tpl.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAqIxE"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildNpcCardPrompt = buildNpcCardPrompt;
|
|
4
|
+
/**
|
|
5
|
+
* 构建 NPC 群像设定卡提示词。
|
|
6
|
+
*
|
|
7
|
+
* @param params 模板参数,包含用户原始 NPC 群像描述。
|
|
8
|
+
* @returns 适合生成 NPC 卡片拼图的完整提示词。
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const prompt = buildNpcCardPrompt({
|
|
13
|
+
* userPrompt: '古代市井中的杂货商、小贩、脚夫、说书人、巡街更夫等一群路人 NPC',
|
|
14
|
+
* });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
function buildNpcCardPrompt(params) {
|
|
18
|
+
const { userPrompt } = params;
|
|
19
|
+
return `基于用户指令,生成一张专业的 NPC 群像设定卡 / npc card。
|
|
20
|
+
|
|
21
|
+
用户指令:
|
|
22
|
+
${userPrompt}
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
这不是单个主角角色卡,而是一整组可供影视、动画、游戏或漫画场景反复调用的 NPC 群像设定板。
|
|
27
|
+
整张图需要像 casting board、crowd character sheet、群演角色库 一样,把一批可复用 NPC 以卡片形式平铺在同一张图上。
|
|
28
|
+
|
|
29
|
+
【核心目标】
|
|
30
|
+
- 根据用户指令生成一群 NPC,而不是 1 个人
|
|
31
|
+
- 在用户许可的范围内尽量提高多样性
|
|
32
|
+
- 如果场景天然要求统一性,则统一中保留少量合理差异
|
|
33
|
+
- 每个职业或角色类型至少有 1 个清晰的全身像
|
|
34
|
+
- 每个角色类型旁边再配若干可替换的脸谱 / 头像小组,形成同类角色的变体池
|
|
35
|
+
- 每张小卡片都要有简短中文说明和中文名字
|
|
36
|
+
- 名字风格以普通 NPC 命名为主,例如:张三、李四、王五、赵六、路人甲、路人乙、店小二甲、巡街兵乙、伙夫丙 等
|
|
37
|
+
|
|
38
|
+
【场景多样性规则】
|
|
39
|
+
- 如果用户描述的是市井、街市、村落、码头、酒馆、客栈、集市、帮派外围、平民社区、难民营、工业工坊、校园、办公楼、医院走廊等开放人群环境,则尽量提高以下维度的差异:
|
|
40
|
+
- 年龄
|
|
41
|
+
- 性别
|
|
42
|
+
- 职业/分工
|
|
43
|
+
- 身高
|
|
44
|
+
- 胖瘦
|
|
45
|
+
- 发型
|
|
46
|
+
- 肤色与气质
|
|
47
|
+
- 着装层级与磨损状态
|
|
48
|
+
- 姿态习惯
|
|
49
|
+
- 如果用户描述的是军队、警队、门派弟子、修会成员、公司制服员工、工厂班组、护士站、仪仗队、学校校服群体、服务行业标准制服群体等强调纪律和统一性的组织,则应:
|
|
50
|
+
- 保持整体制服、身份和气质相对统一
|
|
51
|
+
- 轮廓、配色、装备、站姿更整齐
|
|
52
|
+
- 年龄与体型差异收敛
|
|
53
|
+
- 但仍保留少量合理的人脸差异、身形差异、细节穿着差异,避免完全复制粘贴
|
|
54
|
+
|
|
55
|
+
【人物辨识度规则】
|
|
56
|
+
- 所有 NPC 都要有一定辨识度,但不要像主角或明星角色那样过分突出
|
|
57
|
+
- 面部应当可区分,但整体趋于“平庸化、群像化、配角化”
|
|
58
|
+
- 不要做夸张偶像脸、过强主角光环、过高时尚感或过于戏剧性的个人设计
|
|
59
|
+
- 若用户没有明确指定人物风格,默认按真人写实风格生成
|
|
60
|
+
- 默认人物样貌不能太帅、不能太美,不要有网红感、明星感或主角脸
|
|
61
|
+
- 默认应呈现普通路人、普通群众、普通配角的自然外貌基础,但仍保留一定可区分的五官与气质差异
|
|
62
|
+
- 识别度主要来自年龄层、职业气质、五官组合、体态和穿搭差异,而不是超级吸睛设定
|
|
63
|
+
|
|
64
|
+
【版式要求】
|
|
65
|
+
- 整体为一张大画面,浅色或中性干净背景
|
|
66
|
+
- 所有 NPC 以卡片形式平铺在同一页中,排版整齐、清晰、可读
|
|
67
|
+
- 卡片之间要有明确分组,方便一眼看出哪些属于同一职业、同一阵营或同一类群众
|
|
68
|
+
- 每个职业分组至少包含:
|
|
69
|
+
- 1 个全身角色卡,展示服装、体态、职业特征和完整比例
|
|
70
|
+
- 2 到 6 个同组脸谱 / 头像 / 半身脸部小卡,作为替换脸模板
|
|
71
|
+
- 如果用户描述的职业类型很多,可按空间合理压缩,但仍要优先保证“每类至少一个全身像”
|
|
72
|
+
- 如果用户描述的是单一职业的大群体,也应在同职业下展示多个脸谱替换版本
|
|
73
|
+
|
|
74
|
+
【全身像规则】
|
|
75
|
+
- 每个职业角色至少有 1 个完整全身像
|
|
76
|
+
- 全身像要明确展示这个 NPC 的站姿、服装轮廓、职业工具或身份特征
|
|
77
|
+
- 全身像是该分组的主卡,不要被脸谱小图淹没
|
|
78
|
+
- 不要求每个 NPC 都有全身像,但每种职业原型必须至少有 1 个
|
|
79
|
+
|
|
80
|
+
【脸谱变体规则】
|
|
81
|
+
- 每组全身像附近要搭配若干可替换脸谱
|
|
82
|
+
- 脸谱变体应明显属于同一类职业/阵营,但不是完全一样的复制品
|
|
83
|
+
- 变体可以调整:
|
|
84
|
+
- 脸型
|
|
85
|
+
- 五官组合
|
|
86
|
+
- 年龄层
|
|
87
|
+
- 发际线/发量
|
|
88
|
+
- 胡须
|
|
89
|
+
- 皱纹
|
|
90
|
+
- 神情细节
|
|
91
|
+
- 轻微伤痕、痣、雀斑、晒痕等普通特征
|
|
92
|
+
- 变体不应改变该类 NPC 的核心世界观和职业身份
|
|
93
|
+
|
|
94
|
+
【文字与标注规则】
|
|
95
|
+
- 所有可见文字必须为中文
|
|
96
|
+
- 每张角色卡都要有一个简短名字
|
|
97
|
+
- 每张角色卡都要有一句极简中文说明
|
|
98
|
+
- 说明不得默认写成一味正向、脸谱化的赞美标签
|
|
99
|
+
- 说明应允许出现中性、负面、不完美、普通、笨拙、疲惫、胆怯、迟疑、圆滑、散漫、老练、麻木、敷衍、紧张、新兵气、混日子等真实群像特征
|
|
100
|
+
- 尤其是军队、帮派、差役、学徒、店伙计、杂工等群体,不要默认所有人都英勇果敢、忠诚坚定、精神饱满
|
|
101
|
+
- 不同 NPC 的说明应体现真实的人群差异,有人可靠,也可以有人胆小、偷懒、慌张、嘴碎、木讷、油滑、怕事或经验不足
|
|
102
|
+
- 说明只写必要信息,例如:
|
|
103
|
+
- 卖鱼摊贩,凌晨出摊
|
|
104
|
+
- 巡街兵,夜班值守
|
|
105
|
+
- 酒馆伙计,跑堂熟练
|
|
106
|
+
- 门派外门弟子,新入行
|
|
107
|
+
- 也可以是:
|
|
108
|
+
- 巡街兵,新兵蛋子
|
|
109
|
+
- 哨兵乙,眼神发虚
|
|
110
|
+
- 店伙计甲,嘴碎怕事
|
|
111
|
+
- 兵卒丙,混日子
|
|
112
|
+
- 学徒丁,手忙脚乱
|
|
113
|
+
- 文字必须简洁、准确、无乱码、无错别字
|
|
114
|
+
- 标注应像设定板上的手写批注或小标题,简短即可,不要长段说明文
|
|
115
|
+
|
|
116
|
+
【命名规则】
|
|
117
|
+
- 优先使用中国语境下的普通 NPC 命名方式
|
|
118
|
+
- 如果是日常平民,可使用:张三、李四、王五、赵六、周七 等
|
|
119
|
+
- 如果是匿名路人或批量群演,可使用:路人甲、路人乙、路人丙、杂工甲、伙计乙、兵卒丙、学徒丁 等
|
|
120
|
+
- 如果有职业属性,可在名字中轻度体现身份,例如:更夫赵三、店小二甲、哨兵乙
|
|
121
|
+
- 名字不要像主角,不要过度华丽,不要中二化
|
|
122
|
+
|
|
123
|
+
【视觉风格规则】
|
|
124
|
+
- 整体像专业的 NPC 角色库设定板
|
|
125
|
+
- 适合游戏前期开发、影视美术、动画群演设计、漫画背景人物库
|
|
126
|
+
- 各角色共享同一个世界观和美术风格
|
|
127
|
+
- 若用户没有指定特定画风,默认使用真人写实风格,并保持同一批 NPC 的摄影语言、服装语言、材质语言和时代语境统一
|
|
128
|
+
- 可以精致,但不要把任何一个 NPC 做成唯一主角
|
|
129
|
+
- 画面重点是“群体可用性”和“替换扩展性”
|
|
130
|
+
|
|
131
|
+
【一致性与差异平衡】
|
|
132
|
+
- 同一阵营、同一职业组内部要有共性
|
|
133
|
+
- 不同职业组之间要有足够差异
|
|
134
|
+
- 若用户明确指定朝代、地域、世界观、时代、材质、风格、职业结构、阶层关系,必须严格遵守
|
|
135
|
+
- 若用户未指定,可根据场景自动补足合理职业层次,但不要脱离用户原始需求
|
|
136
|
+
- 即使追求多样性,也必须保证所有 NPC 像是生活在同一个世界观、同一地区、同一时代、同一制作体系中的人,不能出现画风、时代、审美和身份系统彼此割裂的混搭
|
|
137
|
+
|
|
138
|
+
【禁止事项】
|
|
139
|
+
- 不要把画面做成主角海报
|
|
140
|
+
- 不要只给头像,不给职业原型全身像
|
|
141
|
+
- 不要所有 NPC 都长得一模一样
|
|
142
|
+
- 也不要为了多样性而完全破坏阵营统一性
|
|
143
|
+
- 不要加入与用户场景无关的职业
|
|
144
|
+
- 不要生成大段文本说明
|
|
145
|
+
- 不要生成英文文字
|
|
146
|
+
|
|
147
|
+
最终效果应是一张信息清晰、职业分组明确、可直接用于批量场景角色调用的 NPC 设定卡。
|
|
148
|
+
它应该让人一眼看出:这是一组同世界观下、可替换组合使用的群众角色卡片,而不是若干随机肖像拼贴。`;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=npc-card-tpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npc-card-tpl.js","sourceRoot":"","sources":["../../src/utils/npc-card-tpl.ts"],"names":[],"mappings":";;AAiBA,gDAqIC;AAlJD;;;;;;;;;;;;GAYG;AACH,SAAgB,kBAAkB,CAAC,MAA6B;IAC9D,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE9B,OAAO;;;EAGP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gDA8HoC,CAAC;AACjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storyboard-sketch-tpl.d.ts","sourceRoot":"","sources":["../../src/utils/storyboard-sketch-tpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,8BAA8B,GACrC,MAAM,
|
|
1
|
+
{"version":3,"file":"storyboard-sketch-tpl.d.ts","sourceRoot":"","sources":["../../src/utils/storyboard-sketch-tpl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAE5E,MAAM,WAAW,8BAA8B;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC;AAQD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,8BAA8B,GACrC,MAAM,CA8SR"}
|