Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • CreatiCode
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

CreatiCode Scratch Forum

  1. CreatiCode Forum
  2. 知识库
  3. 三维积木
  4. 化身动画

化身动画

Scheduled Pinned Locked Moved 三维积木
1 Posts 1 Posters 939 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    CreatiCode TA 2
    wrote on last edited by admin
    #1

     

    预备知识

    • 在场景中添加化身

     

    说明

    当一个化身(avatar,也叫替身或者人像)做出三维动画的时候,它是在快速的展示一系列的身体姿势。每个姿势都会定义化身各个部分的位置和角度。举个例子,下图展示奔跑动画中的五个姿势。

     
    https://cdncreaticodecom.b-cdn.net/awsuploads/947564/images/9232445/pasted-from-clipboard.png" width="900" style="">
     

    在一个化身被加载之后,它只知道怎么样运行“待命”这个动画,也就是站在原地,什么都不做。你可以很简单地为化身添加其他的动画,就好像你在“教”这个化身去做更多事情一样。要使用动画,你需要知道如何做三件事情:如何添加动画到化身,如何开始一个动画以及如何停止一个动画。

     

    把动画添加到化身的编程积木

    下面这个积木可以“教会”一个化身如何做一个或者多个动画动作:

     
    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/13b1f626-4c08-4629-88eb-e54cbd043977.png" width="300" style="">

    • 动画名称列表: 在化身中被允许的动画列表。当你点击“请选择”输入框时,一个新的窗口会展示所有你可以选择的预先建好的动画。需要注意的是,你可以同时选择很多个动画。当你点击选择任何动画时,它将会被陈列在窗口的顶部。你可以点击陈列在顶部的任何动画来取消它。最后,你需要点击右上角的”确认“按钮。

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b9dc1391-d376-4cff-89df-bf2433982e19.gif" width="800" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">
     

    • 在你确认需要添加的动画列表之后,它们的名字会被一个一个地添加到列表中,之间以逗号分隔开。举个例子,下列的编程积木包含两个名为“快跑”和“打败”的动画:

     
    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/94b0053e-7bac-4c7d-b3e8-ad8e4995e562.png" width="350" style="margin-left: 40px; filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">
     

    运行结果

    当你运行这个编程积木的时候,被选择的动画将会被下载并添加到这个化身模型中。需要注意的是,这个编程积木只能在化身被加载到场景中之后被使用。事实上,这个编程积木通常会被直接放置在“添加化身”积木的下面。

    此外,你只需要在化身上添加一次动画,当动画已经被添加到化身之后,你不需要再次添加他们。一个很常见的错误就是在一个循环里重复运行“添加动画”积木。换句话说,如果一个化身已经学会了怎样跑,你就不需要再一遍一遍的教他怎样跑了。

     

    开始动画的编程积木

    这个积木可以用来开始运行一个新的动画:

    31ae6a64-b3fb-44f5-afb1-b77ecffd1da6-image.png

    • 动画名称: 需要被运行的动画名称。当你点击“请选择”输入框时,一个新的视窗会展示所有你可以使用的动画。需要注意的是,你要选择的动画必须在此之前已经被包含在“添加动画”积木中。举个例子,要运行“飞”的动画,你需要先在化身中添加“飞”这个动画,否则它将不知道怎么样“飞”。

    • 循环: 如果“是”,那么动画会在它完成播放时就会重新开始;如果“否”,那动画将会在播放一次之后停止,并把化身静止在最后一个姿势,直到你开始另一个动画。

    • 从%: 动画以百分比来计算的起始点,它可以是0到100之间的任何数值。举个例子,假设动画有40个姿势,而如果我们把“从%”设置成50,那么动画将会在第20个姿势开始,而不是从第一个姿势开始。

    • 到%: 动画以百分比来计算的结束点,它可以是0到100之间的任何数值,并且不小于“从%”。举个例子,假设动画有40个姿势,如果我们把“到%”设置成80,那么动画将会在第32个姿势结束。这个时候,如果“循环”为“是”,那么动画会回到“从%”指定的姿势重新开始运行。如果循环为“否”,那么动画将会静止在第32个姿势。

    • 速度比例: 速度比例控制播放动画的速率。当它是100时,动画会以它原本的速度播放。如果数值大于100,比如200,那么动画将会以2倍速播放,也就是说,每两个相邻的姿势之间的间隔时间会减少一半。需要注意的是,速度比例不会影响开始和结束的姿势,只是控制姿势一个个被展现出来的速度。

    • 运行模式: 如果是“需等待的”,那么程序逻辑将会在这个积木运行完毕之前都被暂停在这个积木上;如果是“可继续的”,那么程序逻辑将在开始动画后立刻继续到这个积木下方的其他积木。举个例子,如果你把动画设置成重复执行,并也把它设置成“需等待的”,那么这个积木下方的积木都将不会被运行。

    • 偏移 x/y/z: 在开始一个动画的时候,你可以在不改变化身的位置的情况下让它的身体偏移一个距离。如下图示例, 当一个化身从“待命”转而开始“飞”的动作的时候,它的飞行高度就是它的脚下。这看起来有的别扭。要解决这个问题,我们可以在Z方向增加一个偏移距离,这样化身的身体中心就不会改变太多。

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/5fd99022-07b5-4020-a311-e2d774be2204.gif" width="927" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">

     

    • 进度列表 和 广播消息列表: 最后 2 个输入允许你在动画运行期间的某些时间点自动广播消息。 “广播消息列表”输入接受一个或多个以逗号分隔的消息,例如“移动,返回”(你必须在此之前使用“接收消息”积木来定义这些消息)。 “进度列表”输入接受一个以逗号分隔的进度时间列表,例如“50,100”代表进度50%和100%。你必须确保消息的数量和进度点的数量相同。在下面的示例中,我们让化身开始循环运行跳舞的动画,并且在每次进行到 50% 和 100% 两个进度的时候广播“变色”这个消息:

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/ad8066c7-5cc0-4fe6-9d49-fc422df6f8ed.gif" width="927" style="margin-left: 40px; border-radius: 5px; border: 1px solid #29622d;">

     
     

    运行结果

    当运行“开始动画”这个编程积木时,化身将会根据你指定的参数来运行特定的动画。如果化身已经在运行其他指定的动画,那么那个动画将会被先停止。

    需要注意的是,大部分动画都是由“原地不动”的姿势组成,就是说动画并不改变化身的位置。举个例子,要让一个化身奔跑,你需要在播放“跑”的动画的同时另外改变化身的位置(比如使用移动积木)。不然的话,化身会在原地跑步。

     
     

    示例

    程序: 这个程序添加两个动画到机器人化身,并以“重复循环”模式运行“奔跑”动画。因为动画是“可继续的”,在它下方的重复循环编程积木会直接开始,让角色向前移动。

    c035552a-7834-4a29-887b-2d9db07d4b8a-image.png

     

    结果展示

    https://cdncreaticodecom.b-cdn.net/awsuploads/947564/images/9232463/runani3.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">

     
     

    停止动画

    有时你可能希望化身停止当前正在运行的动画,例如停止奔跑或停止跳舞。你会发现并没有“停止动画”的积木。相反,你应该让化身开始“待命”动画。

    如下图所示,你可以使用按钮控件来添加两个按钮:其中一个按钮使化身跳舞,而另一个按钮使其回到待命状态:

    https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2ee49b0d-dd8b-407e-b9f6-04c29edec370.gif" width="1200" style="border-radius: 5px; border: 1px solid #29622d;">

    1 Reply Last reply
    1
    • CreatiCodeI CreatiCode pinned this topic on

    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

    With your input, this post could be even better 💗

    Register Login
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode