[关闭]
@sssunny 2018-12-26T13:09:01.000000Z 字数 3746 阅读 490

剧情制作说明


剧情目录

  • Assets/Drama
    剧情目录

添加新剧情

  • 在剧情目录下创建空对象,并命名。点击 Add Component 依次添加 AnimationLuaEventComponent 这两个脚本
    添加脚本

剧情人物或怪物(模型 GameObject)的创建

  • 在剧情对象里创建空对象,命名前缀:model- 资源名。如:model-cw_001
  • 如果同一个模型有多个,使用-int来实现。如:model-cw_001-1, model-cw_001-2
  • model-role 动态使用主角模型,自动识别玩家男女
    模型添加

剧情摄像机创建

  • 在剧情对象里创建空对象,命名前缀:camera- 摄像机ID。如:camera-1
  • 在camera-1下创建空对象,挂载摄像机基本。对camera-1做动画,摄像机的transform是用来做震屏
    模型添加
  • 摄像机上需要监听音频,在摄像机上挂脚本 AudioListenerPos,设置priority值,值越大,越优先播放,建议填10

剧情场景

  • 如果剧情需要进入特殊场景,在剧情表 scene 字段,直接填写需要进入的场景名
  • 摄像机照是否显示场景NPC。 TownNPC 游戏里的NPC,TownRole 游戏其他玩家,TownMyRole 游戏里自己模型。勾选摄像机可见,不勾选摄像机不可见。如果镜头需要震屏,必须如此
    摄像机

注意事项

  • 摄像机上的 audiolistener 脚本删除
    添加脚本
  • 取消勾选动画脚本上的 Play Automatically
    添加脚本

剧情表演特殊特殊事件

需要同帧抛出多个事件,使用 | 作为分隔符

  • 根据需求编辑Animation,在时间轴上的关键帧添加事件
    关键帧添加事件
  • 事件主要有以下类型:
    1. 剧情结束: complete (在剧情的最后一帧发送)
    2. 对白: dialogue
    3. 震屏: shockscene
    4. 动画: animation
    5. 摄像机开关: camera
    6. 模型播放表情: emoji
    7. ...
  • 填写规则: 类型 + , + 参数,类型为参数1,参数之间使用半角英文逗号 "," 隔开

事件参数


剧情暂停

完整示例:pause,5

  • 参数:
    2.剧情暂停秒数: 默认5秒

剧情结束

完整示例:complete,0

  • 参数:
    2.黑屏介绍. (prelude)
    其他参数读取数据表 drama.EndAction 做对应操作

剧情对白

