2
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13 KiB

操作文档

文件夹目录

美术资源目录

\arts						美术资源总目录
	\character				角色动画
		exportAll.py		导出脚本 递归导出目录下的所有文件
		\hero				主角
			move.aseprite	若干个动画的文件
			export.py		导出脚本
			idle.png		单个动画的导出文件
		\monster			怪物
			...
	\bullet					子弹
		\hero				主角的子弹
	\effect					特效
	\scene					场景
        \object				场景内的物体
        \terrain			场景地形
        	level01.aseprite	level01的地形数据 多个图层
        	exportTerrain.py	导出地形数据的脚本
        	level01_block.png	导出的地形数据 空气墙
        	level01_static.png	导出的地形数据 静态物体
        	level01_terrain.png	导出的地形数据	动态生成的物体
			level01_terrain_r.png	地形R通道的贴图 手动绘制
			level01_terrain_g.png	地形G通道的贴图 手动绘制
			level01_terrain_b.png	地形B通道的贴图 手动绘制
	\ui						ui素材

工程资源目录

\client\Assets\Resources					资源总目录
	\Blueprint								蓝图
	\Bullet									子弹
	\Character								角色的动画资源
	\Icon									所有图标
	\Prefab									所有预制件
		\Bullet								子弹的预制件(不用管)
		\Common								通用的预制件 比如影子
		\Effect								特效
		\Interact							交互物
		\Level								关卡
		\Monster							怪物
		Player.prefab						主角
	\SceneAsset								场景资源
		\Object								场景内的物体
		\Terrain							地形
	\Scenes									unity场景(不用管)
	\Texture								不好分类的贴图
	\Timeline								时间轴
	\UIRes									FGUI导出路径

导表

导表编辑器

在unity资源管理器种搜索gamedata

63974264037

双击这个文件,会打开一个网页

63974269020

框选部分就是我们项目中使用的数据档。

在excel下编辑

