前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >六一节快乐

六一节快乐

原创
作者头像
mariolu
发布2024-06-07 08:30:19
1210
发布2024-06-07 08:30:19
举报
文章被收录于专栏:Python实用主义Python实用主义

迟来的六一节节日问候!

我们今天用代码来制作一个儿童动画的demo视频

用到的项目代码:https://github.com/facebookresearch/AnimatedDrawings

背后的论文在这里:《一种为儿童绘制的人体动画制作的方法》

项目网站:http://www.fairanimateddrawings.com

一、安装

激活 Python 虚拟环境,安装 Animated Drawings

代码语言:bash
复制
    # 创建python虚拟环境
    conda create --name animated_drawings python=3.8.13
    conda activate animated_drawings

    # git下载项目,并使用pip安装
    git clone https://github.com/facebookresearch/AnimatedDrawings.git
    cd AnimatedDrawings
    pip install -e .

二、使用动画绘图

  • 打开终端并激活 animated_drawings conda 环境:
代码语言:bash
复制
conda activate animated_drawings
  • 进入刚刚git下载的本地 AnimatedDrawings 的根目录:
代码语言:javascript
复制
cd {location of AnimatedDrawings on your computer}
  • 启动 Python 解释器:
代码语言:javascript
复制
python3
  • 将以下两行复制并粘贴到解释器中:
代码语言:javascript
复制
from animated_drawings import render
render.start('./examples/config/mvc/interactive_window_example.yaml')

如果一切安装正确,屏幕上将出现一个交互式窗口。(使用空格键暂停/取消暂停场景,使用箭头键在时间上前后移动,使用 q 关闭屏幕。)

三、配置

幕后角色、动作、场景等都由配置文件控制,也可以以在此处了解有关配置文件的更多资讯。

这里解释一下动画所需要的配置文档

看到配置文件有3种:角色、动画、场景。格式为yaml语法。

3.1 角色配置

里面字段如下,包含height,skelton,lon,name,parent:

  • height int):单位像素,texture.pngmask.png文件char_cfg的高度
  • width (int)char_cfg的宽度
  • skeleton (list[dict]):组成角色骨架的关节列表。每个关节都是一个字典,包含以下键值对:
    • loc (List[int, int]):关节在图像空间中的位置(以像素为单位)。((0, 0)是图像的左上角
    • name (str):关节的名称。
    • parent (str):骨骼链中关节的父关节的名称。所有关节都必须有另一个骨骼关节作为其父关节,名为“root”的关节除外,其父关节是null

在配置里面还有3个角色文件如下

每个图像如下:

3.2 运动配置如下:

这包含有关用于驱动动画绘图的动作的信息。目前,仅支持 BVH(BioVision Hierarchy)文件。

  • filepath (str):BVH 文件的路径。这可以是绝对路径、相对于当前工作目录的路径或相对于 AnimatedDrawings 根目录的路径。
  • start_frame_idx (int):如果想跳过开始运动帧,可以将其设置为 0 到 之间的一个整数(end_frame_idx包括 0 和 )。
  • end_frame_idx (int):如果想跳过结束运动帧,可以将其设置为介于start_frame_idx+1和 BVH 帧数之间的一个整数(包括在内)。
  • frame_time (浮点数):如果想覆盖 BVH 内指定的帧时间,您可以在此处设置。
  • groundplane_joint (str):BVH 骨架中存在的关节的名称。可视化 BVH 的运动时,骨架将调整其世界空间 y 偏移,以便该关节位于 y=0 平面内start_frame_idx
  • forward_perp_joint_vectors (list[List[str, str]]):在重新定位期间,需要计算每帧骨架的“前向”向量。为了计算这一点,我们定义了一系列关节名称对。每个关节名称指定 BVH 骨架内的关节。对于每一对,我们计算从第一个关节到第二个关节的归一化向量。然后,我们计算这些向量的平均值并计算其逆时针垂直向量。我们将这个向量的 y 值归零,剩下一个沿 xz 平面的向量,表示骨架的前向向量。
  • scale (浮点数):均匀缩放 BVH 骨架。有助于可视化 BVH 运动。缩放骨架,使其大致适合 (1, 1, 1) 立方体,这样可视化效果会很好。
  • up (str):BVH 中与“向上”相对应的方向。这在重新定位期间使用,而不仅仅是 BVH 运动可视化。目前,仅支持+y+z

3.3 重新定位配置文件

包含将运动配置指定的运动应用到角色配置中指定的动画绘图角色所需的信息。以下是配置部分截图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装
  • 二、使用动画绘图
  • 三、配置
    • 3.1 角色配置
      • 3.2 运动配置如下:
        • 3.3 重新定位配置文件
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档