完整示例:dialogue,100001,0,1

  • 参数:
    2.对白表中的key值(int key
    3.是否需要特写镜头(int need,默认参数是 1,需要特写,不需要填 0)
    4.对话样式(int style,默认参数是 0,默认对话。1表示气泡对话样式。具体样式根据 对白表 字段 bubble 确定 bubble = 0 对话, bubble = 1 心想)
  • 注意:气泡对话,指定模型由 "对白表", "model" 字段指定
  • 注意:气泡对话,左右样式由 对"白表", "side" 字段指定
    步骤2
  • 当为气泡时,对白表modeltype字段全部填3,模型字段填成剧情中的模型名字。也就是model-后面的字符串

剧情字幕

完整示例:bottomdialogue,100001,0,1

  • 参数:
    2.对白表中的key值(int key
    3.是否需要特写镜头(int need,默认参数是 1,需要特写,不需要填 0)
    4.单条显示时间(float time,默认3秒)

剧情上下黑幕

完整示例:blackcurtain,1

  • 参数:
    2.开启关闭(int open,1开启,0关闭)

震屏

完整示例:shockscene,0,3,0.5,0.6,15,45

  • 参数:
    2.震动的摄像机: 0. 场景摄像机, 1 - ... 摄像机编号
    3.震动类型:1. 表示普通震动;2. 强烈震动;3. 自定义震动。当震动类型为 1 或者 2 后面参数不生效,可以缺省
    4.震动时间(float duration
    5.震动幅度(float strength
    6.震动弹性(int vibrato
    7.随机性(float randomness

示例

解读: 事件类型 shockscene震动类型 3时间(单位秒) 0.5幅度 0.6弹性 15随机性 45


动画播放

完整示例:animation,cw_001,atk1,0,0.5

  • 参数:
    2.需要播放动画模型名(string name
    3.动画名称(string animation
    4.播放次数(int times),当次数为0表示循环播放
    5.单次播放时间倍数(float time),不填,0或者1表示默认1倍速度
    6.特效名(string effect)
    7.挂点位置(string pos)
  1. -- 动画名称
  2. pkm.common.aniid = {
  3. idle = 0,
  4. move = 1,
  5. stand = 2,
  6. atk1 = 3,
  7. atk2 = 4,
  8. skill1 = 5,
  9. hurt = 6,
  10. dead = 7,
  11. ride = 8,
  12. throw = 9,
  13. sleep = 10,
  14. awake = 11,
  15. excting = 12,
  16. think = 13,
  17. lookback = 14,
  18. drama1 = 15,
  19. drama2 = 16,
  20. drama3 = 17,
  21. dramaloop1 = 18,
  22. dramaloop2 = 19,
  23. dramaloop3 = 20,
  24. }

场景摄像机开关

完整示例:camera,1

  • 参数:
    2.开关状态(int on = 1

模型表情

完整示例:emoji,cw_001,am

  • 参数:
    2.播放表情模型(stirng)
    3.表情资源名(string)

缓动路径控制

  • 使用步骤
    1.unity编辑器,选中需要轨迹移动的对象,在 Inspector 视图里,点击 Add Component,输入 tweenpath,选择 dotweenpath 脚本
    2.dotweenpath 上点击 Add Manager
    3.设置 DO Tween Visual Manager 属性。OnEnable,OnDisable 选择对应选项
    4.在动画上添加DO Tween Visual Manager 的 enable 属性,动画帧上勾选执行 OnEnable 取消勾选执行 OnDisable

图片说明

  • 步骤1
    步骤1
  • 步骤2
    步骤2
  • 步骤3
    步骤3
  • 步骤4
    步骤4

相关说明链接


镜头模糊效果

  • 使用步骤
    1.在需要模糊的镜头上点击 Add Component,挂上脚本 RapidBlurEffect
    2.动画控制器里添加脚本属性 Gradual 控制模糊效果渐进权重 0 表示不实用模糊
  • 步骤1
    步骤1
    参数说明
    1.DownSampleNum [降采样次数]向下采样的次数。此值越大,则采样间隔越大,需要处理的像素点越少,运行速度越快。
    2.BlurSpreadSize [模糊扩散度]进行高斯模糊时,相邻像素点的间隔。此值越大相邻像素间隔越远,图像越模糊。但过大的值会导致失真。
    3.BlurIterations [迭代次数]此值越大,则模糊操作的迭代次数越多,模糊效果越好,但消耗越大。建议使用 2,
    4.IterationsStart [迭代次数生效点]当Gradual <= IterationsStart,迭代次数始终为0。大于时开始从1并且逐渐受当Gradual影响"
    5.IterationsPoint [迭代次数范围]
    6.Gradual [渐进权重]渐进,控制模糊效果渐进权重
  • 步骤2
    步骤2
  • 步骤3
    步骤2

特效使用

  • 把特效文件直接拖入到剧情预制.prefab文件下
  • 动画控制器里直接勾选 Active,勾上就播放了

NPC介绍

完整示例:introduce,10000,0,5

  • 参数2:NPC ID,填0表示直接用UI里面的填写值
  • 参数3:介绍的UI状态,从0开始
  • 参数4:暂停时间,不填或者0,无限暂停,需要点击才继续
  • 参数5:是否暂停,1不暂停

黑屏

完整示例:dark,0.5

  • 参数2:暂停时间,不填写,动画继续播放,填写,动画会暂停 n 秒,然后继续播放
  • 进入剧情默认会黑屏

剧情背景音乐切换

剧情表 bgm 字段,创建剧情会有默认 BGM

完整示例:bgm,sssss,0.5,0.5,0

  • 参数2:背景音乐文件名 (string fileName)
  • 参数3:淡出 (float fadeout = 0.5)可不填,默认0.5
  • 参数4:淡入 (float fadein = 0.5)可不填,默认0.5
  • 参数5:延迟 (float delay = 0)可不填,默认0

剧情短音效

直接在对应的prefab上挂 audiosource 脚本,同一个prefab可以挂载多个,在动画控制器上控制 enable 属性来控制播放(弃用)

新方案示例:audio,audioname

  • 参数2:音频文件名(不带.mp3后缀的)
  • 注意,这里的音效不中断(不会中断rolevoice,也不会被rolevoice中断,也不会被自己中断)

剧情主角音效

完整示例:rolevoice,11111,1

  • 参数2:音频文件名(不带.mp3后缀的)
  • 参数3:填1 立即停掉前一个语音,可不填,不填支持多个音频文件同时播放

口袋妖怪2_剧情需求

播放精灵升级动画
完整示例:evolve,60791490,60791480

  • 参数2:进化后 精灵ID
  • 参数3:进化前 精灵ID


其他技术支持

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注