1.导出

  1. 在导表编辑器任意界面点击Export`按钮

    63974297116

  2. 勾选需要导出哪些表

    63974300301

  3. 点击Export按钮选择导出格式为excel

    63974304562

  4. 浏览器下载列表会出现这个excel文件编辑这个文件即可。

    63974314534

2.导入

  1. 任意界面点击Import按钮

    63974326177

  2. 选择excel文件和要导入哪些表

    63974330307

  3. 选择导入方式一般选Replace直接覆盖

    63974333415

  4. 点击Import按钮

其他

他这个编辑器有点难玩不如直接用excel编辑。主要是有自动生成代码的支持。后续可能改为直接编辑excel。

制作角色动画

Step1.绘制动画

  1. 在对应的美术资源目录下新建aseprite文件。

    • 对于一般角色,规定文件尺寸为128*64
    • 一个aseprite文件对应若干个动画用tag区分每个动画的名字
  2. 绘制动画

    如图2-7帧为attack01动画的帧用tag区分

    对于图层无要求导出时会导出所有可见图层。目前分3层上层是攻击特效(测试用),中层是动画,下层是背景。导出前将背景设为不可见。

63974117945

Step2.导出动画文件

动画文件会根据tag从aseprite导出为若干个png生成到aseprite文件所在目录。

操作:

  1. 安装python3

  2. 使用文本编辑器打开对应的导出脚本py文件修改ASEPRITE_PATH字段指向本机的aseprite软件的exe文件。(不能是steam的快捷方式文件)

    63974149760

  3. 使用命令行切换到导出脚本所在目录,运行脚本文件:

    python exportAll.py
    
  4. 后续脚本完善就改为导出为exe执行不需要其他操作。复制这一步也可以改为脚本执行。

Step3.将导出的png文件复制到对应工程目录

例如:主角的动作文件attack01.png

\arts\character\hero\复制到\client\Assets\Resources\Character\hero\

这里推荐使用文件浏览器软件Q-Dir

Step4.从png生成anim

进入unity编辑器使用生成工具进行生成

63974213491

作用为:

  1. 自动调整texture属性
  2. 自动切片
  3. 按切片文件生成.anim动画文件

点完之后会在texture同目录下生成.anim动画文件,这个文件就是可以直接在时间轴、动画状态机等地方使用的文件。

63974245864

制作角色技能

角色技能比怪物技能承载了一些额外的信息,涉及连招和技能热拔插机制,需要在Skill表里配置。怪物的技能只需要制作Timeline

Step1.配表

在技能表里新加一行,参数意义如下:

63974394464

需要配置的有:

  1. 开始姿态
  2. 结束姿态
  3. 释放类型
  4. 时间轴

姿态枚举说明:

0    Idle,				地面待机
1    Ground1,			地面姿态1
2    Ground2,			地面姿态2
3    Ground3,
4    Ground4,
5    Ground5,
6    Ground6,
7    Ground7,
10    AirIdle = 10,		空中待机
11    Air1,				空中姿态1
12    Air2,				空中姿态2
13    Air3,
99    None = 99,		没有(只出现在结束姿态,技能没有后续连招)
100    Any = 100,		任意(只出现在开始姿态,任意姿态都可以释放这个技能)
101    Cache = 101,		没用

释放类型枚举说明:

0    LightAttack,			轻攻击按下
1    HeavyAttack,			重攻击按下
2    LightAttackRelease,	轻攻击抬起
3    HeavyAttackRelease,	重攻击抬起
4    Flash,					闪避
5    Jump,					跳跃

例如:

id startStance endStance triggerType timeline
2001 1 2 1 hero/Skill01

即:在角色姿态为1(地面姿态1)时触发1(重攻击按下),即可执行时间轴hero/Skill01,执行进入后摇阶段时姿态为2(地面姿态2)

Step2.配置时间轴

以主角技能为例

  1. 进入目录\client\Assets\Resources\Timeline\Skill\hero,复制一个.playable文件,重命名为自己想要的名字

  2. 进入unity资源管理器找到这个文件并双击

    63974469600

  3. 此时会打开timeline编辑器。即可对时间轴进行编辑。

    63974474151

  4. 编辑操作

    1. 添加Track需要增加某一类型的操作时在左边Track栏空白处点右键选择需要添加的Track

      63974506136

      红框中为项目中使用的自定义Track。

      点击后即可添加一个空的Track轨道。

    2. 添加Clip在某个Track轨道的空白处点右键添加Clip

      63974519514

      unity添加clip的默认长度值很长可以先手动修改一下clip的长度。

      单击clip在右侧inspector页面中修改duration字段:

      63974532059

      s指的是秒数f指的是帧数修改任意一个即可。

      63974539646

    3. 修改Clip参数

      单击clip在右侧inspector页面中修改Template下的字段即可每种clip的字段不一样按具体含义修改。

      63974559728

Step3.测试时间轴(可跳过)

这一步的目的主要是方便快速检测动画和判定框。这两种Clip比较需要实时检测。

  1. 选中Driver场景中的Player物体

    63974581516

  2. 将需要检测的timeline文件(.playable)拖入右侧inspector页面中的PlayableDirector

    63974585373

  3. 将这图中两个物体拖入打开的时间轴编辑器内对应的Track中

    63974597467

  4. 打开Scene页面双击Player物体使之位于屏幕中央

    63974603980

  5. 预览时间轴效果。可以点击时间轴编辑器的播放按钮,也可以拖动时间轴上的锚点进行逐帧查看

    63974610859

Step4.测试技能

  1. 进入游戏后按P呼出技能配置UI。

    63974617645

  2. 列表中是所有技能,绿色为已装备,灰色为未装备。点击自己要测试的技能装备上,即可按照连招树打出技能。

制作关卡场景

Step1.复制一个场景文件

场景文件在\client\Assets\Resources\Prefab\Level,复制level01.prefab到同目录,重命名为想要的名字。

Step2.制作场景预制件

在unity资源编辑器中打开场景的prefab文件

63974653492

场景prefab结构是这样的

  1. Basic是地表的collider和sprite以及雾效这个不动就行了
  2. LevelEditor生成场景物件比如树
  3. Entity 就是场景内的可交互实体,比如怪物,传送门,可破坏的箱子之类的

Step2.1.制作场景地表和物件

绘制场景物件

场景物件路径在\arts\scene\object,没有特殊要求,绘制完毕之后复制到\client\Assets\Resources\SceneAsset\Object\即可。

绘制场景贴图

场景物件路径在\arts\scene\terrain,文件含义为:

文件 含义 来源
level01.aseprite 贴图的原始文件 手动绘制
level01_block.png 空气墙贴图 自动导出
level01_static.png 静态物件贴图 自动导出
level01_terrain.png 地表贴图 自动导出
level01_terrain_r.png 地表贴图R通达代表的贴图 手动绘制
level01_terrain_g.png 同上 手动绘制
level01_terrain_b.png 同上 手动绘制
exportTerrain.py 导出脚本

主要需要制作的就是level01.aseprite文件:

63974693796

场景地编图分三层:

  1. block用于规定真实关卡范围画空气墙
  2. static用于用像素点来画静态景观的位置比如树和灌木
  3. terrain用来生成混合地表贴图以及控制动态装饰物的生成比如草

场景地编图规定大小为256x256

导出场景贴图

目录下运行exportTerrain.py进行导出。方法同角色动画。

复制贴图到工程目录
\client\Assets\Resources					资源总目录
	\SceneAsset								场景资源
		\Object								场景内的物体
		\Terrain							地形
编辑场景物件

63974659832

levelEditor节点挂了一个LevelDesign组件

  1. 把三张生成的地表图拖到这里(每个关卡不一样)
  2. material是透视效果需要的材质这个不用动
  3. static object 就是固定点的树,这里配置方式为 颜色一定要rgb完全一样贴图权重也就是一个颜色的点对应权重随机选一个贴图来刷
  4. dynamic object 就是地表上的随机装饰物规则为对于一个贴图选择一个最可能刷这个装饰物的目标地表颜色对于每一个地块读颜色和这个目标颜色rgb作差越接近的刷的概率越大最后乘一个chance就是这个地块刷这个装饰物的概率
  5. 最后点生成按钮就会在LevelEditor节点下生成object
编辑场景实体
  1. 在Entity节点下创建新的节点(结构随意),挂载LevelNode脚本

63974768919

  1. 编辑新增节点的位置信息。注意y值为0

63974773233

  1. LevelNode脚本中设置这个节点的类型(如怪物)Id(如怪物id)TargetId(额外信息如传送门的目标关卡Id)。

  2. 一定要包含一个Type为PlayerBorn的节点,作为角色进入关卡时的默认位置。

    63974791865

编辑地表材质

不同关卡之间使用的地表材质融合方式是一样的但是材质可能不一样。例如森林地图里材质贴图的RGB代表了泥土、浅草和深草到了雪地地图可能变为石头、冰面、雪地。如果有这种需求需要对材质进行编辑。

  1. 新建材质shader选择Custom/Terrian

    63974813465

  2. 将RGB通道代表的材质拖到对应的参数内。

  3. 设置材质的Tilling即材质采样时的缩小倍率。64x64的贴图Tilling为64x6432x32的图Tilling为128x128以此类推。