We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.8版本我个人用的是v3.8.75的spine,分支编译出来后的godot添加模型完成没响应,最后看报错,在官方的代码里找到了原因,一共有两处: SkeletonJson.cpp的132行
SkeletonJson.cpp
132
skeleton = Json::getItem(root, "skeleton"); if (skeleton) { skeletonData->_hash = Json::getString(skeleton, "hash", 0); skeletonData->_version = Json::getString(skeleton, "spine", 0); // if ("3.8.75" == skeletonData->_version) { // delete skeletonData; // setError(root, "Unsupported skeleton data, please export with a newer version of Spine.", ""); // return NULL; // } skeletonData->_x = Json::getFloat(skeleton, "x", 0); skeletonData->_y = Json::getFloat(skeleton, "y", 0); skeletonData->_width = Json::getFloat(skeleton, "width", 0); skeletonData->_height = Json::getFloat(skeleton, "height", 0); skeletonData->_fps = Json::getFloat(skeleton, "fps", 30); skeletonData->_audioPath = Json::getString(skeleton, "audio", 0); skeletonData->_imagesPath = Json::getString(skeleton, "images", 0); }
和SkeletonBinary.cpp的129行
SkeletonBinary.cpp
129
char *skeletonData_version = readString(input); skeletonData->_version.own(skeletonData_version); // if ("3.8.75" == skeletonData->_version) { // delete input; // delete skeletonData; // setError("Unsupported skeleton data, please export with a newer version of Spine.", ""); // return NULL; // } skeletonData->_x = readFloat(input); skeletonData->_y = readFloat(input); skeletonData->_width = readFloat(input); skeletonData->_height = readFloat(input);
如果你用的也是3.8.75导出的模型,那么你编译时就需要把上面对版本的判断去掉,否者模型是不能加载的。奇怪的是官方就只针对3.8.75,强制更新也该是小于某个版本才对,原因估计就是我为什么能在用3.8.75吧。我对比了官方加了这个限制的前和后的提交对比,数据解析这块看起来是没太大改动,所以去掉也应该没事吧,我也说不准,我去掉后重新编译是可以正常加载模型了。
两处代码修改参考:
// SpineAtlasResource.cpp -> load_from_atlas_file ··· CharString atlas_data_utf8 = atlas_data.utf8(); atlas = new spine::Atlas(atlas_data_utf8, atlas_data_utf8.length(), source_path.get_base_dir().utf8(), new RaiixSpineTextureLoader(&tex_list, &ntex_list, normal_texture_prefix)); ···
值得注意转换过后size和length是不同的。
size
length
#ifndef SPINE_RUNTIME_REGISTER_TYPES_H #define SPINE_RUNTIME_REGISTER_TYPES_H void register_spine_runtime_types(); void unregister_spine_runtime_types(); #endif // SPINE_RUNTIME_REGISTER_TYPES_H
这个说实在的,在看到没加时我是有点吃惊的,但看到其他文件都加了,我觉得应该是遗漏了,哈哈。
最后最后,关键的一点,我希望能用godot官方的代码格式化配置,格式化源文件,godot项目根目录下就有.clang-format文件,如果本地仓库就在godot的仓库下,那么直接用clang-format格式化就会按配置里的来,如果不在godot的仓库,那么拷贝出来一份放到自己仓库里来就行了。需要注意的是,godot官方用的是v13的clang了,如果格式化时配置参数不支持,那么你就需要更新你的clang版本才行,我用vscode做格式化时就遇到了这个问题,c++扩展自带的版本太低了,然后安装v13版本clang自定义配置clang-format的路径才正确格式化。这个其实挺必要的。
.clang-format
clang-format
这两天忙活基本都在忙活这个,挺有意思也挺花精力的,佩服作者能写这个项目出来,这个需要都熟悉godot和spine才行,还会c++,英语还好,那些官方文档我看的头疼。godot我也是这两个月才接触的,业余才有时间学下,现在都没入门,想加下群的,但估计和群主游戏爱好不同吧,申请了就没反映了,随缘了。pr是真的不想提了,只能在这写这几点建议,也是想让自己这两天不要白忙活,算是做点小小贡献了。
The text was updated successfully, but these errors were encountered:
十分感谢你的建议
Sorry, something went wrong.
q群只要是填写了游戏的就能进了的,我估计是管理员开小差了。 稍等我把管理员踢了泄愤
链接:https://pan.baidu.com/s/1uqymaUvAlO91Ubm3QI-vUg 提取码:godo
大佬,我不会c++,但是我看到有个spine的平替龙骨软件,它有个插件c++的支持godot4以上,大佬能否去看看把它编译过来
No branches or pull requests
1、
3.8版本我个人用的是v3.8.75的spine,分支编译出来后的godot添加模型完成没响应,最后看报错,在官方的代码里找到了原因,一共有两处:
SkeletonJson.cpp
的132
行和
SkeletonBinary.cpp
的129
行如果你用的也是3.8.75导出的模型,那么你编译时就需要把上面对版本的判断去掉,否者模型是不能加载的。奇怪的是官方就只针对3.8.75,强制更新也该是小于某个版本才对,原因估计就是我为什么能在用3.8.75吧。我对比了官方加了这个限制的前和后的提交对比,数据解析这块看起来是没太大改动,所以去掉也应该没事吧,我也说不准,我去掉后重新编译是可以正常加载模型了。
2、
两处代码修改参考:
值得注意转换过后
size
和length
是不同的。这个说实在的,在看到没加时我是有点吃惊的,但看到其他文件都加了,我觉得应该是遗漏了,哈哈。
3、
最后最后,关键的一点,我希望能用godot官方的代码格式化配置,格式化源文件,godot项目根目录下就有
.clang-format
文件,如果本地仓库就在godot的仓库下,那么直接用clang-format
格式化就会按配置里的来,如果不在godot的仓库,那么拷贝出来一份放到自己仓库里来就行了。需要注意的是,godot官方用的是v13的clang了,如果格式化时配置参数不支持,那么你就需要更新你的clang版本才行,我用vscode做格式化时就遇到了这个问题,c++扩展自带的版本太低了,然后安装v13版本clang自定义配置clang-format的路径才正确格式化。这个其实挺必要的。这两天忙活基本都在忙活这个,挺有意思也挺花精力的,佩服作者能写这个项目出来,这个需要都熟悉godot和spine才行,还会c++,英语还好,那些官方文档我看的头疼。godot我也是这两个月才接触的,业余才有时间学下,现在都没入门,想加下群的,但估计和群主游戏爱好不同吧,申请了就没反映了,随缘了。pr是真的不想提了,只能在这写这几点建议,也是想让自己这两天不要白忙活,算是做点小小贡献了。
格式化那点真的希望能采纳下!
The text was updated successfully, but these errors were encountered: