MOV导出序列帧并在Unity中播放

news2025/1/22 15:59:35

MOV导出序列帧并在Unity中播放

  • 前言
  • 项目
    • 将MOV变成序列帧
    • 使用TexturePacker打成一个图集
    • 将Json格式精灵表转换为tpsheet格式精灵表
    • 导入Unity并播放
    • 总结
  • 鸣谢

前言

收集到一批还不错的MG动画,想要在Unity中当特效播放出来,那首先就得把MOV变成序列帧,然后使用TexturePacker打成一个图集,最后再导入Unity中制作Animation Clip播放。

项目

将MOV变成序列帧

Mov视频

需要提前安装FFmpeg
创建一个Cut.txt文本文件,将下面内容复制到文本文件中,把Cut.txt改成Cut.bat,就可以将代码中设置的mov视频导出成序列帧并存储在同级目录下。

@echo off
setlocal enabledelayedexpansion

:: 设置输入视频文件和输出图片文件夹路径
set input_video=Ele.mov
set output_folder=output_images

:: 创建输出文件夹
mkdir %output_folder%

:: 使用FFmpeg抓取视频帧并保存为透明图片
ffmpeg -i %input_video% -vf "select=eq(n\,0)+eq(pict_type\,I)" -vsync vfr -q:v 2 %output_folder%\frame%%04d.png

:: 完成后的消息
echo 透明图片已经生成到 %output_folder% 文件夹中。

:: 按任意键退出
pause

运行后导出的序列帧

使用TexturePacker打成一个图集

这里我只找到了TexturePacker3.0.9的版本(pj方法就是用里面带的两个exe替换原始的两个exe)

链接:https://pan.baidu.com/s/1C04rikUgbdlstwBJV_Ch7g?pwd=upvu
提取码:upvu

使用TexturePacker制作图集
但是这里有一个问题,3.0.9版本只能导出json格式的图集表,Unity2021以上只能使用tpsheet格式的精灵表
导出的Json格式精灵表
所以需要下面的步骤

将Json格式精灵表转换为tpsheet格式精灵表

创建一个Python脚本,写入以下内容

import json
import os

def convert_texture_packer_to_unity(json_file, output_file):
    with open(json_file, 'r') as f:
        data = json.load(f)

    frames = data['frames']
    meta = data['meta']
    texture_size = meta['size']

    with open(output_file, 'w') as f:
        f.write("#\n")
        f.write("# Sprite sheet data for Unity.\n")
        f.write("#\n")
        f.write(f":format=40300\n")
        f.write(f":texture={meta['image']}\n")
        f.write(f":size={texture_size['w']}x{texture_size['h']}\n")
        f.write(":pivotpoints=enabled\n")
        f.write(":borders=disabled\n")
        f.write(":alphahandling=ClearTransparentPixels\n")
        f.write("\n")

        for frame_name, frame_data in frames.items():
            frame = frame_data['frame']
            source_size = frame_data['sourceSize']
            sprite_source_size = frame_data['spriteSourceSize']

            x = frame['x']
            y = texture_size['h'] - frame['y'] - frame['h']
            w = frame['w']
            h = frame['h']

            pivot_x = sprite_source_size['x'] / source_size['w']
            pivot_y = 1 - (sprite_source_size['y'] / source_size['h'])

            f.write(f"{frame_name.replace('.png', '')};{x};{y};{w};{h}; {pivot_x};{pivot_y}; 0;0;0;0\n")

if __name__ == "__main__":
    json_file = "link.txt"  # Replace with your JSON file name
    output_file = "link.tpsheet"  # Replace with your desired output file name

    convert_texture_packer_to_unity(json_file, output_file)

正确填入json_fileoutput_file的名称j运行即可得到转换后的tpsheet精灵表
转换前后精灵表对比

导入Unity并播放

