# 怪物制作文档 ## 1.动画导出配置 编辑 `arts\character\config.json`如下: ``` { "ASEPRITE_PATH": "D:/Steam/steamapps/common/Aseprite/aseprite.exe", "TARGET_DIR": "E:/Mahogany/client/Assets/Resources/Character/", "END_PAUSE": false } ``` | 字段 | 含义 | | ------------- | --------------------------------------- | | ASEPRITE_PATH | 本机 aseprite.exe 的路径 | | TARGET_DIR | 本机 client/Assets/Resources/Character/ | | END_PAUSE | 是否完成后按任意键关闭,false为自动关闭 | ## 2.动画文件 ### 1.创建文件夹 在 `arts\character\monster` 下新建文件夹,名字为新怪物的名字,例如: ![image-20220414005433960](assets/image-20220414005433960.png) ### 2.基础移动动画组 基础动画组包含除了技能之外的所有动画。包括待机、移动、受击、死亡等。所有角色公用一个动画状态机,通过自动生成的方式覆盖默认动画。基础移动动画文件从已有的模板文件复制并修改。 1. 复制模板 `arts\character\basic\move.aseprite` 到新建文件夹: ![image-20220414005530051](assets/image-20220414005530051.png) 2. 编辑`move.aseprite`: ![image-20220414005818976](assets/image-20220414005818976.png) 原则上只需要保证不修改已有tag即可。可以任意修改帧数、图层等。 Layer2是基础测试怪的动画,可以作为动画参考。 Layer3是背景,原则上不需要保证动画的地面高度和示例一致,可以通过配置来修改高度。 各个tag的含义: | tag | 含义 | | ------------ | -------------------------- | | idle | 待机 | | run1 | 起跑动作 | | run2_loop | 奔跑循环动作 | | run3 | 停止奔跑动作 | | jump1 | 起跳准备 | | jump2_loop | 跳跃上升 | | jump3 | 跳跃到最高点的过渡动作 | | jump4_loop | 跳跃下降 | | jump5 | 落地 | | hit1 | 受击开始 | | hit2_loop | 受击持续、硬直 | | hit3 | 受击恢复 | | die1 | 死亡动画 | | die2_loop | 死亡最后的静止动作 | | airhit1 | 空中受击开始 | | airhit2_loop | 空中受击上升 | | airhit3 | 空中受击到最高点的过渡动作 | | airhit4_loop | 空中受击下落 | | airhit5 | 空中受击落地 | | airhit6_loop | 倒地状态 | | airhit7 | 倒地起身 | | rebound | 击落触地反弹 | tag不用修改。后续有修改的话需要注意命名规则: 1. 下划线`_`开头的不会导出 2. `_loop`结尾的生成的动画是循环的 如果初期版本比较简单不分图层,可以在body层画。导出的时候会导出所有可见图层,所以需要提前隐藏Layer2和Layer3。 3. 运行导出脚本 双击`exportAll.exe`即可。生成的动画会按目录保存在`config.json`里面定义的生成路径。 ![image-20220414011130407](assets/image-20220414011130407.png) 4. 运行动画生成和绑定的unity内置工具 ![image-20220414011224574](assets/image-20220414011224574.png) 这样就会自动切图,并且在对应目录生成`.anim`文件。 ### 3.技能动画组 新建`.aseprite`文件,把对应的动画片段设置tag。导出的时候会按tag一起导出到对应目录。 ![image-20220414011429425](assets/image-20220414011429425.png) tag命名规则同基础移动动画组。对图层、帧数都没有要求。 ## 3.配置档 在draft对应目录位置创建怪物实体。建议直接复制已有的来修改。 ![image-20220414011634899](assets/image-20220414011634899.png) 单从动画上需要修改的配置项有: ![image-20220414011711465](assets/image-20220414011711465.png) `动画`即导出动画文件的目录。 `外观Y轴偏移`即控制怪物动画贴地的偏移值。计算方式为: 1. sprite居中显示,默认贴地。所以需要向上偏移 2. 规定的ppu为64,即:每1个unity距离单位显示64个像素。也就是说,如果要向上偏移24像素,需要填 24/64 = 0.375 ![image-20220414012134976](assets/image-20220414012134976.png) ## 4.配置档导出 1. 导出draft ![image-20220414012227303](assets/image-20220414012227303.png) 第一次导出需要设置导出路径,之后都可以快速导出: ![image-20220414012256795](assets/image-20220414012256795.png) 2. 点回unity窗口,进入一个自动导入的过程 。成功或失败都会在控制台有打印。 ![image-20220414012337225](assets/image-20220414012337225.png) ![image-20220414012402990](assets/image-20220414012402990.png) 3. 如果导出失败(比如修改了结构导致编译失败),则解决错误之后手动导出: ![image-20220414012545838](assets/image-20220414012545838.png) ## 5.测试 1. 进入游戏后按回车键呼出GM界面 2. 选择右方的Battle按钮 3. 点击创建xx怪的按钮,就可以创建出对应怪物。 ![image-20220414012729609](assets/image-20220414012729609.png) ![image-20220414012737865](assets/image-20220414012737865.png)