游戏特效笔记
开发游戏的老王
技术专栏作者
独立游戏开发者
高校教师
Unreal Open Day 2022演讲嘉宾
Unreal Cirle2023苏州站演讲嘉宾
Unreal Cirle2024成都站演讲嘉宾
展开
-
虚幻引擎图文笔记:用Shader实现简单的动画
效果图这种效果主要用在场景内一些可拾取的对象上Shader实现主要是Movement部分的节点,连接材质的World Position Offset通道,这个效果实际是通过顶点着色器实现的。由于只和World Position Offset通道有关,所以可以在任意材质上附加此效果。...原创 2020-07-04 10:18:28 · 781 阅读 · 0 评论 -
虚幻引擎图文笔记:材质系统初探 实现一个简单的溶解效果
效果图文章目录效果图准备工作模型准备噪波贴图准备编辑材质准备工作模型准备给Blender的苏珊加了几级细分修改器苏珊本身是展好UV的,如果你使用其它模型也要展好UV导入到 UE4中,不要自动创建材质将苏珊拖拽到场景中,适当调整大小和角度新建一个材质,让它覆盖苏珊的默认材质噪波贴图准备噪波贴图可以决定溶解的方式,本文使用了下面这种贴图把贴图直接导入到UE4中编辑材质...原创 2020-06-22 19:22:07 · 1816 阅读 · 0 评论 -
虚幻引擎图文笔记:Niagara粒子系统实例 风格化火焰(二)
UE4.25.1书接上文《UE4基础:Niagara粒子系统实例 风格化火焰(一)》效果文章目录效果火焰速度火焰大小火焰颜色其它可微调的模块新建 Niagara System火焰速度删除默认的Add Velocity in Cone模块添加Add Velocity模块将Add Velocity模块的参数模式设置为Uniform Ranged Vector设置一下最大值和最小值火焰大小火焰的大小是随时间变化的,所以要在ParticleUpdate组中添加一个Scale M.原创 2020-06-21 13:43:35 · 2418 阅读 · 0 评论 -
虚幻引擎图文笔记:Niagara粒子系统实例 风格化火焰(一)
UE4.25.1本文参考了油管上一位名为Dev Enabled的UP主制作的教程。如果使用过类似Unity的Shuriken粒子系统,Niagara的基本使用方法也大同小异。可以认为Niagara是传统粒子系统的超集,增加的就是可编程部分。不过本文还没有涉及到编程部分。原创 2020-06-20 20:28:12 · 3719 阅读 · 0 评论 -
Godot特效:手绘贴图+粒子系统实现风格化火焰(三)火焰的Process材质
Godot Engine 3.1.2这个效果的ProcessMaterial设置和我这篇文章中介绍的大体相似《Godot 粒子特效:Low Ploy风格火炬》,仅以下几个参数需要注意:颜色部分动画部分...原创 2019-12-18 15:32:06 · 1209 阅读 · 0 评论 -
Godot特效:手绘贴图+粒子系统实现风格化火焰(二)火焰的Drawpass材质
Godot Engine 3.1.2新建一个名为fire_drawpass_mat.tres的SpatialMaterial类型材质原创 2019-12-17 19:26:54 · 1054 阅读 · 0 评论 -
Godot特效:手绘贴图+粒子系统实现风格化火焰(一)绘制火焰贴图
Godot Engine 3.1.2火焰贴图大小512x512,划分为4个256x256的方块,并绘制4个火焰形状原创 2019-12-17 17:33:45 · 1554 阅读 · 0 评论 -
用法线贴图和AnimationPlayer实现水面效果
Godot Engine 3.1.2这个方法不需要自己写Shader,而仅仅使用一张法线贴图和AnimationPlayer就实现了水面的效果,Godot的Animate Everything果然名不虚传原教程 How to Make a Simple Water Material in Godot 3 1步骤法线贴图直接使用SpatialMaterial注意...原创 2019-12-16 21:12:40 · 4908 阅读 · 1 评论 -
Godot特效:刀光(四)着色器及代码部分 方法二
写完《Godot特效:刀光(三)着色器及代码部分 方法一》,发现有点麻烦。要通过GDScript旋转然后把值通过uniform 传递到Shader中,与其如此直接旋转模型,岂不是更简单。所以把上文的方法修改了一下,材质直接用自带的SpatialMaterialvfx_slash代码代码比以前更简单了extends MeshInstance#var material:Materialo...原创 2019-12-15 16:24:41 · 1121 阅读 · 0 评论 -
Godot特效:刀光(三)着色器及代码部分 方法一
网上很多Unity版的刀光效果教程,都是基于粒子系统实现的,我这个Godot版使用Shader结合Tween实现的节点结构着色器shader_type spatial;render_mode unshaded,cull_disabled;uniform float offset = 0.0;uniform sampler2D tex : hint_albedo;void v...原创 2019-12-15 15:46:30 · 1981 阅读 · 0 评论 -
Godot特效:刀光(二)贴图制作
贴图使用 Affinity Photo制作刀光贴图根据不同的风格,制作方法也多种多样1. 原图2. 在Affinity Photo中编辑3. 导入到Godot中并作为mesh_slash.obj的ALBEDO贴图...原创 2019-12-14 21:33:13 · 1974 阅读 · 0 评论 -
Godot特效:刀光(一)建模
在Blender中建模1. 建模2. 展UV3. 导出obj文件注意要导出UV原创 2019-12-14 20:30:36 · 1438 阅读 · 0 评论 -
Godot特效:纯Shader实现3D手绘风火焰
效果图火焰颜色可以可以自定义原理这个效果的核心实现来自Gonkee的Github,原版是2D的,我把它改成了3D版的,注意下面几点:将render_mode设置为unshaded,目前这个火焰只是装饰性的,不能自发光实现billboard还要再添加一个灯光用作实际照明...原创 2019-12-13 16:23:56 · 1521 阅读 · 2 评论 -
Godot粒子系统:用3D Particles实现拖尾效果
效果图关键参数Drawing部分Local Coords:offPrcess Material部分Scale Curve:一个下降的曲线Draw Pass的Material部分Flag->Transparent:onFlag->Unshaded:onParameters->Billboard Mode:Particle BillboardAlbe...原创 2019-12-13 10:42:05 · 1789 阅读 · 0 评论 -
用Godot制作冲击波特效
Godot Engine 3.1.2在油管上看到讲述该特效的教程,我自己写的Shader效果图1. 建模2. 展UV3. 特效贴图4. 着色器代码shader_type spatial;render_mode cull_back,unshaded;uniform float speed = 1.0;uniform sampler2D tex : hint_albedo;void vertex(){ UV +=原创 2019-12-08 12:33:50 · 1134 阅读 · 0 评论 -
Godot 粒子特效:Low Ploy风格火炬
本文是油管教程《Godot 3.0 - Know Your Nodes: Particles2D》的笔记版。效果实现基于Godot的Particles2D节点。效果图使用Godot内置的ParticlesMaterial来实现各种粒子效果,需要面对的就是设置各种各样的参数,通过参数的组合来实现效果。所以我们不妨先来对比粒子节点的初始效果和最终效果,并分析一下有哪些参数变化。左边是P...原创 2019-09-01 08:43:33 · 1838 阅读 · 0 评论 -
Godot Shader特效:用Shader实现循环滚动背景
循环滚动背景是游戏中常用的效果,实现方式有很多,比较传统的方式是用2个Sprite同步运动来实现;Godot还提供了一个ParallaxBackground节点也可以实现这个效果;实际上用Shader也可以很简单地实现这个效果,并且还可以简化场景节点结构以及表现和逻辑的结耦合。效果图实现方式首先要对用作背景的图片启用repeat模式代码如下shader_type canvas_i...原创 2019-09-01 10:02:37 · 2017 阅读 · 0 评论 -
Godot Shader特效:UV旋转动画
实现这个效果,用GDScript的话只要一行代码就可以解决;用Shader做的话需要一些线性代数知识,扩展性相对差一些,不过如果像逻辑和表现解耦合或者减少CPU运算的话可以考虑这个实现方式效果图代码如下shader_type canvas_item;render_mode unshaded;uniform float pivot_x : hint_range(0.01,0.99) ...原创 2019-09-01 10:04:37 · 1227 阅读 · 0 评论 -
Godot Shader特效:用SCREE_TEXTURE实现简单的屏幕滤镜
用SCREEN_TEXUTE实现一个简单的屏幕滤镜。效果图代码如下shader_type canvas_item;void fragment(){ vec4 pixel = textureLod(SCREEN_TEXTURE,SCREEN_UV,0); COLOR.rgb = vec3((pixel.r + pixel.g + pixel.b) /3.0);}获取屏幕截...原创 2019-09-01 10:05:38 · 1469 阅读 · 0 评论 -
Godot Shader特效:3D描边(outline)效果 原理篇
本教程参考了油管上Dave the Dev的教程How to outline a 3D object in Godot _ Game Dev Tutorial 4,感谢大神们无私的奉献!先看效果图注:这次实现全部使用Godot自带的材质和Shader原理Godot的材质系统为每一个材质提供了一个**Next Pass属性,该属性的作用就是给材质提供一个次级材质,通过Next Pass...原创 2019-09-01 10:07:21 · 2913 阅读 · 3 评论 -
Godot Shader特效:自定义Shader实现3D描边(outline)效果
上篇笔记《Godot Shader特效:3D描边(outline)效果 原理篇》介绍了Godot实现3D描边的原理,该文中是用Godot自带的SpatialShader通过调整参数实现的,由于这个效果在3D游戏中还是很常用的,所以干脆自己写了一个专用Shader,非常简单。把它添加到材质上并作为一个Next Pass,就可以实现描边了。shader_type spatial;render_...原创 2019-09-01 10:08:45 · 2060 阅读 · 1 评论 -
Godot Shader特效:流光效果
效果图实现原理使用一个渐变图来引导流光的走向代码如下shader_type canvas_item;uniform sampler2D light_vector;uniform float width = 0.08;void fragment(){ vec4 color = texture(TEXTURE,UV); if(color.a != 0.0){ float...原创 2019-09-01 08:41:31 · 2778 阅读 · 0 评论