需要提前导入TexturePacker的读取工具
导入TexturePacker的读取工具
再将之前转换的tpsheet和png格式图片放入工程中
导入项目
之后使用Animation Clip播放序列帧即可
播放序列帧

总结

比较难的问题只有如何将Json格式精灵表转换为tpsheet格式精灵表

鸣谢

ChatGPT 4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/990969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Say0l的安全开发-弱口令扫描工具-My-crack【红队工具】

写在前面 终于终于,安全开发也练习一年半了,有时间完善一下项目,写写中间踩过的坑。 安全开发的系列全部都会上传至github,欢迎使用和star。 工具链接地址 https://github.com/SAY0l/my-crack 预览 My-Crack 工具介绍 更适合…

Java 毕业设计-基于SpringBoot的在线文档管理系统

基于SpringBoot的在线文档管理系统 博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 技术栈简介 文末获取源码 开发语言:Java 框架:sp…

2020年09月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:铺砖 对于一个2行N列的走道。现在用12,22的砖去铺满。问有多少种不同的方式。 时间限制:3000 内存限制:131072 输入 整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250 输出 如题 样例输入 2 8 12 1…

声网agora创建账号

1. 注册声网账号 https://sso2.agora.io/cn/v4/signup/with-sms 2. 创建项目 项目管理 - 创建项目 3. 项目配置 appid: xxxx token: xxxx 4. 开发文档 https://docportal.shengwang.cn/cn/All/code-samples?platformiOS

免费绕过苹果MDM配置锁/密码界面工具-Hackt1vator Unlock

Hackt1vator Unlock Hackt1vator Unlock是一款免费免费绕过苹果MDM配置锁/密码界面工具&#xff0c;帮助那些忘记iCloud账号密码而无法使用的iPhone、iPad的用户绕过 icloud 激活、mdm 和密码锁定&#xff0c;目前工具支持跳过MDM配置锁&#xff0c;支持绕过物主与锁定界面&am…

如何按文件名称自动归类,助您轻松管理文件

在日常工作和生活中&#xff0c;我们经常会遇到大量的文件需要管理。如果这些文件没有得到良好的归类和整理&#xff0c;不仅会浪费我们的时间和精力&#xff0c;还会给我们带来困扰和混乱。今天我们一起来看看怎么按文件名称来自动归类&#xff0c;批量整理文件&#xff0c;让…

postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用

前言&#xff1a; 有的时候有需求需要迁移Oracle数据库的数据到postgresql&#xff0c;那么&#xff0c;其实可供选择的工具是比较多的&#xff0c;但从迁移效率&#xff0c;准确度这些角度来选择的话&#xff0c;无疑还是GitHub上的开源免费工具ora2pg比较合适的。 ora2pg的…

windows系统下使用crashpad为vs2019项目在崩溃时生成dump文件(步骤超详细)

我们在刚开始项目开发时&#xff0c;经常会因为各种粗心造成各种各样的容易使项目运行时崩溃的代码&#xff0c;比如&#xff0c;给空指针的指向赋值。然而&#xff0c;当项目的文件数非常多时&#xff0c;想找到出错的代码的位置是费事而让人心烦的。crashpad就可以在项目运行…

【Linux】使用 Alist 实现阿里云盘4K播放

一、安装 Alist 官方文档 默认安装在 /opt/alist 中 curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install自定义安装路径&#xff0c;将安装路径作为第二个参数添加&#xff0c;必须是绝对路径&#xff0c;如果路径以 alist 结尾&#xff0c;则直接安装到给定…

vite+vue 项目使用 electron

创建 vitevue 项目 npm create viteElectron 官方文档 electron 安装 安装 electron npm install --save-dev electron新建 electron 的入口文件&#xff0c;我这里在根目录新建 electron 文件夹&#xff0c;然后新建main.js和preload.js文件 根据官网说明&#xff0c;将以下…

企业架构LNMP学习笔记21

