unity宫本武藏的unity3d刀光特效怎么做

第九节 Unity3D中刀光制作的方法教学 - Unity3D游戏特效制作基础教程 - 影视后期制作学院 - 勤学网
&&&第九节 Unity3D中刀光制作的方法教学
&当前线路为
网络好像不太流畅,试试其他线路
切换线路若仍有问题
时间:00:00&|
&本节课程讲解使用Unity3D制作刀光特效,掌握刀光特效的制作方法。
提示:点击笔记时间可继续观看
笔记时间: 18:13
需要勾选Texture Sheet Animation并选择长宽比
笔记时间: 17:42
U3d的粒子系统需要合并了的序列图片
第一章 游戏特效的认识
第二章 Unity3D软件的讲解
第三章 其他软件和Unity3D交互使用
第四章 制作过程中的注意事项以及小技巧
最后回复人/回复时间
还没有学员在学习本节课程时遇到问题
课程附件列表:
U3D基础入门附件
FX Maker v1.5.1
?350元photoshop CS6零基础入门教程&3881人阅读
移动游戏开发(55)
最近在学习Unity中的LineRenderer组件的时候,突发奇想,想到怎么实现水果忍者的刀光特效
制作起来并没有想象的那么难,只是想让其逼真起来的话需要一张好的材质贴,博主找了一张不是很完美的贴图,实现了下
最终效果图如下
该Demo源码我将上传,提供大家
接下来先介绍使用LineRenderer来绘图
在Hierachy面板上创建3D-&Panel,调整摄像机位置,使其视野完全看见Panel,目的是Panel作为画布
创建一个脚本,代码如下
using System.C
using System.Collections.G
using UnityE
public class DrawLines : MonoBehaviour
private LineR
public Material rendererM
private List&Vector3& pointL
private bool isDrawing=
// Use this for initialization
void Start ()
pointLists = new List&Vector3&();
renderer = new LineRenderer();
// Update is called once per frame
void Update ()
if (Input.GetMouseButtonDown(0))
GameObject lineObj = new GameObject();
lineObj.transform.SetParent(this.transform);
renderer = lineObj.AddComponent&LineRenderer&();
renderer.material = rendererM
renderer.startColor = Color.
renderer.endColor = Color.
//renderer.widthMultiplier = 0.1f;
renderer.startWidth = 0.1f;
renderer.endWidth = 0.1f;
DrawLineByPoint();
isDrawing =
Debug.Log(&开始绘图&);
if (Input.GetMouseButtonUp(0))
isDrawing =
pointLists.Clear();
Debug.Log(&绘图结束&);
if (isDrawing)
DrawLineByPoint();
renderer.numPositions = pointLists.C
renderer.SetPositions(pointLists.ToArray());
Debug.Log(&正在绘图&);
private void DrawLineByPoint()
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
bool isHit = Physics.Raycast(ray,out hit);
if (isHit)
Vector3 linePoint = new Vector3(hit.point.x,0,hit.point.z);
pointLists.Add(linePoint);
将其挂载到Panel上,此时Panel需要为其添加Material
我创建了一个下图的Material
运行游戏,绘图正常
刀光特效唯一的特点的是在LineRenderer组件上添加了材质
接下来,我选择了一张贴图(贴图不是很完美,可以按自己的需求选择),添加到材质上,选择了shader
结束!!!之后的效果便是文章开篇的效果了
==================== 即步 CSDN博客专栏=================
专栏地址:.cn
网站地址: &
==================== battle for programming =============
欢迎转载,转载注明出处!!!
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:92182次
积分:1935
积分:1935
排名:千里之外
原创:96篇
评论:29条
文章:55篇
阅读:71200
(3)(7)(5)(8)(16)(9)(1)(7)(14)(10)(11)(5)5153人阅读
[编程语言](124)
[Unity引擎](86)
[游戏开发](79)
& & & &&大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是。& & & & 我实在不明白有的人为什么不喜欢武侠/仙侠类游戏,或许是由于武侠/仙侠类游戏身上被永远烙上的国产标签吧!博主最近在玩一部叫做《雨血》的游戏,博主不禁感慨:在这样一个流星蝴蝶不再闪烁、网游成风、国产双剑后续创新不足的后国产时代,居然还能够有这样一部再次让博主热血沸腾的游戏。博主最早接触过的游戏是《流星蝴蝶剑》,由于这部游戏的上手难度本身很高,所以博主基本上没有通关过,现在偶尔拿出来一个人怀念一下。据说《雨血》系列堪称第一部走出国门的国产RPG,博主一直有一个梦想,就是有一天我们可以用RPG来演绎中国古代最为绚丽夺目的文学经典《西游记》。博主是一个相对传统的人,喜欢中国的传统文化,所以对于国外的文化找不到一种归属感,我实在没有觉得国外游戏中的魔法会比中国的仙术、武功、五行、暗器、蛊术来得简单。如果说仙剑、古剑是仙侠背景下的武侠,轩辕剑是历史背景下的武侠,那么《血雨》就是古龙武侠风格下的武侠。博主很喜欢这样的画风,因为每一个画面都让人觉得这是在欣赏一件艺术品,我们来看几张图片吧:& & & & &可以看到,在这部游戏中,前两部是半即时制RPG,第三部则完全是即时制RPG。博主尤其喜欢这部游戏的配乐,整个配乐大气磅礴,一招一式都有不错的打击感,而且武器的特效十分华丽。那么,到这里,就到了我们今天的主题:刀光剑影特效的制作。我们今天选择的PacketRPG插件,这个插件可以帮助我们快速地实现武器拖尾特效。好,下面我们开始:& & & & &首先我们打开Unity3D、导入PocketRPG Trails。使用这个插件,我们首先要做的是需要和美工交流,以获得模型中武器的确切位置。如果不知道武器的确切位置,建议大家还是和博主一样使用这个插件自带的模型吧。好,首先我们在项目中找到这个模型:& & & &下面我们将模型拖到场景中,展开模型,发现下面的结构:& & & & &我们展开到left_hand_joint这是左手的关节,可以发现它的下面有两个节点,第一个是手指,第二个我们将其改名为Left_Weapon,这就是我们左手武器的位置,我们在它的下面创建一个LeftWeaponTrail,这是用来显示我们特效的组件,我们为其添加WeaponTrail脚本:& & & & 完成该脚本的添加后,我们为其添加Mesh Renderer,选择特效材质,这里我们选择PocketRPG提供的默认材质:& & & & 同样地,对于右手,我们采取相同的方法找到节点,为其添加特效组件,这里命名为RightWeaponTrail。接下来,我们将模型结构暂时合并到一起,我们选中真个模型,为其添加AnimationController脚本,这是PocketRPG提供的用于控制模型动画的一个脚本。好了,做好前面的基础后,我们来编写脚本,控制我们的角色:using UnityE
using System.C
public class ChangeAnim : MonoBehaviour {
//定义左手WeaponTrail
public WeaponTrail mWeapTrailL;
//定义右手WeaponTrail
public WeaponTrail mWeapTrailR;
//定义攻击招式1
private AnimationState State_Attack1;
//定义攻击招式2
private AnimationState State_Attack2;
//定义攻击招式3
private AnimationState State_Attack3;
//定义攻击招式4
private AnimationState State_Attack4;
//定义等待状态
private AnimationState State_W
//动画控制器
private AnimationController mC
void Start ()
//获取动画控制器
mController=gameObject.GetComponent&AnimationController&();
//为每个招式设定对应的动画
State_Attack1=animation[&Attack1&];
State_Attack2=animation[&Attack2&];
State_Attack3=animation[&Whirlwind&];
State_Attack4=animation[&WhirlwindAttack&];
State_Wait=animation[&Idle&];
//为动画控制器添加武器拖尾脚本
mController.AddTrail(mWeapTrailL);
mController.AddTrail(mWeapTrailR);
//设置拖尾效果
mWeapTrailL.SetTime (3.0f, 0, 1);//设置拖尾时间为3秒
mWeapTrailR.SetTime (3.0f, 0, 1);//设置拖尾时间为3秒
void OnGUI()
if(GUILayout.Button(&翔龙斩&,GUILayout.Height(30)))
mController.PlayAnimation(State_Attack1);
StartCoroutine(&ReSetToWait&);
if(GUILayout.Button(&裂穹击&,GUILayout.Height(30)))
mController.PlayAnimation(State_Attack2);
StartCoroutine(&ReSetToWait&);
if(GUILayout.Button(&天罡伏魔&,GUILayout.Height(30)))
mController.PlayAnimation(State_Attack3);
StartCoroutine(&ReSetToWait&);
if(GUILayout.Button(&乱剑悬月&,GUILayout.Height(30)))
mController.PlayAnimation(State_Attack4);
StartCoroutine(&ReSetToWait&);
//0.5秒后恢复到等待状态
IEnumerator ReSetToWait()
yield return new WaitForSeconds(0.5F);
mController.PlayAnimation(State_Wait);
& & & &这里需要注意以几点:& & & &1、使用PacketRPG时,模型动画将不受模型自带的Animation组件的控制,我们需要使用Animation Controller来控制模型动画。具体方法是PlayAnimation(AnimtaionState mState)& & & &2、在PacketRPG中,通过SetTime()方法来设置武器拖尾的时间,通过StartTrail()和FadeOut()来实现特效的渐入渐出效果。当然,我们可以通过WeaponTrain脚本来设置,具体参数的意义大家可以查阅文档。& & & &3、该脚本中的两个WeapTrail对象分别指向我们实现定义好的LeftWeaponTrail、RightWeaponTrail。& & & &好了,我们来看看最终的效果吧:& & & &技能一:翔龙斩& & & & &技能二:裂穹击& & & 技能三:乱剑悬月& & & &&& & & & &好了,这就是今天的博客了,希望对大家有用、希望大家喜欢! & && & & & 每日箴言:有两样东西,愈是经常和持久地思考它们,对它们日久弥新和不断增长之魅力以及崇敬之情就愈加充实着心灵:我头顶的星空,和我心中的道德法则——康德& & & &&喜欢我的博客请记住我的名字:秦元培,我的博客地址是:blog.csdn.net/qinyuanpei& & & & 转载请注明出处,本文作者:秦元培,本文出处:http://blog.csdn.net/qinyuanpei/article/details/& & &
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1268735次
积分:14445
积分:14445
排名:第868名
原创:196篇
评论:1306条
人生到处知何似?应似飞鸿踏雪泥。
(2)(1)(2)(3)(1)(3)(2)(5)(1)(4)(2)(5)(4)(1)(5)(4)(2)(1)(5)(4)(1)(7)(13)(1)(2)(1)(9)(8)(2)(5)(9)(23)(8)(13)(18)(7)(1)(1)(2)(1)(1)(1)(2)(1)(3)(1)当前位置: →
→ Unity3D笔记切水果二刀光剑影
Unity3D笔记切水果二刀光剑影
& 作者及来源: PEPE YU - 博客园 &
&收藏到→_→:
摘要: Unity3D笔记 切水果二 刀光剑影
"Unity3D笔记切水果二刀光剑影"::
一、步骤一创建一个空gameobject、js
#pragma strict
var mycolor:
var firstposition:vector3;//鼠标点击的第一个点
var secondposition:vector3;//鼠标放开的位置
var middleposition:vector3;
var isclick:boolean=false;
private var linerenderer:
function start () {
linerenderer=gameobject.addcomponent(linerenderer);
linerenderer.material.color=
linerenderer.setwidth(0.1,0.1);//设置宽度 起点宽度和终点宽度 function setwidth (start : float, end : float) : void
function update () {
var ismousedown=input.getmousebutton(0);//获取按钮
if(ismousedown&&!isclick){
firstposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
linerenderer.setvertexcount(1);//设置线段数
linerenderer.enabled=true;
linerenderer.setposition(0,firstposition);
isclick=true;
if(ismousedown){
secondposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
linerenderer.setvertexcount(2);
linerenderer.setposition(1,secondposition);
if(input.getmousebuttonup(0)){
isclick=false;
secondposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
linerenderer.setvertexcount(2);
linerenderer.setposition(1,secondposition);
三、实现划线功能
&四、实现刀光剑影
&编辑好位置
&调用刀光剑影
#pragma strict
//var mycolor:
var firstposition:vector3;//鼠标点击的第一个点
var secondposition:vector3;//鼠标放开的位置
var middleposition:vector3;
var isclick:boolean=false;
var myray:
private var raygameobject:
//private var linerenderer:
//function start () {
linerenderer=gameobject.addcomponent(linerenderer);
linerenderer.material.color=
linerenderer.setwidth(0.1,0.1);//设置宽度 起点宽度和终点宽度 function setwidth (start : float, end : float) : void
function update () {
var ismousedown=input.getmousebutton(0);//获取按钮
if(ismousedown&&!isclick){
firstposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
//linerenderer.setvertexcount(1);//设置线段数
//linerenderer.enabled=
//linerenderer.setposition(0,firstposition);
isclick=true;
if(ismousedown){
secondposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
//linerenderer.setvertexcount(2);
//linerenderer.setposition(1,secondposition);
if(input.getmousebuttonup(0)){
isclick=false;
secondposition=camera.main.screentoworldpoint(new vector3(input.mouseposition.x,input.mouseposition.y,1));
//linerenderer.setvertexcount(2);
//linerenderer.setposition(1,secondposition);
middleposition=(firstposition+secondposition)/2.0;
var angle:float=mathf.atan((secondposition.y-firstposition.y)/(secondposition.x-firstposition.x));
raygameobject=instantiate(myray,middleposition,quaternion.angleaxis(angle*100/3.14,vector3.forward));
destroy(raygameobject,1.0);
搜索此文相关文章:此文来自: 马开东博客
网址: 站长QQ
Unity3D笔记切水果二刀光剑影_博客园相关文章
博客园_总排行榜
博客园_最新
博客园_月排行榜
博客园_周排行榜
博客园_日排行榜unity3d(30)
PocketRPG的示例下载:http://download.csdn.net/detail/xv_ly15/4999885
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PocketRPG Trails的例子演示效果
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
说明:PocketRPG的例子中已经有实现拖尾效果的脚本及说明文档,我只是将自己实际使用时遇到的问题与使用步骤更详细的写下来。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
核心脚本:
WeaponTrail:
实现拖尾效果的脚本。
Height:拖尾效果的高度,对应武器的长度
Time:拖尾效果残留事件
Always Up:
Min Distance:
Time Transition Speed:
Desired Time:
Start Color:开始颜色
End Color:结束时颜色
使用(PocketRPG文档的ReadMe中有提及)
1.Calling StartTrail(float timeToTweenTo, floatfadeInTime) andFadeOut(float fadeTime)will fade in and fade out the trail respectively.
调用StartTrail和FadeOut函数去实现渐显示和渐消失的效果。时间参数以1秒为一个单位。
2.Calling SetTime(float trailTime, floattimeToTweenTo, float tweenSpeed)can change the length of the trailinstantly, giving you a little more control.
调用SetTime函数去改变拖尾长度
3.The WeaponTrail can be built by callingItterate(float itterateTime) andUpdateTrail(floatcurrentTime, float deltaTime). These functions are called byAnimationController, however
if you don't want to use AnimationController youcan call these yourself.
调用Itterate和Update函数去更新拖尾效果,目前还不明白这两个函数的参数怎样添好,幸运的是,PocketRpg的开发者做了AnimationController脚本去代替我们调用这两个函数使拖尾效果更好。
AnimationController:
控制动作,使拖尾效果更好
Gather Delta Time Automatic:
1.调用AddTrail函数去添加受影响的WeapontTrail对象。
2.调用PlayAnimation函数去切换动作。
------------------------------------------------------------------------------------------------------------------------------------------------------------
模型:天堂的剑士(网上下载的)
动作:攻击和休息
模型包:http://download.csdn.net/detail/xv_ly15/5001911
导入模型包后,能在Unity编辑器下看到Player和Texture两个文件夹。
在player目录下能看到各个动作包。
用Attack和Rest做武器拖尾效果演示。
将Attack拖到场景中
添加AnimationController脚本
添加AnimationController脚本,对象已带有Attack动作,再通过Rest对象添加Rest动作。
添加WeaponTrail脚本
找到需要添加拖尾效果的GameObject,添加Trail对象用于实现拖尾效果
Trail添加必须的Mesh Filter,Mesh Render,拖尾材质还是使用PocketRPG自带的刀光材质。
使AnimationController和WeaponTrail生效
新建一个脚本,假设命名为ChangeAnim用于改变动作并控制拖尾效果。与AnimationController同一等级赋到GameObject上。在上面添加AnimationContoller的图片中能看到。
在ChangeAnim下生命如下四个成员变量
& & //带有WeaponTrail的对象
& & public WeaponT
& & //攻击动作
& & private AnimationState animA
& & //休息动作
& & private AnimationState animR
& & //动作控制脚本
& & private AnimationController animC
声明后将Trail对象拖到该脚本使用的Trail中,同样在上面添加AnimationController的图片中能看到。
在Start函数中添加如下代码
& & & & //获取动作控制脚本
& & & & animCtl = gameObject.GetComponent&AnimationController&();
& & & & //获得攻击和休息动作
& & & & animAtk = animation[&attack&];
& & & & animRest = animation[&rest&];
& & & & //添加受动作控制脚本的拖尾对象
& & & & animCtl.AddTrail(trail);
在Update函数添加如下代码,响应A,B按钮控制动作
& & & & if (Input.GetKeyDown(KeyCode.A))
& & & & & & //播放攻击动画并打开拖尾效果
& & & & & & animCtl.PlayAnimation(animAtk);
& & & & & & trail.StartTrail(0.5f, 0.4f);
& & & & & &&
& & & & else if (Input.GetKeyDown(KeyCode.B))
& &//播放休息动画
& & & & & & animCtl.PlayAnimation(animRest);
& & & & & & //渐消失
& & & & & & trail.FadeOut(0.5f); &
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:28231次
排名:千里之外
转载:77篇
(3)(2)(1)(1)(1)(4)(22)(12)(29)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 unity刀光插件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信