@adiholick/nvstudio-mcp 2.4.0 → 2.4.2
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/agent-plugin/rules/AGENTS.md +25 -0
- package/agent-plugin/skills/nvstudio-animation-vfx/SKILL.md +98 -1
- package/data/vfx-database.json +266475 -0
- package/dist/build-plugin.js +6 -1
- package/dist/vfx-database.js +7 -2
- package/package.json +3 -2
- package/public/index.html +3 -3
- package/studio-plugin/Main.server.lua +10 -4
- package/studio-plugin/nvstudio_mcp.rbxmx +18 -6
- package/studio-plugin/ui_manager.lua +8 -2
|
@@ -114,5 +114,30 @@ Saat memeriksa, membuat, atau memodifikasi sendi karakter (`Motor6D` / `Weld`):
|
|
|
114
114
|
- **PENGELASAN ASSEMBLY SENJATA/PROP**: Gunakan `weld_assembly` untuk menyatukan seluruh komponen prop/senjata secara kaku ke part pegangan sebelum ditautkan ke karakter.
|
|
115
115
|
- **DOKUMENTASI REFERENSI LENGKAP**: lihat `docs/NV_RIG_ENGINE_GUIDE.md`.
|
|
116
116
|
|
|
117
|
+
## 11. Standar Dekomposisi VFX Prosedural & Protokol Creator Store Higienis (Anti-Shortcut Ground Truth)
|
|
118
|
+
Saat diminta merancang efek visual, sihir, aura, proyektil, atau skill anime/game (seperti Rasengan, Fireball, Katana Slash, Aura Super, dll):
|
|
119
|
+
- **HAKEKAT DASAR VFX**: Sejatinya sebuah efek visual di Roblox adalah gabungan dari gambar/decal/tekstur 2D yang diputar (`RotSpeed`), diskalakan (`SizeSequence`), diinterpolasi warnanya (`ColorSequence`), dipancarkan via `ParticleEmitter` / `Beam` / `Trail`, diperkaya pencahayaan dinamis (`PointLight`), dan disinkronkan dengan efek suara (`Sound`).
|
|
120
|
+
- **LARANGAN KERAS PENGGUNAAN MENTAH (ANTI-RAW MODEL SHORTCUT)**:
|
|
121
|
+
- Dilarang keras mengandalkan free model Creator Store yang disuntikkan secara mentah ke karakter atau workspace dengan script bawaannya yang rentan backdoor, malware, laggy loop, dan ukuran tidak proporsional.
|
|
122
|
+
- **KATEGORI CREATOR STORE RESMI YANG DIIZINKAN**:
|
|
123
|
+
- `Images` (Decals/Textures): Mengambil aset visual 2D murni (misal: *wind swirl*, *energy blade*, *magic ring*, *lightning sprite*, *flipbook sheet*) tanpa risiko kode eksekusi.
|
|
124
|
+
- `Visual Effects` (Sub-kategori `Particle Effects`): Mengambil preset partikel kompleks.
|
|
125
|
+
- `Audio`: Mengambil efek suara resmi (*charge whine*, *whoosh*, *blast*, *boom*).
|
|
126
|
+
- **PROTOKOL PEMBEDAHAN ASET (ASSET SURGERY PROTOCOL)**:
|
|
127
|
+
Jika mengimpor aset dari kategori `Visual Effects` atau Model:
|
|
128
|
+
1. **Audit Keamanan Mutlak**: Wajib panggil `scan_security` untuk memusnahkan seluruh script, backdoor, dan `require(id)`.
|
|
129
|
+
2. **Dekomposisi Visual**: Ekstrak HANYA objek visual murni (`ParticleEmitter`, `Beam`, `Attachment`, `TextureId`, sequences).
|
|
130
|
+
3. **Pemusnahan Container**: Hapus model pembungkus asli beserta script-scriptnya.
|
|
131
|
+
4. **Rekonstruksi Higienis**: Pasang partikel bersih ke anchor/rig karakter menggunakan `batch_create_instances` / `set_properties`.
|
|
132
|
+
5. **Simpan ke Database**: Simpan konfigurasi ke NV-VFX Database via `scan_vfx` agar menjadi aset mandiri portabel proyek.
|
|
133
|
+
- **BLUEPRINT 5-LAYER PROSEDURAL WAJIB**:
|
|
134
|
+
Setiap efek skill berkekuatan tinggi wajib dibangun dengan dekomposisi 5 layer:
|
|
135
|
+
1. *Core Anchor*: Part/Mesh Ball Neon transparan + Attachment pusat rotasi.
|
|
136
|
+
2. *Dynamic Emitters*: `ParticleEmitter` akselerasi inward (hisapan angin/energi) dengan `RotSpeed` tinggi.
|
|
137
|
+
3. *Ribbons & Blades*: `Beam` atau `Trail` silang (*X-Shape*) membentuk bilah tajam memotong.
|
|
138
|
+
4. *Atmosphere & Glow*: `PointLight` dinamis (pantulan ke tubuh karakter) + cincin shockwave tanah.
|
|
139
|
+
5. *Acoustic Feedback*: Objek `Sound` (Charge high-pitch whine + Burst impact).
|
|
140
|
+
|
|
141
|
+
|
|
117
142
|
|
|
118
143
|
|
|
@@ -108,7 +108,7 @@ Gunakan tool `scan_vfx` pada Project A untuk mengekstrak seluruh hierarki partik
|
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
|
-
##
|
|
111
|
+
## 6. Terapkan Efek Visual di Proyek Lain (`apply_vfx`)
|
|
112
112
|
|
|
113
113
|
Buka proyek baru (Project B), lalu panggil `apply_vfx` untuk menginstansiasi efek visual yang tersimpan dengan fidelitas 100%.
|
|
114
114
|
|
|
@@ -118,3 +118,100 @@ Buka proyek baru (Project B), lalu panggil `apply_vfx` untuk menginstansiasi efe
|
|
|
118
118
|
- `scale`: Skala ukuran efek (contoh: `1.5` untuk memperbesar 50%, `0.8` untuk mengecilkan 20%).
|
|
119
119
|
- `enabled`: Boolean opsional untuk menyalakan/mematikan seluruh emitter saat pertama dibuat.
|
|
120
120
|
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 7. Dekomposisi Partikel Prosedural & Pembedahan Aset Creator Store (Asset Surgery)
|
|
124
|
+
|
|
125
|
+
DILARANG mengambil free model mentah dari Creator Store untuk efek skill/kemampuan game. Seluruh efek wajib dirakit secara prosedural atau dibedah secara higienis melalui alur berikut:
|
|
126
|
+
|
|
127
|
+
### A. Blueprint 5-Layer Prosedural Wajib:
|
|
128
|
+
1. **Core Anchor**: Objek bola neon (`Ball`, `Neon`, transparansi $0.2-0.4$) atau `Attachment` pusat gravitasi.
|
|
129
|
+
2. **Rotational Emitters**: `ParticleEmitter` berkecepatan putar tinggi (`RotSpeed = [400, 700]`) dengan akselerasi inward (menyedot ke pusat).
|
|
130
|
+
3. **Ribbons & Blades**: 4 `Beam` atau `ParticleEmitter` silang (*X-Shape*) untuk membentuk bilah energi berputar.
|
|
131
|
+
4. **Atmosphere & Shockwave**: `PointLight` dinamis (Range: 12, Brightness: 3, Color Cyan/Orange) + partikel cincin gelombang kejut (*Ring Wave*).
|
|
132
|
+
5. **Acoustic SFX**: Objek `Sound` (Charge whine frekuensi tinggi + Burst explosion impact).
|
|
133
|
+
|
|
134
|
+
### B. Pengambilan Aset Creator Store yang Sah & Higienis:
|
|
135
|
+
- **`Images` (Decals/Textures)**: Cari aset visual 2D (seperti *wind swirl*, *energy blade*, *magic ring*, *lightning sprite*). Salin `Texture` ID dan gunakan langsung di properti `Texture` dari `ParticleEmitter` atau `Beam`.
|
|
136
|
+
- **`Visual Effects` (Sub-kategori `Particle Effects`)**: Jika mengimpor preset partikel kompleks:
|
|
137
|
+
1. Jalankan `scan_security` untuk memastikan 100% bebas script backdoor dan `require(id)`.
|
|
138
|
+
2. Ekstrak hanya instance visual (`ParticleEmitter`, `Beam`, sequences).
|
|
139
|
+
3. Hapus model pembungkus asli dan seluruh script bawaan.
|
|
140
|
+
4. Rakit ulang ke rig karakter via `batch_create_instances`.
|
|
141
|
+
5. Simpan ke NV-VFX Database via `scan_vfx`.
|
|
142
|
+
|
|
143
|
+
### C. Contoh Blueprint Perakitan Prosedural (`batch_create_instances`):
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"instances": [
|
|
147
|
+
{
|
|
148
|
+
"className": "Attachment",
|
|
149
|
+
"parent": "Workspace.Dummy.RightHand",
|
|
150
|
+
"name": "RasenAnchor",
|
|
151
|
+
"properties": {
|
|
152
|
+
"Position": [0, -1.2, 0]
|
|
153
|
+
},
|
|
154
|
+
"children": [
|
|
155
|
+
{
|
|
156
|
+
"className": "Part",
|
|
157
|
+
"name": "CoreOrb",
|
|
158
|
+
"properties": {
|
|
159
|
+
"Shape": "Ball",
|
|
160
|
+
"Size": [1.2, 1.2, 1.2],
|
|
161
|
+
"Material": "Neon",
|
|
162
|
+
"Color": [0, 0.85, 1],
|
|
163
|
+
"Transparency": 0.25,
|
|
164
|
+
"CanCollide": false,
|
|
165
|
+
"Anchored": false
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"className": "ParticleEmitter",
|
|
170
|
+
"name": "InwardSwirl",
|
|
171
|
+
"properties": {
|
|
172
|
+
"Rate": 60,
|
|
173
|
+
"Lifetime": [0.3, 0.5],
|
|
174
|
+
"Speed": [1, 3],
|
|
175
|
+
"RotSpeed": [400, 800],
|
|
176
|
+
"Acceleration": [0, 0, 0],
|
|
177
|
+
"Color": [
|
|
178
|
+
[0, [0.4, 0.9, 1]],
|
|
179
|
+
[1, [0.9, 1, 1]]
|
|
180
|
+
],
|
|
181
|
+
"Size": [
|
|
182
|
+
[0, 1.8, 0],
|
|
183
|
+
[1, 0.2, 0]
|
|
184
|
+
],
|
|
185
|
+
"Transparency": [
|
|
186
|
+
[0, 0.8, 0],
|
|
187
|
+
[0.5, 0.1, 0],
|
|
188
|
+
[1, 1, 0]
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"className": "PointLight",
|
|
194
|
+
"name": "AmbientGlow",
|
|
195
|
+
"properties": {
|
|
196
|
+
"Color": [0, 0.8, 1],
|
|
197
|
+
"Range": 14,
|
|
198
|
+
"Brightness": 3.5,
|
|
199
|
+
"Shadows": true
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"className": "Sound",
|
|
204
|
+
"name": "ChargeSFX",
|
|
205
|
+
"properties": {
|
|
206
|
+
"Volume": 0.85,
|
|
207
|
+
"Looped": true,
|
|
208
|
+
"PlaybackSpeed": 1.15
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
|