Libgdx 导入blender 3D动画
创始人
2024-05-28 20:04:54
0

导入blender3D模型可以看上篇libgdx导入blender模型

本篇3D动画在上篇的基础上。

具体参考官网 3D 动画和蒙皮
blender动画参考 八个案例教程带你从0到1入门blender【已完结】

打开上次的blender的,选则物体属性
在这里插入图片描述
点击位置和旋转x,y,z后面的小点,确定初始x,y,z位置,和初始角度
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改数值,并点击锁后面的方块
在这里插入图片描述
点击播放,查看动画
在这里插入图片描述
导出fbx,与上篇导出模型一致。导出时需要选择自定义属性
在这里插入图片描述
在这里插入图片描述

转换为g3dj,这里看不明白的去看我上篇,不会blender的建模的去看视频教程
上篇libgdx导入blender模型
blender动画参考 八个案例教程带你从0到1入门blender【已完结】
在这里插入图片描述

项目中使用,将导出的cube.g3dj放入项目assets/data下

package top.wuliaodebaozi2.blockgame.blockgameinternal;import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.VertexAttributes.Usage;
import com.badlogic.gdx.graphics.g3d.Environment;
import com.badlogic.gdx.graphics.g3d.Model;
import com.badlogic.gdx.graphics.g3d.ModelBatch;
import com.badlogic.gdx.graphics.g3d.ModelInstance;
import com.badlogic.gdx.graphics.g3d.attributes.ColorAttribute;
import com.badlogic.gdx.graphics.g3d.environment.DirectionalLight;
import com.badlogic.gdx.graphics.g3d.Material;
import com.badlogic.gdx.graphics.g3d.loader.G3dModelLoader;
import com.badlogic.gdx.graphics.g3d.utils.AnimationController;
import com.badlogic.gdx.graphics.g3d.utils.CameraInputController;
import com.badlogic.gdx.graphics.g3d.utils.ModelBuilder;
import com.badlogic.gdx.utils.JsonReader;/*** Example program that imports "myModel.g3dj" from the assets folder and renders it onto the screen.*/
public class ImportG3DJ implements ApplicationListener {private Environment environment;private PerspectiveCamera camera;private CameraInputController cameraController;private ModelBatch modelBatch;private Model model;private ModelInstance instance;private AnimationController controller;@Overridepublic void create() {// Create an environment so we have some lightingenvironment = new Environment();environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.4f, 0.4f, 0.4f, 1f));environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -1f, -0.8f, -0.2f));modelBatch = new ModelBatch();// Create a perspective camera with some sensible defaultscamera = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());camera.position.set(10f, 10f, 10f);camera.lookAt(0, 0, 0);camera.near = 1f;camera.far = 300f;camera.update();// Import and instantiate our model (called "myModel.g3dj")ModelBuilder modelBuilder = new ModelBuilder();model = new G3dModelLoader(new JsonReader()).loadModel(Gdx.files.internal("data/cube.g3dj"));instance = new ModelInstance(model);controller = new AnimationController(instance);controller.setAnimation("Cube|CubeAction",-1);cameraController = new CameraInputController(camera);Gdx.input.setInputProcessor(cameraController);}@Overridepublic void render() {cameraController.update();controller.update(Gdx.graphics.getDeltaTime());// Clear the stuff that is left over from the previous render cycleGdx.gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);// Let our ModelBatch take care of efficient rendering of our ModelInstancemodelBatch.begin(camera);modelBatch.render(instance, environment);modelBatch.end();}@Overridepublic void dispose() {modelBatch.dispose();model.dispose();}@Overridepublic void resize(int width, int height) { }@Overridepublic void pause() { }@Overridepublic void resume() { }
}

这里主要与上篇导入模型的代码区别在于,增加了

ModelInstance instance;
AnimationController controller;
public void create() {...instance = new ModelInstance(model);controller = new AnimationController(instance);controller.setAnimation("Cube|CubeAction",-1);
}
public void render() {...controller.update(Gdx.graphics.getDeltaTime());...
}

代码中controller.setAnimation(“Cube|CubeAction”,-1); 动画的名字
用文本方式打开导出的cube.g3dj 可以看到"animations"数据块,看到id,就是动画的名字
在这里插入图片描述

效果:
https://live.csdn.net/v/280148
请添加图片描述

相关内容

热门资讯

捷捷微电:产品广泛应用于车路云... 投资者提问:贵公司的产品是否适用于车路云一体化领域?大概占车路云领域投资的比例会有多大董秘回答(捷捷...
六九一二涨1.48%,成交额6... 4月21日,六九一二涨1.48%,成交额6605.82万元,换手率2.83%,总市值94.43亿元。...
万科A跌1.78%,成交额9.... 4月21日,万科A跌1.78%,成交额9.35亿元,换手率1.34%,总市值856.62亿元。万科A...
外交部回应复活节俄军暂时停火 ... 【#外交部回应复活节俄军暂时停火# 中方乐见一切通往停火的努力】#外交部回应俄军暂时停火# 4月21...
为职场续航,四招让你告别“过劳... 转自:千龙网凌晨1点的写字楼里,键盘敲击声与咖啡机的嗡鸣交织,朋友圈里“躺平”“摆烂”的自嘲段子刷屏...
熊璋:优化青少年学习与创新的新...   近日,教育部等九部门发布《关于加快推进教育数字化的意见》,提出“全面推进智能化,促进人工智能助力...
济川药业涨0.08%,成交额7... 4月21日,济川药业涨0.08%,成交额7027.74万元,换手率0.29%,总市值241.12亿元...
第七届世界体育舞蹈系列赛收官 ... 来源:央视新闻客户端2025年第七届世界体育舞蹈系列赛昨天(20日)在湖北武汉落下帷幕,在世界体育舞...
当谷子有了“含金量”,金饰品牌... 文|玩世代黄金价格十年翻了三倍。不久前部分品牌金克价冲破千元。金价飙升反而引发金饰消费“寒流”。金饰...
泰晶科技涨1.87%,成交额7... 4月21日,泰晶科技涨1.87%,成交额7867.71万元,换手率1.44%,总市值55.21亿元。...
苏美达:收购蓝科高新控制权的战... 投资者提问:请问公司,这次收购蓝科高新控制权是出于什么考虑?对公司未来发展有什么影响?董秘回答(苏美...
外交部:中方祝贺加蓬顺利举行总... 外交部发言人郭嘉昆主持今天(4月21日)举行的例行记者会。有记者问:日前,加蓬国家选举和公投组织协调...
初步结果显示恩圭马在加蓬总统选... 转自:北京日报客户端4月21日,外交部发言人郭嘉昆主持例行记者会。有记者提问,日前,加蓬国家选举和公...
宁德时代,重磅发布!“不起火、... 每经编辑 黄胜     4月21日,宁德时代(300750.SZ,股价231.36...
中印尼举行外长防长“2+2”对... 转自:北京日报客户端2025年4月21日,中共中央政治局委员、外交部长王毅和国防部长董军与印尼外长苏...
方正证券:中越、中马联合声明提... 摘要:  ①上周以来,中国与越南和马来西亚分别发布了两份联合声明,其中都提到了“引进和运营中国商用飞...
极氪007GT上市20.29万... 4月15日,“科技猎装轿跑”极氪007GT正式上市,共发布后驱智驾版、长续航后驱智驾版、四驱智驾版三...
河南项城:智能化建设激发企业内... 来源:环球网 近日,位于河南省项城市先进制造业开发区的项城市圣书缘服饰有限公司制衣车间内,一派繁忙景...
润阳科技SZ300920:产品... 投资者提问:公司的产品在房地产、建筑行业是否得到广泛认可?有哪些特色亮点?董秘回答(润阳科技SZ30...
“是我连累了我的学生们”,高校... 来源:新闻晨报 徐学谦是一名食药专业的高校教授,任教期间,他经常指导学生在实验室里从事药品研究的相关...