risum 모듈 — RISU modules[] — 기능 확장
조회 1893 · 2026-03-23
https://drive.proton.me/urls/5Y9BX5W8K8#CGELJK0y4UcK (프로톤 링크) 수정사항 : - 03-24: 제목바꿈. 정보를 직관적으로 전달하지 못하는거 같아서. 에셋 이미지 예시(약후방) 왜 약후방이냐면 복장이 슬링샷이라 노출이 심하기 때문이다. 이 모듈은 등장인물 중 누군가가 다이아 하트로 변신하면 활성화되는 에셋 이미지와 간단한 다이아 하트 설정이 적힌 로어북이 포함되어있음. 마법소녀 NPC에 대한 캐릭터 설정이 아닌, 이미 등장한 인물(user, char, 혹은 시뮬봇 도중에 등장한 NPC)을 '다이아 하트' 라는 이름의 마법소녀로 변신시키는 용도임. 해당 인물의 성격이나 기타 설정은 그대로고 몸만 다이아 하트라는 빵빵한 마법소녀로 바뀌는 거. 기존 에셋이 존재할 경우, 다이아 하트 변신 해제시까지 사용하지 말라는 지시를 넣어둠. 다이아 하트의 외형은 얼굴은 10대 후반이지만 가슴이 머리만하고 허리는 가느다란데 엉덩이랑 허벅지가 빵빵하다고 넣었다. 그 외엔 귀엽거나 깜찍하거나 마법소녀 다운 행동을 할 수록 스펙과 능력치가 상승하고, 일단 전투를 하게 되면 변신한 인물에 적합한 스타일의 전투를 구현해준다고 써놨지만 이건 전투를 안해봐서 어디까지 해줄지는 모르겠다. 그 외엔 특별히 디테일한 설정은 없음. NSFW 관련 에셋이나 설정도 특별히 없음. 로어북 템플릿은 예전에 쓰던 형태를 그대로 급하게 쓴거라 좀 더 최적화가 가능할 걸로 보이긴 함. 적용이 어찌되는지는 아래의 로그를 참조. 얼헌V2 고은비 얼헌V2 백휘성 제작에 큰 도움. 없었으면 못 만들었다. 유즈도 따라하는 에셋봇 모듈화 팁글 https://arca.live/b/characterai/152532301 능이버섯도 할 수 있는 페르소나 에셋 넣기! https://arca.live/b/characterai/134368249 SDstudio 불?법개조 3.5.0.h https://arca.live/b/characterai/163632162 감정 에셋 프리셋 80종 https://arca.live/b/characterai/160306435 이하 잡담. 약간 이상성욕 토크 있음. 봇이나 NPC, 페르소나가 아닌 로어북 상으로 존재하는 외형 설정을 부여해서 그것을 에셋으로 출력하게 하는 방식을 해보려는 실험적인 이유로 만든 로어북임. 만들게 된 계기는 잠입 실패한 뒤 노콘질싸 강간당하는 TS킬러 이 봇을 보고 '대체 바디 로어북을 만들어서 남캐 집어넣고 암타 시키는거 되겠네.' 라고 생각한 것. 대체로 소년 만화에서 인기 있는 남캐를 TS시키면 개꼴려진다는 법칙이 있듯이 챗챈에도 수많은 매력적인 남캐봇이 있는데 나는 극악무도한 여캐성애자라서 항상 아쉬웠음. 헌데 이 방식이라면 남캐봇도 여자처럼 다룰 수 있다. 그래서 처음엔 야스용 안드로이드 같은 걸 만들어볼 생각이었는데 나는 에셋봇을 만들다가 때려친 경험밖에 없는 허접이었고 NAI 3을 쓰던 시절 챗챈에 있던 SD Studio나 조금 만져본 능이버섯이었기에 개쩌는 야스봇을 만들 자신이 없었다. 그러다 문득 꼭 야스봇이 아니라 다른 설정의 무언가로 변신시키는 거면 다 되는 것이 아닌가? 라는 생각이 떠올라서 예전에 얼헌 V1에서 최유진을 마법소녀로 변신시키고 놀았던 기억을 떠올려 만들게 된 것. (마침 얼헌 제작자가 exif를 공개해줬기에 편하게 만듬.) 근데 말했듯 기존 디스크립션을 냅둔 상태로 외형+기타 설정을 추가한 다음 그에 맞는 에셋 이미지를 출력하는 것이니 아마 여러가지를 할 수 있을 거 같긴함. user나 char의 TS 에셋을 만든다거나 아까 말했던 user나 char의 정신을 다른 몸체나 물체에 집어넣는다는 설정으로 오나홀이나 딜도 에셋 만들어서 쓰거나(근데 이건 꼴리게 하려면 주민등록증 상태창 이런 느낌의 제품 상태창에 페르소나나 봇카드 이미지 뜨게 하고 쓰던가 할듯?) 걍 무난하게 전투원으로 변신시키거나 제대로 변신물 느낌나게 마법소녀나 가면라이더 같은거 에셋, 설정 준비해서 자기 와이푸나 허즈반도 변신시키거나 암튼 어쩌다보니 NAI도 결제했고 시간도 좀 생겨서 해봤는데 정작 내가 뭘 해본적이 없어서 급하게 검색해서 다른 챗붕들이 올려준 에셋봇 모듈봇 정규식 보면서 겨우 만듬. 퀄을 보면 겨우 만들었다기엔 좀 민망한 수준이지만 그래도 작동하는 것에 의의를 두는 걸로. 나같은 능이버섯보다 다른 챗붕들은 비슷한 방식으로 더 개쩌는 걸 만들어줄 수도 있을 거야 아마. 이게 자기비하가 아니라 진짜 에셋 넣은 결과물을 만든게 이번이 첨이라 그럼. 정규식도 해본적 없어서 그래. 정말로 능이버섯이야.
{
"name": "마법소녀 변신",
"description": "",
"id": "2e52a4a5-f1e0-4849-94ae-1280f5fd2d26",
"hideIcon": false,
"lorebook": [
{
"key": "Dia Heart, 다이아하트, 다이아 하트",
"comment": "Dia Heart",
"content": "### Item Name: Dia Heart (다이아 하트)\n\nType: Magical Artifact / Transformation Device\n\nDescription:\n* A palm-sized, large, glowing pink diamond-shaped gemstone known as the \"Dia Heart\" that serves as a transformation device.\n* When activated, the artifact forcefully and completely overrides the user's physical form, transforming them into a highly specific, standardized Magical Girl persona also known as \"Dia Heart\", regardless of their original age, gender, or physical condition.\n* The transformation is an absolute physical rewrite, masking the user's original identity under an idealized, highly sexualized, yet canonically \"cute\" magical girl exterior.\n\nFunctionality:\n\n* Absolute Physical Override (The Dia Heart Persona):\n * Target Invariance: Whether the user is a burly old man, a scarred veteran, or a young boy, activation instantly triggers a luminous sequence that reconstructs their body.\n * Standardized Appearance: The resulting form is fixed. The user becomes \"Dia Heart\", a teenage girl with soft, warm facial features and striking golden eyes. Her hair is styled in extremely long, bright pink twintails that reach past her hips, tied with white, petal-like hair accessories.\n * Hyper-Sexualized Proportions: Despite the youthful face, the body is drastically exaggerated. The form features immense, G-cup breasts that rival the size of her head, a cinched waist, and heavily developed, thick thighs and buttocks, creating a stark contrast between a \"pure\" face and an incredibly erotic physique.\n * The Uniform: The attire materializes instantly. It consists of a tight, pink slingshot suit. Two thin pink strings originate from the diamond gem on the choker, trailing down to barely cover the nipples before plunging between the legs in a high-cut thong style, leaving the hips, sides, and vast majority of the torso entirely bare. A transparent, almost non-existent micro-skirt made of sheer frills circles the waist. The outfit includes long pink gloves reaching above the elbows and matching pink thigh-high stockings. A sheer, see-through cape drapes down the back.\n * The Core Gem: A black choker sits tightly on the neck, holding the palm-sized, pink diamond-shaped Dia Heart jewel itself. This gem acts as the anchor point, physically holding the strings of the slingshot suit and the cape together.\n\n* Condition-Based Power Scaling (The \"Magical\" Requirement):\n * The physical strength, magical output, and durability of this form are entirely dependent on the user's behavior.\n * To unlock the form's true power, the user *must* act like a stereotypical, bubbly magical girl.\n * Reciting cheesy catchphrases (e.g., \"In the name of love and justice, Dia Heart will punish you!\"), performing cute poses, winking, or shouting attack names dramatically increases their magical energy.\n * If the user acts embarrassed, stoic, or gruff (especially if their original personality is that of a hardened warrior), the power output drops to near zero, rendering the form weak and vulnerable.\n * Adaptive Combat Proficiency: As long as the behavioral conditions are met, the magic automatically translates the user's familiar combat style into an optimal, magically enhanced form. This can include immense physical stat boosts, the instinctive mastery of unlearned martial arts, or the summoning of weapons e.g., a magical wand, a giant hammer, an energy sword that best suit the user's tactical preferences.\n\n* State Separation & Healing (The Reset Mechanic):\n * The Dia Heart form acts as a completely separate physical \"save state.\"\n * If the user transforms while suffering from mortal wounds, fatigue, or illness in their original body, the Dia Heart form will manifest in pristine, perfect health with boundless energy (though mental fatigue may remain).\n * Conversely, if the Dia Heart form sustains catastrophic damage, extreme pain, or exhaustion, reverting to the original body leaves the original body completely unharmed and in the exact physical state it was prior to the transformation.\n * This makes the item a potent emergency survival tool, but forces the user to endure the physical sensations of whatever happens to the Dia Heart body while transformed.\n\nWarning/Mandatory Rule:\n* The appearance of Dia Heart is fixed and cannot be altered by the user's will.\n* The contrast between the user's internal monologue/original personality and their outward \"cute\" actions (required for power) must be highlighted.\n* The attire must be consistently described emphasizing the sheer cape(시스루 망토), the specific string-based slingshot suit design, and the massive proportions.\n* Damage taken in one form does not transfer to the other upon transformation/reversion.",
"mode": "normal",
"insertorder": 100,
"alwaysActive": false,
"secondkey": "",
"selective": false,
"useRegex": false,
"bookVersion": 2
},
{
"key": "",
"comment": "Dia Heart Asset Commands",
"content": "## [MUST FOLLOW!] Dia Heart Character Image Commands (Hardened Protocol)\n\n### 1. ABSOLUTE COMMAND HIERARCHY (Decision-Making Process)\nFollow this sequence precisely to determine if and how to output a Dia Heart image command.\n\n* Step 1: Check Transformation Status. \n * Is any character currently transformed into 'Dia Heart'?\n * If NO: STOP. Do not output any 'Dia Heart' tags.\n * If YES: Proceed to Step 2.\n\n* Step 2: Determine Character Focus. \n * Is the current action, dialogue, or primary focus coming from the character transformed into 'Dia Heart'?\n * If NO: STOP. Do not output any tag.\n * If YES: Proceed to Step 3.\n\n* Step 3: Override Original Tags. \n * CRITICAL RULE: While a character is transformed into Dia Heart, you MUST NOT use their original character image tags. Only use Dia Heart image tags until the transformation is reversed. Proceed to Step 4.\n\n* Step 4: Select Keyword.\n * Select a FULL keyword from the `Dia Heart Keyword Library` that best matches the character's current emotion or action. \n\n* Step 5: Final Output Construction. Construct the final command. Do NOT add numbers.\n * Format: `<hs img=\"Dia Heart.[Keyword]\">`\n * Example: `<hs img=\"Dia Heart.embarrassed\">`\n * Example: `<hs img=\"Dia Heart.acting cute\">`\n\n\n\n### 2. AUTHORIZED LIBRARY & PROTOCOLS\n\n#### Dia Heart Keyword Library\n(Select ONE keyword from the list below to replace `[Keyword]` in the format)\n\n**Expressions:**\nadmiring, angry, angry smiling, annoyed, aroused, blushing shyly, bored, confused, contemptuous, crazy smiling, crying with eyes closed, crying with eyes open, curious, depressed, determined, disappointed, disgusted, embarrassed, enraged, eureka, evil smiling, excited, exhausted, flustered, forced smiling, full-face blush, grudging, guilty, happy smiling, happy tears, indifferent, jealous, joyful, lovestruck, lustful, melancholic, nervous, nervous pouting, overwhelmed, pouting, proud, relieved, sad, scared, scared screaming, seductive smiling, serious, shocked, sleepy, smiling, smirk, smug, spacey, stupefied, surprised, suspicious, teary pouting, thinking, tormented, worried\n\n**Actions:**\nacting coy, acting cute, bridling, childlike whining, chuunibyou, coughing, cozy, dozing off, fidgeting shyly, giggling, head bump, laughing, looking away shyly, middle finger, play dumb, playful winking, pleading, sniggering, stretching, taunting, standing",
"mode": "normal",
"insertorder": 999,
"alwaysActive": true,
"secondkey": "",
"selective": false,
"useRegex": false
}
],
"assets": [
[
"Dia Heart.acting coy",
"",
"webp"
],
[
"Dia Heart.acting cute",
"",
"webp"
],
[
"Dia Heart.admiring",
"",
"webp"
],
[
"Dia Heart.angry smiling",
"",
"webp"
],
[
"Dia Heart.angry",
"",
"webp"
],
[
"Dia Heart.annoyed",
"",
"webp"
],
[
"Dia Heart.aroused",
"",
"webp"
],
[
"Dia Heart.blushing shyly",
"",
"webp"
],
[
"Dia Heart.bored",
"",
"webp"
],
[
"Dia Heart.bridling",
"",
"webp"
],
[
"Dia Heart.childlike whining",
"",
"webp"
],
[
"Dia Heart.chuunibyou",
"",
"webp"
],
[
"Dia Heart.confused",
"",
"webp"
],
[
"Dia Heart.contemptuous",
"",
"webp"
],
[
"Dia Heart.coughing",
"",
"webp"
],
[
"Dia Heart.cozy",
"",
"webp"
],
[
"Dia Heart.crazy smiling",
"",
"webp"
],
[
"Dia Heart.crying with eyes closed",
"",
"webp"
],
[
"Dia Heart.crying with eyes open",
"",
"webp"
],
[
"Dia Heart.curious",
"",
"webp"
],
[
"Dia Heart.depressed",
"",
"webp"
],
[
"Dia Heart.determined",
"",
"webp"
],
[
"Dia Heart.disappointed",
"",
"webp"
],
[
"Dia Heart.disgusted",
"",
"webp"
],
[
"Dia Heart.dozing off",
"",
"webp"
],
[
"Dia Heart.embarrassed",
"",
"webp"
],
[
"Dia Heart.enraged",
"",
"webp"
],
[
"Dia Heart.eureka",
"",
"webp"
],
[
"Dia Heart.evil smiling",
"",
"webp"
],
[
"Dia Heart.excited",
"",
"webp"
],
[
"Dia Heart.exhausted",
"",
"webp"
],
[
"Dia Heart.fidgeting shyly",
"",
"webp"
],
[
"Dia Heart.flustered",
"",
"webp"
],
[
"Dia Heart.forced smiling",
"",
"webp"
],
[
"Dia Heart.full-face blush",
"",
"webp"
],
[
"Dia Heart.giggling",
"",
"webp"
],
[
"Dia Heart.grudging",
"",
"webp"
],
[
"Dia Heart.guilty",
"",
"webp"
],
[
"Dia Heart.happy smiling",
"",
"webp"
],
[
"Dia Heart.happy tears",
"",
"webp"
],
[
"Dia Heart.head bump",
"",
"webp"
],
[
"Dia Heart.indifferent",
"",
"webp"
],
[
"Dia Heart.jealous",
"",
"webp"
],
[
"Dia Heart.joyful",
"",
"webp"
],
[
"Dia Heart.laughing",
"",
"webp"
],
[
"Dia Heart.looking away shyly",
"",
"webp"
],
[
"Dia Heart.lovestruck",
"",
"webp"
],
[
"Dia Heart.lustful",
"",
"webp"
],
[
"Dia Heart.melancholic",
"",
"webp"
],
[
"Dia Heart.middle finger",
"",
"webp"
],
[
"Dia Heart.nervous pouting",
"",
"webp"
],
[
"Dia Heart.nervous",
"",
"webp"
],
[
"Dia Heart.overwhelmed",
"",
"webp"
],
[
"Dia Heart.play dumb",
"",
"webp"
],
[
"Dia Heart.playful winking",
"",
"webp"
],
[
"Dia Heart.pleading",
"",
"webp"
],
[
"Dia Heart.pouting",
"",
"webp"
],
[
"Dia Heart.proud",
"",
"webp"
],
[
"Dia Heart.relieved",
"",
"webp"
],
[
"Dia Heart.sad",
"",
"webp"
],
[
"Dia Heart.scared screaming",
"",
"webp"
],
[
"Dia Heart.scared",
"",
"webp"
],
[
"Dia Heart.seductive smiling",
"",
"webp"
],
[
"Dia Heart.serious",
"",
"webp"
],
[
"Dia Heart.shocked",
"",
"webp"
],
[
"Dia Heart.sleepy",
"",
"webp"
],
[
"Dia Heart.smiling",
"",
"webp"
],
[
"Dia Heart.smirk",
"",
"webp"
],
[
"Dia Heart.smug",
"",
"webp"
],
[
"Dia Heart.sniggering",
"",
"webp"
],
[
"Dia Heart.spacey",
"",
"webp"
],
[
"Dia Heart.stretching",
"",
"webp"
],
[
"Dia Heart.stupefied",
"",
"webp"
],
[
"Dia Heart.surprised",
"",
"webp"
],
[
"Dia Heart.suspicious",
"",
"webp"
],
[
"Dia Heart.taunting",
"",
"webp"
],
[
"Dia Heart.teary pouting",
"",
"webp"
],
[
"Dia Heart.thinking",
"",
"webp"
],
[
"Dia Heart.tormented",
"",
"webp"
],
[
"Dia Heart.worried",
"",
"webp"
],
[
"Dia Heart.standing",
"",
"webp"
]
],
"namespace": "Magicalgirl",
"regex": [
{
"comment": "에셋 출력 정규식",
"in": "<hs img=\"(.+?)\">",
"out": "<style>\n\n .image-container {\n\n /* --- ▼ 스타일 기반 --- */\n\n margin: auto auto;\n\n background-size: cover;\n\n background-position: center 20%;\n\n border-radius: 20px;\n\n border: 5px solid #EBE0E0;\n\n cursor: pointer;\n\n transition: all 0.6s ease;\n\n\n\n /* --- ▼ 반응형 너비 설정 --- */\n\n {{#if {{? {{screen_width}} > 768 }} }}\n\n width: 20em; /* PC에서는 고정 너비 */\n\n {{/if}}\n\n {{#if {{? {{screen_width}} <= 768 }} }}\n\n width: 95%; /* 모바일에서는 꽉 차게 */\n\n {{/if}}\n\n\n\n /* --- ▼ '접힌' 상태 (정사각형) --- */\n\n aspect-ratio: 1 / 1;\n\n }\n\n\n\n /* --- ▼ 마우스를 올렸을 때 '펼쳐진' 상태 --- */\n\n .image-container:hover {\n\n background-position: center center;\n\n /* --- ▼ '펼쳐진' 상태 (세로로 길게) --- */\n\n {{#if {{? {{screen_width}} > 768 }} }}\n\n aspect-ratio: 2 / 3; /* PC에서는 2:3 비율로 */\n\n {{/if}}\n\n {{#if {{? {{screen_width}} <= 768 }} }}\n\n aspect-ratio: 1 / 1.5; /* 모바일에서는 조금 덜 길게 */\n\n {{/if}}\n\n }\n\n</style>\n\n<div class=\"image-container\" style=\"background-image: url('{{raw::$1}}')\"></div>",
"type": "editdisplay",
"ableFlag": false
}
]
}