16-Actions动作

作者: 095b62ead3cd | 来源:发表于2020-06-15 21:25 被阅读0次

文章选自掘金苹果API搬运工的文章[SceneKit专题]16-Actions动作
主要记录自己在学习ARKit的过程中看到的好的文章,避免到时候链接失效无法找到原文的情况,非常感谢原博主的辛勤付出,也在此分享出来跟大家一起学习。

动作可以让你操作节点的位置,缩放,旋转和透明度.比如左滑,场景中的小猪向左转并跳一步. 基本分类有四种:Move(移动), Scale(缩放), Rotate(旋转)和Fade(透明渐变).还有两种特殊的动作:Sequence(序列,即顺序执行)和Group(组,即同时执行).

注意,关于物理形体physics body

当需要物理引擎来控制节点的移动和旋转时,应设置为dynamic.如果不需要移动,但仍能参与物理模拟,应设置为static.如果你既想控制某些节点的移动和旋转,同时仍能参与物理模拟,应设置为kinematic.

Move actions移动动作

  • Move Action:在当前位置上移动一段
  • MoveTo Action:移动到指定位置,与当前位置无关


Scale actions缩放动作

  • Scale Action: 在当前缩放基础上缩放.
  • ScaleTo Action:缩放到指定比例,与当前比例无关


Rotate actions旋转动作

  • Rotate Action:在当前旋转基础上再旋转
  • RotateTo Action:旋转到指定角度,与当前旋转无关
  • RotateTo Action (Shortest):旋转到指定角度,走最短路径
  • RotateBy Axis Angle Action:绕某个轴旋转
  • RotateTo Axis Angle Action:绕某个轴旋转到指定角度


Fade actions褪色动作

  • FadeOut Action:淡出,从当前透明度渐渐变完全透明
  • FadeIn Action:淡入,从当前透明度渐渐显示出来,完全不透明
  • FadeOpacityTo Action:改变不透明度到指定值


Sequenced and grouped actions序列和组动作

序列和组都是一系列动作的组合,可以让动作更复杂


  • Actions:左侧的每一个都是一个动作,上跳,下落,右移,右转
  • Sequence:蓝色区域内就是序列,上跳动作执行1秒完成后,执行下落动作,按顺序
  • Group:红色区域就是组,将会并发同时执行


Linear线性,Ease-In渐入,Ease-Out渐出,East-In-Out渐入渐出

The action editor动作编辑器

  • Expand/Collapse Action Editor:展开/收缩动作编辑器
  • Timeline:时间线
  • Time Cursor:时间游标
  • Time Zoom:时间缩放
  • Drag&Drop Actions:拖放动作

动作创建

拖放一个旋转动作到节点,设置开始时间和持续时长,指定为绕z轴旋转


右击选中Create Loop,创建循环


选中∞无限循环,当它变蓝时就好了. 不要点X,那会取消


拖动游标预览效果


代码添加动作

// 1.时长
let duration = 0.2
// 2.上下移动动作
let bounceUpAction = SCNAction.moveByX(0, y: 1.0, z: 0, duration:
duration * 0.5)
let bounceDownAction = SCNAction.moveByX(0, y: -1.0, z: 0, duration:
duration * 0.5)
// 3.时间模式
bounceUpAction.timingMode = .EaseOut
bounceDownAction.timingMode = .EaseIn
// 4.动作序列
let bounceAction = SCNAction.sequence([bounceUpAction, bounceDownAction])
// 5.四周移动动作
let moveLeftAction = SCNAction.moveByX(-1.0, y: 0, z: 0, duration:
duration)
let moveRightAction = SCNAction.moveByX(1.0, y: 0, z: 0, duration:
duration)
let moveForwardAction = SCNAction.moveByX(0, y: 0, z: -1.0, duration:
duration)
let moveBackwardAction = SCNAction.moveByX(0, y: 0, z: 1.0, duration:
duration)
// 6.旋转动作
let turnLeftAction = SCNAction.rotateToX(0, y: convertToRadians(-90), z:0, duration: duration, shortestUnitArc: true)
let turnRightAction = SCNAction.rotateToX(0, y: convertToRadians(90), z:
0, duration: duration, shortestUnitArc: true)
let turnForwardAction = SCNAction.rotateToX(0, y: convertToRadians(180),
z: 0, duration: duration, shortestUnitArc: true)
let turnBackwardAction = SCNAction.rotateToX(0, y: convertToRadians(0),
z: 0, duration: duration, shortestUnitArc: true)
// 7.动作组
jumpLeftAction = SCNAction.group([turnLeftAction, bounceAction,
moveLeftAction])
jumpRightAction = SCNAction.group([turnRightAction, bounceAction,
moveRightAction])
jumpForwardAction = SCNAction.group([turnForwardAction, bounceAction,
moveForwardAction])
jumpBackwardAction = SCNAction.group([turnBackwardAction, bounceAction,
moveBackwardAction])

相关文章

  • 16-Actions动作

    文章选自掘金苹果API搬运工的文章[SceneKit专题]16-Actions动作主要记录自己在学习ARKit的过...

  • 2022.8.1施秉 生命第一最重要的是什么?

    动作的发展 从整体动作到分化动作 从上部动作到下部动作 从大肌肉动作到小肌肉动作 从无意动作到有意动作 (动作发展...

  • 动作

    当我走向你的时候我的动作不左不右阳光正好,你的微笑像一阵暖暖的风吹在我的脸上

  • 动作

    你之心动不如行动 ,正是临渊羡鱼,不如退而结网。 一日,一日,再一日,到头来,你发现到年底了。哎 !愿君多采撷,愿...

  • 动作

    动作是一种怀旧,正如微笑是一种欺骗。用双格跳和跨越前进的方式走楼梯,就像是穿越到了总是将迟未迟的高中时代,心思也变...

  • 动作

    我坐下,看见你站起 我站起,看见你坐下 不是我们不够努力 只是相差平视的瞬息 我看云时,你也看云 你看云时,我在看...

  • 动作

    抬腿,直,脚尖蹦起

  • 动作

    1、 我在控诉和恐吓里德太太时,内心正好象一片点燃了的荒原,火光闪烁,来势凶猛,但经过半小时的缄默沉静和反思,深感...

  • 《动作》

    夜的危险与黑色无关 必有一名戴着假发的铁匠 在麦田寻找他的替身 流水线工人 将乞丐狼吞虎咽的动作 压缩成一枚五角硬...

  • 动作

    2019年8月20日 星期二 晴 今天下午表姐和我一起去游泳池游泳,我们换好游泳衣就到下面去...

网友评论

    本文标题:16-Actions动作

    本文链接:https://www.haomeiwen.com/subject/ujtkxktx.html