URL重写&#xff1a; ngx_http_rewrite_module 模块用于使用PCRE正则表达式更改请求URI&#xff0c;返回重定向&#xff0c;以及有条件地选择配置。 return 该指令用于结束结束规则的执行并返回状态码给客户端。 403 Forbidden.服务器已经理解请求,但是拒绝执行它 404 Not…

【动手学深度学习】--序列模型

文章目录 序列模型1.序列数据2.统计工具3.自回归模型3.1马尔科夫假设3.2潜变量模型 4.训练5.预测 序列模型 学习视频&#xff1a;序列模型【动手学深度学习v2】 官方笔记&#xff1a;序列模型 1.序列数据 想象一下有人正在看网飞&#xff08;Netflix&#xff0c;一个国外的视…

基于Docker从零到一实操MySql的主从复制

文章目录 一、在Docker上安装&#xff0c;启动MySQL查看docker是否安装成功安装mysql查看mysql镜像进入mysql后台操作docker Volume&#xff08;卷&#xff09;入门 MySql的主从复制1. 创建MySQL主从复制的网络2. 创建MySQL主服务器3. 创建MySQL从服务器4. 配置主从同步5.测试主…

js函数变量提升理解

var n 10function fn() {// var n 20function f() {// 没用var声明&#xff0c;去外层寻找n,直到找到windows为止&#xff0c;找到的话用的就是哟个全局变量&#xff0c;会改变原始全局变量的值n;console.log(n)}var nn 20f()console.log(n);return f}var x fn()// 会在上一…

【C++从0到王者】第二十八站:二叉搜索树的应用

文章目录 前言一、Key模型二、Key/Value模型总结 前言 二叉搜索树的在现实世界的应用很广泛&#xff0c;比如Key模型&#xff0c;Key-Value模型就是常见的两种的模型 一、Key模型 K模型&#xff1a;K模型即只有key作为关键码&#xff0c;结构中只需要存储Key即可&#xff0c…

PaddleOCR学习笔记2-初步识别服务

今天初步实现了网页&#xff0c;上传图片&#xff0c;识别显示结果到页面的服务。后续再完善。 采用flask paddleocr bootstrap快速搭建OCR识别服务。 代码结构如下&#xff1a; 模板页面代码文件如下&#xff1a; upload.html : <!DOCTYPE html> <html> <…

Activiti7工作流引擎:在线流程编辑器Activiti Modoler5.x

一&#xff1a;简介 有的时候我们的流程图需要业务人员自己绘制&#xff0c;然后使用自己绘制的流程图&#xff0c;此时就需要一个在线流程图编辑器需要集成到我们的web系统中。Activiti Modoler是Activiti官方推出的在线流程编辑器。 二&#xff1a;pom.xml <dependency…

tomcat安装、部署JSPGOU项目、Tomcat多实例

安装 官网找包 Apache Tomcat - Welcome! tomcat 8 准备运行环境 安装tomcat catalina.sh 服务脚本管理文件 server.xml 主配置文件 修改8009&#xff08;删除注释&#xff09; 启动tomcat 访问 为了避免每次进入绝对路径启动tomcat 法二&#xff1a; 三&#xff1a;部署…

SpringMvc增删改查

SpringMvc增删改查 一、前期准备二、逆向生成增删改查2.2.aspect切面层2.3.Mybatis generator逆向生成2.4.根据生成代码编写Biz层与实现类 三、controller层代码编写四、前台代码与分页代码五、案例测试 一、前期准备 1.2.导入pom.xml依赖 <?xml version"1.0" …

搭建自己的OCR服务,第三步:PPOCRLabel标注工具安装

一、安装说明 安装好了PaddleOCR后&#xff0c;还需要安装PPOCRLabel这个标注工具&#xff0c;想要自己训练模型的话&#xff0c;有个标注工具会起很大作用。 尤其是PPOCRLabel就是跟PaddleOCR配套的标注工具&#xff0c;同样是开源的。 在下载 PaddleOCR 整个源码中&#x…