魔力宝贝Unity C#图档解析脚本 https://honorlee.me

HonorLee 2f1484be3c 1.0 1 month ago
CGTool 2f1484be3c 1.0 1 month ago
LICENSE 2f1484be3c 1.0 1 month ago
README.md 2f1484be3c 1.0 1 month ago

README.md

魔力宝贝Unity C#图档解析脚本

1、开源目的

本脚本旨在学习研究Crossgate 魔力宝贝 图档bin文件的解压与使用,相关资料来源于互联网文章与相关技术大佬指导

再次感谢阿伍等在互联网上分享相关解压、算法解析等教学文章的技术大佬所提供的帮助

本脚本遵照GPL共享协议,可随意修改、调整代码学习使用

请务删除或修改文档或源代码中相关版权声明信息,且严禁用于商业项目

因利用本脚本盈利或其他行为导致的任何商业版权纠纷,脚本作者不承担任何责任或损失

2、使用说明

克隆当前仓库或下载zip包解压,将CGTool文件夹放置于Unity项目文件夹内引用

框架初始化

在入口或初始化脚本头部引入CGTool初始化文件

using CGTool;

并在关键位置对CGTool进行初始化

CGTool.CGTool.Init();

CGTool初始化时,会自动对相关索引Info文件进行解析,请根据实际所采用版本情况,对脚本代码中解析相关的文件名称进行修改调整

获取图档索引数据

//通过地面编号获取GraphicInfo数据
GraphicInfo.GetGraphicInfoDataByMapSerial(int Version, uint MapSerial);
//通过索引获取GraphicInfo数据
GraphicInfo.GetGraphicInfoDataByIndex(int Version, uint Index);

获取指定索引图档数据

//通过图档索引编号获取GraphicData数据
Graphic.GetGraphicData(GraphicInfoData graphicInfoData,int PaletIndex=0);

获取并播放动画数据

/**
* 动画播放器,用于播放CG动画,支持多动画队列播放
* 脚本需绑定至挂载了SpriteRenderer和RectTransform的对象上
* 除此之外,还需绑定BoxCollider2D(可选),用于监听鼠标的移入移出事件
*
* 当动画播放完成后会自动调用onFinishCallback回调函数
* 另外可指定onActionListener和onAudioListener监听动画动作帧和音频帧
* 目前已知的动作帧有:
* 击中 0x27 | 0x28
* 伤害结算 0x4E | 0x4F
*/

/**
* 播放动画,调用此方法将会清空当前播放队列,调用完成可通过链式调用nextPlay方法添加动画到播放队列
* @param Serial 动画序列号
* @param Direction 动画方向
* @param ActionType 动画动作
* @param Infinity 是否循环
* @param Speed 播放速度,以 1s 为基准,根据动画帧率计算实际播放周期时长
* @param onFinishCallback 动画结束回调
* @return AnimePlayer
*/
AnimePlayer player.play(uint AnimeSerial, Anime.DirectionType.North, Anime.ActionType.Stand, true,0.1f,AnimeCallback onFinishCallback=null);

//设置帧动效反馈监听
AnimePlayer player.onEffectListener = effect => { };

//设置帧音效反馈监听
AnimePlayer player.onAudioListener = audioIndex => { };

//链式调用添加动作队列
AnimePlayer player.play(...params).nextPlay(...params);

其他

请根据情况自行探索修改代码适应应用场景

3、版本及功能概述

1.0

当前版本目前仅支持 魔力宝贝3.7-龙之沙漏 及以下版本的图档解析

ADD 脚本初始化

ADD 图档索引GraphicInfo文件解析

ADD 图档Graphic文件数据解析

ADD 调色板Palet文件解析

ADD 动画索引AnimeInfo文件解析

ADD 动画Anime文件数据解析

ADD 服务端地图文件解析

4、待处理

  • 支援 4.0 以上版本图档解析
  • 音频解析
  • 其他未知
  • 优化

LICENSE

This project is licensed under the GPL license. Copyrights are respective of each contributor listed at the beginning of each definition file.