Raywenderlich: 用 VFX 制作蝴蝶飞起的效果

您所在的位置:网站首页 3d蝴蝶飞舞路径动画 Raywenderlich: 用 VFX 制作蝴蝶飞起的效果

Raywenderlich: 用 VFX 制作蝴蝶飞起的效果

2024-02-01 18:16| 来源: 网络整理| 查看: 265

文章目录 unity版本将要学习到知识下载创建项目创建目录导入精灵观察蝴蝶自带的 Bufferflies 资源打开 Butterflies VFX Graph复杂的动画的组成拷贝 ButterFlies粒子的设置Update Particle BlockOutput Particle Block创建 Scene调整摄像机设置设置 Sky and Fog Volume场景的灯光设置VFX 物体修改蝴蝶的翅膀设置 Output BlockUpdate Block设置 Initialize Block 设置 Output Block设置 Visual Effect Properties脚本控制创建控制脚本 编辑 HeartOfHearts自定义形状

unity版本

Unity 2020.3 (LTS)

将要学习到知识 创建 VFX 效果。设计背景视觉效果。按需生成背景视觉效果。在运行时,修改背景视觉效果的属性。编写和使用点缓存。

在这里插入图片描述

下载

原料

创建项目

在这里插入图片描述

创建目录 PointCachesScenesScriptsSpritesVFX 在这里插入图片描述 导入精灵 将下载的资源包里面的 butterheart 和 butterheartfull 拖入到上面新建的 Sprites 目录。修改 butterheart 和 butterheartfull 精灵设置, 点击 Apply: 在这里插入图片描述 观察蝴蝶 打开 Asset / SampleScene 场景,选择 VFX / ButterGFlies, 按 F 放大。点击右下角的浮窗观察。 在这里插入图片描述查看下右侧的面版,看下哪些属性是可以修改。 在这里插入图片描述 自带的 Bufferflies 资源

Assets/Art/Textures/VFX/ButterFlies_8x1 , 这是系统自带的蝴蝶的翅膀资源。 在这里插入图片描述

打开 Butterflies VFX Graph 在 Asset / SampleScene 场景中,选择 VFX / Butterflies , 在 Inspector 面板中: 在这里插入图片描述 复杂的动画的组成

只要制作蝴蝶的一只翅膀的动画,其他的就用 copy-paste 吧。

