角色的美术表
您可以在这张表格中确认角色可用的CharacterState。注意这张表只维护原版游戏中的CharacterState。
可用的音效表
可用的文本样式
在目前,支持下列文本样式:
angry
sad
fear
excite
happy
ero
organsm
funny
suprise
confuse
shout
lag
strong
可用的结果标识
Yarn命令
统计口径
本页列出当前 C# 中带 [YarnCommand] 的项目命令。调用形式如:
<<CommandName 参数1 参数2>>成就、HP 和动画
| 命令 | 签名 | 作用 |
|---|---|---|
AddAchievement | void AddAchievement(string achievementTechName) | 添加成就。 |
Damage | void Damage(int amount) | 对 Aistalt 造成伤害。 |
Defense | void Defense(int amount) | 增加防御层数。 |
Heal | void Heal(int amount) | 恢复 Aistalt HP。 |
EndGame | void EndGame(string caseName) | 设置结束游戏界面和结束案例。 |
PlayDialogueWithVoice | void PlayDialogueWithVoice(string lineID, string characterName = "", float duration = 0f) | 已过时,当前实现没有实际播放逻辑。 |
StartGibberish | void StartGibberish() | 开启 Gibberish。 |
StopGibberish | void StopGibberish() | 关闭 Gibberish。 |
StopDialogue | void StopDialogue() | 停止当前语音对话。 |
SwitchVoiceLanguage | void SwitchVoiceLanguage(string languageCode) | 切换语音语言。 |
ApplyNPCState | void ApplyNPCState(string characterTechName, params string[] stateSelectors) | 按一个或多个状态选择器应用角色状态。 |
SetNPCState | void SetNPCState(string characterTechName, string stateName) | 直接应用一个 CharacterState。 |
SetCharacterSkin | void SetCharacterSkin(string characterTechName, string skinTechName) | 修改角色 Body Skin。 |
CGAnim | void CGAnim(string cgTechName, string animationName) | 在当前 CG 上播放 Spine 动画。 |
ClearSkin | void ClearSkin(string characterTechName) | 恢复角色默认 Body Skin。 |
Shake | void Shake(int speakerIndex, float intensity = 1f, float duration = -1f) | 震动直播角色;常用 speaker index 为 1 或 2。 |
示例:
<<SetNPCState Aistalt Sad>>
<<SetCharacterSkin Aistalt Normal>>
<<Shake 1 0.8 0.2>>更完整的状态规则见 g.角色与动画。
音乐、通用、算力和过场
| 命令 | 签名 | 作用 |
|---|---|---|
UnlockSong | void UnlockSong(string songTechName) | 解锁歌曲。 |
PlaySong | void PlaySong(string songTechName) | 播放歌曲。 |
StopSong | void StopSong() | 停止歌曲。 |
AddPrefix | void AddPrefix(string textKey) | 设置下一条对话的文本前缀。 |
SpendCompu | void SpendCompu(int amount) | 扣除算力。 |
AddCompu | void AddCompu(int amount) | 增加算力。 |
StartCutscene | IEnumerator StartCutscene(string techName) | 启动过场并等待其完成。 |
Step | IEnumerator Step(string stepName) | 播放过场步骤并等待完成。 |
弹幕与人气
| 命令 | 签名 | 作用 |
|---|---|---|
EnableAudience | void EnableAudience(string techName) | 启用观众类型。 |
DisableAudience | void DisableAudience(string techName) | 禁用观众类型。 |
StartDanmaku | void StartDanmaku() | 开始弹幕发射并重置上下文。 |
StopDanmaku | void StopDanmaku() | 停止弹幕发射。 |
DisableDanmaku | void DisableDanmaku() | 关闭弹幕总开关。 |
EnableDanmaku | void EnableDanmaku() | 开启弹幕总开关。 |
ClearDanmaku | void ClearDanmaku() | 清除当前弹幕。 |
LoadDanmaku | void LoadDanmaku() | 按当前天数加载弹幕库。 |
AllowDanmakuType | void AllowDanmakuType(string typeName) | 允许指定弹幕类型。 |
DisableDanmakuType | void DisableDanmakuType(string typeName) | 禁止指定弹幕类型。 |
ClearRecentCharacterDanmaku | void ClearRecentCharacterDanmaku() | 清除最近加入的角色弹幕类型。 |
EmitDanmakuTypeBurst | void EmitDanmakuTypeBurst(string typeName, float seconds) | 在指定时间内集中发射一种弹幕。 |
AddViewer | void AddViewer(float amount) | 调整观众数量。 |
AddPopularity | void AddPopularity(float amount) | 调整人气。 |
日程、商品、装饰和硬件
| 命令 | 签名 | 作用 |
|---|---|---|
EndDay | void Cmd_EndDay() | 结束一天、清理状态、推进日期并重新开始 Initial。 |
ActivateGoodsList | void ActivateGoodsList(string goodsListTechName) | 激活商品列表。 |
AddDecoration | void AddDecoration(string decorationTechName) | 将装饰加入库存。 |
EnableDecoration | void EnableDecoration(string decorationTechName) | 将装饰加入库存并启用。 |
DisableDecoration | void DisableDecoration(string decorationTechName) | 禁用并移除装饰。 |
UnlockHardware | void UnlockHardware(string hardwareTechName) | 解锁硬件。 |
GrantHardwarePart | void GrantHardwarePart(string partTechName) | 授予硬件部件。 |
EquipHardwarePart | void EquipHardwarePart(string hardwareTechName, string partTechName) | 装备部件。 |
UnequipHardwarePart | void UnequipHardwarePart(string hardwareTechName, string partTypeTechName) | 卸下部件。 |
ShowHardware | void ShowHardware() | 显示硬件页面。 |
StopHardware | void StopHardware() | 关闭硬件页面。 |
ChangeResource | void ChangeResource(string hardwareTechName, string resourceTechName, int num) | 修改硬件资源。 |
Hex、协议和战斗
| 命令 | 签名 | 作用 |
|---|---|---|
AddHexProtocol | void AddHexProtocol(string protocolTechName) | 将协议加入库存。 |
RemoveHexProtocol | void RemoveHexProtocol(string protocolTechName) | 从库存移除协议。 |
StartCombat | void StartCombat(string combatTechName = null) | 启动战斗。 |
EndTurn | void EndTurn() | 结束战斗回合。 |
NewRound | void NewRound() | 当前实现直接结束当前回合。 |
EndCombat | void EndCombat() | 结束战斗。 |
Advantage | void Advantage(int delta) | 修改战斗优势值。 |
InstallHexProtocol | void InstallHexProtocol(string protocolTechName) | 加入协议并随机放入合法位置。 |
InstallCoreProtocol | void InstallCoreProtocol(string protocolTechName) | 将协议放入核心位置。 |
UninstallHexProtocol | void UninstallHexProtocol(string protocolTechName) | 卸载协议并返回库存。 |
UnlockGridRadius | void UnlockGridRadius(int radius) | 解锁 Mind Map 网格半径。 |
ChangeHexProtocol | void ChangeHexProtocol(string protocolTechName) | 替换中心协议。 |
Gottocol | void Gottocol(string moduleKey) | 将 Module_ 前缀模块安装到空核心位置。 |
输入、直播和角色面板
| 命令 | 签名 | 作用 |
|---|---|---|
AskInput | IEnumerator AskInput(string varName) | 打开文字输入,并将结果写入指定 Yarn 字符串变量。 |
AskInputNum | IEnumerator AskInputNum() | 打开数字输入,并将结果写入 $InputNumber。 |
AddQuestion | void AddQuestion(string textKey, string nodeName) | 将本地化问题加入直播选项。 |
ClearOptions | void ClearOptions() | 清空直播选项。 |
StartLiveStreamDialogue | void StartLiveStreamDialogue(string nodeName) | 清理选项并启动直播对话节点。 |
StopLiveStreamDialogue | void StopLiveStreamDialogue() | 清理上下文并停止直播对话。 |
StartLiveStatus | void StartLiveStatus() | 设置内部直播状态为 active。 |
EndLiveStatus | void EndLiveStatus() | 设置内部直播状态为 inactive。 |
CodeFlow | void CodeFlow(string controllerName) | 切换直播窗口 CodeFlow 页面。 |
ShowLiveStreamWindow | void ShowLiveStreamWindow() | 当前主要记录日志,真正打开窗口的调用已被注释。 |
HideLiveStreamWindow | void HideLiveStreamWindow() | 当前主要清理选项并记录日志,真正关闭窗口的调用已被注释。 |
AddNPC | IEnumerator AddNPC(string characterName) | 播放 NPC 入场并加入角色面板。 |
AddCG | void AddCG(string cgTechName) | 加入 CG 角色面板。 |
RemoveCG | void RemoveCG(string cgTechName) | 移除 CG。 |
RemoveNPC | IEnumerator RemoveNPC(string characterName) | 播放 NPC 退场并移除。 |
RemoveNPCImmediate | void RemoveNPCImmediate(string characterName) | 立即移除 NPC。 |
RemoveNPCClear | void RemoveNPCClear(string characterName) | 当前实现与立即移除基本相同。 |
RemoveAllNPC | void RemoveAllNPC() | 移除所有 NPC。 |
Solo | IEnumerator Solo(string characterTechName) | 只保留目标角色;目标不在场时会先加入。 |
ShowHPBar | void ShowHPBar(string characterName, int heartCount) | 显示角色 HP 条。 |
StopHPBar | void StopHPBar(string characterName) | 停止角色 HP 条。 |
Gain | void Gain(string characterName) | 恢复破碎的心。 |
Break | void Break(string characterName, int amount) | 破坏指定数量的心。 |
ShowImage | void ShowImage(string attachmentTechName, string characterName) | 向角色图片列表加入附件图。 |
Love | void Love(string characterTechName, int amount) | 增加角色 Love 变量并刷新 UI。 |
Hate | void Hate(string characterTechName, int amount) | 增加角色 Hate 变量并刷新 UI。 |
NPC 选项、姓名、新闻和邮件
| 命令 | 签名 | 作用 |
|---|---|---|
GenerateNPCOption | void GenerateNPCOption(string baseNodeName, int optionsCount) | 生成满足条件的 NPC 选项。 |
PublicNPCInfo | void PublicNPCInfo(string npcTechName, string infoType, bool isPublic) | 修改 NPC 信息公开状态。 |
EnableNameTable | void EnableNameTable(string tableTechName) | 启用姓名表。 |
DisableNameTable | void DisableNameTable(string tableTechName) | 禁用姓名表。 |
AddNews | void AddNews(string newsTechName) | 将新闻加入报纸队列。 |
SendNewspaper | void SendNewspaper() | 发布报纸队列。 |
AddEmail | void AddEmail(string emailTechName) | 将邮件加入发送队列。 |
SendEmail | void SendEmail() | 发送全部邮件队列。 |
AddTrashEmail | void AddTrashEmail(string emailTechName) | 将邮件加入垃圾邮件队列。 |
OS、快捷方式和交互物品
| 命令 | 签名 | 作用 |
|---|---|---|
OS_Add_Shortcut | void AddShortcut(string techName) | 添加桌面快捷方式。 |
OS_Remove_Shortcut | void RemoveShortcut(string techName) | 移除桌面快捷方式。 |
OS_Clear_Shortcuts | void ClearAllShortcuts() | 当前没有实际调用清空逻辑。 |
OS_Test_Add_Shortcut | void TestAddShortcut() | 测试添加快捷方式。 |
OS_Test_Remove_Shortcut | void TestRemoveShortcut() | 测试移除快捷方式。 |
HintShortcut | void HintShortcut(string shortcutTechName) | 提示快捷方式。 |
HintProtocol | void HintProtocol(string protocolTechName) | 提示协议。 |
OpenWindow | void OpenWindow(string windowTechName) | 打开 OS 窗口。 |
CloseWindow | void CloseWindow(string windowTechName) | 关闭 OS 窗口。 |
ChangeController | void ChangeController(string targetName, string controllerName, string controllerState) | 切换 FairyGUI Controller 页面。 |
GenerateInteract | void GenerateInteract(string techName) | 激活交互物品。 |
DeleteInteract | void DeleteInteract(string techName) | 停用交互物品。 |
LoadWorldCase | void LoadWorldCase(string caseControllerName) | 切换世界空间 Case 页面。 |
宠物、维护、Review 和局势
| 命令 | 签名 | 作用 |
|---|---|---|
SendPetEvent | void SendPetEvent(string petEventTypeName) | 向宠物调度器发送事件。 |
StartMaintain | IEnumerator StartMaintain() | 启动协议维护流程。 |
FakeMaintain | void FakeMaintain(string protocolName1, string protocolName2, string protocolName3) | 用指定协议打开维护选择界面。 |
Warn | void Warn(string textKey) | 显示警告字幕。 |
AddReview | void AddReview(string reviewTechName) | 添加自定义评价。 |
StartSituation | void Cmd_StartSituation(string situationTechName) | 启动局势。 |
ChangeSituation | void Cmd_ChangeSituation(string situationTechName, int delta) | 修改局势值。 |
AddPlayerInfo | void Cmd_AddPlayerInfo(string infoKey) | 添加玩家信息。 |
检定、特效、时间、UI、地图和位置
| 命令 | 签名 | 作用 |
|---|---|---|
Check | IEnumerator Check(string attrTechName, int difficulty, string topicTechName = null) | 执行普通技能检定。 |
MultiCheck | IEnumerator MultiCheck(params string[] checkSpecifications) | 依次执行多组检定,并把首个成功结果写入结果变量。 |
SecretCheck | IEnumerator SecretCheck(string attrTechName, int difficulty, string topicTechName = null) | 执行隐藏技能检定。 |
ApplySE | void ApplySE(string seTechName) | 添加特殊效果。 |
RemoveSE | void RemoveSE(string seTechName) | 移除命令来源的特殊效果。 |
AdvanceTime | void AdvanceTime(int minutes) | 推进游戏时间。 |
PlayUIAnimation | void PlayUIAnimation(string uiAnimationTechName) | 播放 UI 动画。 |
Volume_SetState | void VolumeSetState(string stateName) | 切换 Volume 状态。 |
StartFX | void StartFX(string techName) | 启动 PostFX。 |
StopFX | void StopFX(string techName) | 停止 PostFX。 |
PlaceHardwareAtLocation | void PlaceHardwareAtLocation(string hardwareTechName, string locationTechName) | 在地图地点放置硬件。 |
MoveHardwareToLocation | void MoveHardwareToLocation(string hardwareTechName, string targetLocationTechName) | 移动硬件到相邻地点。 |
MoveHardwareToLocationInMap | void MoveHardwareToLocationInMap(string hardwareTechName, string targetLocationTechName, string mapTechName) | 在指定地图移动硬件。 |
EnterChildMapByLocation | void EnterChildMapByLocation(string locationTechName) | 从地点进入子地图。 |
ReturnToParentMap | void ReturnToParentMap() | 返回父地图。 |
SetLocation | void SetLocation(string locationName) | 设置世界空间位置。 |
Yarn函数
统计口径
本页列出当前 C# 中带 [YarnFunction] 的项目函数。函数用于 Yarn 表达式,例如:
<<if Tech() >= 1>>
Aistalt: 这是一条技术路线。
<<endif>>成就、HP、动画和声音
| 函数 | 签名 | 作用 |
|---|---|---|
HasAchievement | bool HasAchievement(string achievementTechName) | 查询成就是否解锁。 |
GetCurrentHP | int GetCurrentHP() | 读取 Aistalt 当前 HP。 |
IsPlayingDialogue | bool IsPlayingDialogue() | 查询当前语音对话是否播放中。 |
GetCurrentVoiceLanguage | string GetCurrentVoiceLanguage() | 返回当前语音语言代码。 |
IsSongUnlocked | bool IsSongUnlocked(string songTechName) | 查询歌曲是否解锁。 |
GetCurrentSongTechName | string GetCurrentSongTechName() | 返回当前歌曲 TechName。 |
IsAnySongPlaying | bool IsAnySongPlaying() | 查询是否有歌曲播放。 |
GetPlayListCount | int GetPlayListCount() | 返回播放列表数量。 |
通用、算力、弹幕、商品和硬件
| 函数 | 签名 | 作用 |
|---|---|---|
IsStreamerMode | bool IsStreamerMode() | 查询主播模式是否开启。 |
GetLocalizedName | string GetLocalizedName(string textKeyPrefix, int textKeyIndex, string customName) | 当索引为 0 时返回自定义名称,否则查找 <prefix>_<index>。 |
CountAvailable | int CountAvailable(string nodeName) | 统计节点或节点组当前满足条件的内容数量。 |
GetCompu | int GetCompu() | 返回当前算力。 |
GetPopLevel | int GetPopLevel() | 返回当前人气等级。 |
GetCurrentPopularity | int GetCurrentPopularity() | 当前实现与 GetPopLevel 读取同一个人气等级字段。 |
GetAvailableGoodsCount | int GetAvailableGoodsCount() | 返回当前可购买商品数量。 |
IsGoodsPurchased | bool IsGoodsPurchased(string goodsId) | 查询商品是否已经购买。 |
HasInteractItem | bool HasInteractItem(string techName) | 查询交互物品是否激活。 |
GetResource | int GetResource(string hardwareTechName, string resourceTechName) | 读取硬件资源数量。 |
HasHardwareUnlocked | bool HasHardwareUnlocked(string hardwareTechName) | 查询硬件是否解锁。 |
HasHardwarePart | bool HasHardwarePart(string partTechName) | 查询硬件部件是否拥有。 |
属性、Topic、协议和战斗
| 函数 | 签名 | 作用 |
|---|---|---|
GetAttributeValue | int GetAttributeValue(string attrTechName) | 查询指定属性值。 |
Empathy | int Empathy() | 查询 Empathy 属性。 |
Tech | int Tech() | 查询 Tech 属性。 |
Troll | int Troll() | 查询 Troll 属性。 |
Kitsch | int Kitsch() | 查询 Kitsch 属性。 |
GetTopic | int GetTopic(string topicTechName) | 查询 Topic 值;实现会先结束当前战斗,因此不是完全无副作用的纯查询。 |
GetTopicLevel | int GetTopicLevel(string topicTechName) | 根据 Topic 当前值计算已达到的等级数。 |
IsTopicBanned | bool IsTopicBanned(string topicTechName) | 查询 Topic 是否被禁用。 |
HasHexProtocol | bool HasHexProtocol(string protocolTechName) | 查询协议是否在库存中。 |
IsProtocolEquipped | bool IsProtocolEquipped(string protocolTechName) | 查询协议是否已放置到 Mind Map。 |
GetInstalledProtocol | int GetInstalledProtocol() | 返回已放置协议的去重数量。 |
InCombat | bool InCombat() | 查询是否处于战斗中。 |
InAttackTurn | bool InAttackTurn() | 查询是否处于攻击回合。 |
InDefenseTurn | bool InDefenseTurn() | 查询是否处于防御回合。 |
HasHexModule | bool HasHexModule(string moduleTechName) | 查询模块是否安装。 |
直播、NPC、OS 和 Review
| 函数 | 签名 | 作用 |
|---|---|---|
GetOptionCount | int GetOptionCount() | 返回当前有效直播选项数量。 |
HasOptions | bool HasOptions() | 查询是否存在有效直播选项。 |
GetHeart | int GetHeart() | 返回当前对话 HP 条的心数。 |
CountNPCOption | int CountNPCOption(string baseNodeName) | 统计 NPC 选项节点中当前可用的节点数量。 |
OS_Has_Shortcut | bool HasShortcut(string techName) | 查询桌面快捷方式是否存在。 |
OS_Shortcut_Count | int GetShortcutCount() | 返回快捷方式数量。 |
TotalWarn | int TotalWarn() | 返回累计警告数。 |
WarnGain | int WarnGain() | 返回当天获得的警告数。 |
CompuGain | int CompuGain() | 返回直播期间获得的算力。 |
CompuMulti | float CompuMulti() | 返回弹幕特殊逻辑产生的算力倍率。 |
CompuMultiGain | int CompuMultiGain() | 计算直播算力收益乘倍率后的整数结果,并限制不小于 0。 |
GetCheckProbability | float GetCheckProbability(string attrTechName, int difficulty) | 计算技能检定成功率。 |
HasSE | bool HasSE(string seTechName) | 查询特殊效果是否存在。 |
时间、地图、邮件
| 函数 | 签名 | 作用 |
|---|---|---|
GetCurrentTime | string GetCurrentTime() | 返回格式化后的当前时间。 |
GetCurrentHour | int GetCurrentHour() | 返回当前小时。 |
GetCurrentMinute | int GetCurrentMinute() | 返回当前分钟。 |
GetCurrentDay | int GetCurrentDay() | 返回当前天数。 |
IsWorkHours | bool IsWorkHours() | 查询是否在工作时间。 |
IsDay | bool IsDay() | 查询是否为白天。 |
IsNight | bool IsNight() | 查询是否为夜晚。 |
CountHwInLocation | int CountHwInLocation(string locationTechName) | 统计地点中的硬件数量。 |
HasHwInLocation | bool HasHwInLocation(string locationTechName, string hardwareTechName) | 查询地点是否有指定硬件。 |
GetCurrentMapTechName | string GetCurrentMapTechName() | 返回当前地图 TechName。 |
GetEmailQueueCount | int GetEmailQueueCount() | 返回待发送邮件数量。 |
GetTodayEmailCount | int GetTodayEmailCount() | 返回当天邮件数量。 |
GetTrashEmailCount | int GetTrashEmailCount() | 返回垃圾邮件数量。 |
GetNewEmailCount | int GetNewEmailCount() | 返回新邮件数量。 |
WasVisited | bool WasVisited() | 当前是占位函数,始终返回 false,不要依赖它判断节点访问状态。 |
常用示例
<<if GetCurrentHour() >= 18>>
Aistalt: 已经到下班时间了。
<<endif>>
<<if CountAvailable("Entry_NoBody") > 0>>
<<GenerateNPCOption Entry_NoBody 1>>
<<endif>>
<<if GetTopicLevel("Topic_Insight") >= 1 and Tech() >= 1>>
-> 进行一次技术路线的询问
<<endif>>