((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((我)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((看)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((起)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((来))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((是)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((不)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((是)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((很)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((复)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((杂))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

拷贝 ButterFlies 拷贝(window 命令:ctrl + d , mac 命令:Command + D) Assets/Art/Particles/ButterFlies , 重名名为 ButterFlieNotes, 移动到 RW/VFX 目录。 粒子的设置

双击 ButterFlieNotes , 观察下面: 在这里插入图片描述

要拖动,可以全选,然后用鼠标拖动。

在 Initialize Particle Block 中

Capacity : 控制粒子的容量。Tex Index: 控制蝴蝶的风格。… Update Particle Block ForceTurbulenceVelocityScalePivot.X Output Particle Block UV Mode 、Flipbook 、 Flip Book Size 、 Base Color Map.OrientationPositionAngle.Y 、 Angle.X 创建 Scene File - New Scene , 命名为 MakingHeartsFly,保存到 RW/Scenes。 在这里插入图片描述2. 打开该场景,删除 Plane。 在这里插入图片描述 调整摄像机设置

选择摄像机:

Position:X = 0,Y = 1, Z = -6.5。Rotation:X = -30,Y = 0,Z = 0。Background Type : Color。Background Color: R = 200,G = 50,A = 255, Intensity = 0。 在这里插入图片描述 设置 Sky and Fog Volume

选择 Sky and Fog Volume,在 Volume 组件中:

在 Visual Environment ,设置 Type 为 None、 Ambient Mode 为 Static。在 Exposure 中,设置 Mode 为 Fixed、Fixed Exposure = -1。移除 Fog。在 Vignette 中,设置 Mode 为 Procedural ,Intensite = 0.4。 在这里插入图片描述 场景的灯光设置 重命名 Spot Light 为 HeartLight,选择 HeartLight。设置 Position: X = -0.75,Y = 3, Z = -5。设置 Light Type - General - Type 为 Point。设置 Light Type - General - Mode 为 Realtime。设置 Shape Radius 为 1。设置 Light - Emission - Intensity 下拉框 Ev 100,密度值为 11。

在这里插入图片描述

VFX 物体 拷贝 Assets / VFX 下的 ButterfliesNotes ,重命名为 BoxOfHearts。在 Hierarchy面板中,新建 Visual Effects - Visual Effect 物体,命名为 BoxOfHearts。设置其 Position 的 X=0、Y=2、Z=-5。设置 Asset Template 为 BoxOfHearts。 在这里插入图片描述 修改蝴蝶的翅膀

打开 VFX 在这里插入图片描述

设置 Output Block 修改 Uv Mode 为 Default。修改 Use Alpha Clipping 为 fales。修改 Base Color Map 为 RW / Sprites 。 在这里插入图片描述 Update Block 移除 Turbulence 和 Force 在这里插入图片描述增加 Tile / Wrap Position Block,并且设置 Size 为 (X:3, Y:3, Z:3)。在这里插入图片描述 设置 Initialize Block 移除 Set Tex Index。 在这里插入图片描述设置 Capacity 为 75。增加一个颜色控制块。 在这里插入图片描述新增变量,命名为Wing Color。 在这里插入图片描述 在这里插入图片描述拖动新建的 Wing Color 变量到 Set Color 附近:空白处右键添加 Create Node : 在这里插入图片描述连接 Sample Gradient Node 、Wing Color 、Set Color Block: 在这里插入图片描述新建一个随机数产生器到 Sample Gradient: Min = 0Max = 1Constant = false 在这里插入图片描述 设置 Output Block 在 BoxOfHearts 面板,分别选择左右两个 Output Partice Lit Quad, 回到 Inspector 面板, 设置 Color Mode 为 Base Color and Emissive。 在这里插入图片描述 设置 Visual Effect Properties 在 Hierarchy 选择 BoxOfHearts ,设置: 在这里插入图片描述点击 Wing Color: Mode = Blend15%: (R:191, G:0, B:29, Intensity:1).70%: (R:191, G:29, B:48, Intensity:3).90%: (R:191, G:29, B:48, Intensity:3).95%: (R:191, G:10, B:29, Intensity:10).

在这里插入图片描述

反选 Wing Color 前面的打勾,会使当前颜色的设置失效。 设置颜色的时候,点击矩形下面的底加箭头, Location 旁边才会是显示 Color; 点击上面, Location 旁白显示的 Alpha。

勾选两次下面的眼睛,使当前设置的 Visual Effect 生效: 在这里插入图片描述 在这里插入图片描述修改 Sky and Fog Volume 的 Exposure 的值,查看效果。 脚本控制 拷贝 Assets / RW / BoxOfHearts, 并重命名为 HeartOfHearts ,保存到 Assets / RW / BoxOfHearts。在 Hierarchy 面板,新建 Visual Effects - Visual Effect ,命名为 HeartOfHearts。设置 Position 为 (X:0, Y:2, Z:-5)。 在这里插入图片描述 创建控制脚本

在 RW / Scripts 新建脚本 HeartManager.cs ,挂载到 HeartOfHearts 上。

using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.VFX; public class HeartOfHearts : MonoBehaviour { private VisualEffect _visualEffect; private VFXEventAttribute _eventAttribute; private bool _heartsAreFlying; private int _flyingBoolID; private void Awake() { _visualEffect = GetComponent(); _eventAttribute = _visualEffect.CreateVFXEventAttribute(); _flyingBoolID = Shader.PropertyToID("Flying"); _heartsAreFlying = false; _visualEffect.SetBool(_flyingBoolID, false); _visualEffect.Stop(); } // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { SpawnHearts(); } if (Input.GetKeyDown(KeyCode.F)) { ToggleHeartFlight(); } } private void SpawnHearts() { _visualEffect.Play(); } private void ToggleHeartFlight() { _heartsAreFlying = !_heartsAreFlying; _visualEffect.SetBool(_flyingBoolID, _heartsAreFlying); } } 编辑 HeartOfHearts

打开 HeartOfHearts 的 Asset Template:

在 Initialize Particle Block ,设置 Capacity 为 10000。增加 Set Lifetime Random Block , 设置 A=3, B=10。在 Output Particle Lit Quad ,新增 Set Alpha over Life,根据自己的需要设置曲线。修改 Wing Animation Speed 的连接: 在这里插入图片描述 为下面的连接: 在这里插入图片描述修改 velocity 相关的状态机: 在这里插入图片描述 为下面的: 在这里插入图片描述设置 HeartOfHearts 的 Properties, 以及 Wing Color。 在这里插入图片描述 自定义形状 Window ▸ Visual Effects ▸ Utilities ▸ Point Cache Bake Tool ,设置下面属性, 保存到 RW / PointCaches。 Bake Mode = TextureTexture = butterheartfullThreashold = 0.9 在这里插入图片描述 打开 HeartOfHearts 的 Asset template, 替换 Add Position (Sphere) Block : 在这里插入图片描述 为 Set Position from Map Block, 要保持其位置在顶部: 在这里插入图片描述 新增 Point Cache Node , 设置 Value Scale 为 (X:2, Y:2, Z:1): 在这里插入图片描述 删除 Tile/Warp Positions Block , 保存: 在这里插入图片描述

回到游戏运行, 按空格键: 在这里插入图片描述

[1] Making Hearts Fly With Unity VFX Graph



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3