截图预览:

网页预览:http://eko.kooteam.com/flare3d/abao/

一 思路

我们在玩游戏的时候,经常能看到一些粒子特效被绑定在武器上,装备上。其实就是将粒子定位在某个对象上。在这篇教程中,我们把火焰粒子绑定在阿宝的两个手掌的骨骼上。

二 准备

现在我们需要一个火焰粒子特效和一个阿宝的模型。

粒子特效我直接拿了yblunan的东西,地址如下:火焰粒子

阿宝的模型在最后附件中提供,值得注意的是,模型中我将左右手掌需要绑定的骨骼命名为fire,fire2。

接下来先看看完整代码,然后逐步讲解。

三 完整代码

1 package2 {3     importbase.Base;4
5     importcomponents.BoneController;6
7     importflare.basic.Scene3D;8     importflare.basic.Viewer3D;9     importflare.core.Camera3D;10     importflare.core.Mesh3D;11     importflare.core.ParticleEmiter3D;12     importflare.core.Pivot3D;13     importflare.core.Texture3D;14     importflare.materials.ParticleMaterial3D;15     importflare.materials.filters.ColorParticleFilter;16     importflare.materials.filters.TextureFilter;17
18     importflash.display.Bitmap;19     importflash.events.Event;20
21     [SWF(width=800,height=600)]22     public class TheBao extendsBase23 {24         [Embed(source="fire.png")]25         private varFire:Class;26
27         [Embed(source="abao.f3d",mimeType="application/octet-stream")]28         private varABao:Class;29         private varscene:Scene3D;30         private varbao:Pivot3D;31         public function TheBao(info:String="粒子绑定骨骼")32 {33             super(info);34             scene=new Viewer3D(this);35             scene.camera=newCamera3D();36             scene.camera.z=-250;37             scene.camera.y=100;38             //scene.frameRate=10;
39 scene.addEventListener(Scene3D.COMPLETE_EVENT,onCom);40
41             bao=scene.addChildFromFile(newABao);42
43 }44         private function onCom(e:Event):void
45 {46
47             var fire:Bitmap=newFire();48             var pm:ParticleMaterial3D=newParticleMaterial3D();49             pm.filters.push(new TextureFilter(newTexture3D(fire.bitmapData)));50             pm.filters.push(new ColorParticleFilter([0xffffff,0xffff00,0xff0000,0x000000],[1,.5,.2,0]));51 pm.build();52
53             var fireEmiter:ParticleEmiter3D=new ParticleEmiter3D("",pm,newFireParticle());54             fireEmiter.particlesLife=20;55             fireEmiter.emitParticlesPerFrame=50;56             fireEmiter.rotateX(90);57             fireEmiter.layer=10;58
59             var fireEmiter2:ParticleEmiter3D=new ParticleEmiter3D("",pm,newFireParticle());60             fireEmiter2.particlesLife=20;61             fireEmiter2.emitParticlesPerFrame=50;62             fireEmiter2.rotateX(90);63             fireEmiter2.layer=11;64
65             var baoMesh:Mesh3D=bao.getChildByName("bao") as Mesh3D;66             fireEmiter.addComponent(new BoneController(baoMesh,"fire"));67             fireEmiter2.addComponent(new BoneController(baoMesh,"fire2"));68 scene.addChild(fireEmiter);69 scene.addChild(fireEmiter2);70 }71 }72 }

四 代码分析

首先,创建场景,设定摄像机位置,并加载阿宝的模型

super(info);
scene=new Viewer3D(this);
scene.camera=newCamera3D();
scene.camera.z=-250;
scene.camera.y=100;
scene.addEventListener(Scene3D.COMPLETE_EVENT,onCom);
bao=scene.addChildFromFile(new ABao);

其次,我们来创建火焰粒子

//创建火焰粒子的材质
var fire:Bitmap=newFire();var pm:ParticleMaterial3D=newParticleMaterial3D();
pm.filters.push(new TextureFilter(newTexture3D(fire.bitmapData)));
pm.filters.push(new ColorParticleFilter([0xffffff,0xffff00,0xff0000,0x000000],[1,.5,.2,0]));
pm.build();//实例化两个火焰粒子
var fireEmiter:ParticleEmiter3D=new ParticleEmiter3D("",pm,newFireParticle());//粒子的生命,也就是过多久会消失
fireEmiter.particlesLife=20;//每帧生成多少个粒子
fireEmiter.emitParticlesPerFrame=50;//将粒子绕x轴旋转了90度,确保发射方向从掌心射出
fireEmiter.rotateX(90);
fireEmiter.layer=10;var fireEmiter2:ParticleEmiter3D=new ParticleEmiter3D("",pm,newFireParticle());
fireEmiter2.particlesLife=20;
fireEmiter2.emitParticlesPerFrame=50;
fireEmiter2.rotateX(90);
fireEmiter2.layer=11;

再次 我们将火焰粒子绑定到骨骼上,这里用到官方提供的自定义骨骼控制类BoneController

var baoMesh:Mesh3D=bao.getChildByName("bao") as Mesh3D;
fireEmiter.addComponent(new BoneController(baoMesh,"fire"));
fireEmiter2.addComponent(new BoneController(baoMesh,"fire2"));
scene.addChild(fireEmiter);
scene.addChild(fireEmiter2);

五 所有资源打包放出

点击下载 abao

转载于:https://www.cnblogs.com/njflash/archive/2013/01/31/2886880.html

Flare3D游戏特效教程:火拳阿宝相关推荐

  1. 初学者如何熟练的做出满意的一款游戏特效?

    现今最火爆的游戏,莫属<王者荣耀>,每个英雄都有各自特色的技能和特效,本人也玩过一段时间,每个英雄的特效都非常酷炫,首推"王昭君""貂蝉".今天要讲 ...

  2. 【UE5】虚幻引擎5中的VFX游戏特效制作学习教程

    从零开始学习虚幻引擎5中的实时VFX. 你会学到什么 了解如何创建实时效果 通过创造效果来学习Niagara 了解Niagara是如何运作的 为游戏创造各种各样的效果. 创造风格化的火 创建风格化的爆 ...

  3. Unity粒子系统创建VFX游戏特效学习教程 Visual Effects in Unity Particle Systems [Beginner’s Guide]

    在Unity中学习高级粒子系统和视觉效果创建.初级到中级 你会学到: 游戏的视觉效果 Unity粒子系统 Unity中的Vfx 创建Unity视觉效果的初级到中级指南 课程获取:Unity粒子系统创建 ...

  4. Unity3d 游戏特效制作实战教程 第二部

    本套教程是由多年特效制作经验的作者录制,通过多个案例, 演示了xffect粒子系统与unitu3d粒子系统的特效制作的全部流程 包含xffect基础教程,并附送全部项目文件打包和素材. 本教学适合于U ...

  5. 虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通

    UE5 Niagara学习教程  课程获取:虚幻引擎5(UE5)实时VFX游戏特效制作入门到精通-云桥网 你会学到什么 我将通过创建各种各样的实时效果来教你虚幻引擎中强大的粒子系统. 我们将从简单的基 ...

  6. Cocos Creator游戏开发教程 学习笔记

    学完提问几个问题吧: position的锚点位置数值原点在哪里? 因为position是相对坐标,所以原点是父节点的锚点 .所以Canvas下面的直属节点原点就是世界坐标系的原点Canvas的锚点. ...

  7. 教学|3DSMAX制作爆炸粒子的技巧,游戏特效这么做

    这篇教程从以下几个方面,讲讲大佬在游戏特效研发中总结出来的几个粒子应用方面的小技巧: 1.常见的爆炸中,如何突出粒子火光的打击力度. 2.粒子跟随效果的实现方式及不同应用. (相信大家用的编辑器各不相 ...

  8. 游戏建模,游戏原画,游戏特效,哪个前景好?

    我先说下游戏原画和游戏特效 这俩都不好学--都不是速成型的--但特效这方面比原画缺人(会画画的太多了.),总的来说3D类会比原画工作好找一点.但特效怎么说,要求色感非常强.(当然也可以通过后期学习增强 ...

  9. 浪人棋牌游戏开发教程

    浪人棋牌游戏开发教程 www.langren.net 简单的程序框架. webgame程序构成: 三大部分. 第一是数据流程.第二是程序.第三是美术. 其中,数据流程包括了功能.也只有在功能中才能体现 ...

最新文章

  1. 033_webpack打包ES6模块化工程
  2. Eclipse 运行程序
  3. 网页设计界面 电脑版设计
  4. Android 解决mac无法识别手机设备
  5. mysql实例化_mysql多实例实例化数据库
  6. helloworld:一个完整的WCF案例
  7. Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete .
  8. Jlink接口引脚定义
  9. html win10虚拟键盘,win10专业版打开虚拟键盘的方法
  10. subst ( 将任意目录挂载成虚拟磁碟机 )
  11. 南海云课堂春季11(T)K1 拓展:单调队列
  12. 10个程序员实用但偏执的 Java 编程技巧
  13. 设备综合效率(OEE)的计算方法
  14. 笔记本电脑切换不到投影仪 问题 解决方法
  15. 【python游戏制作】僵尸来袭 ~ 快来一起创造植物叭~
  16. 什么是量化交易-量化交易demo
  17. 台式计算机的安装顺序,台式电脑安装系统步骤图 装系统步骤详解
  18. RK3228H开发之Android开发
  19. 介绍了一些代理相关工具
  20. 数逻实验七段数码管相关要点

热门文章

  1. macOS SwiftUI 教程之仿Safari浏览器地址栏(教程含源码)
  2. safari浏览器怎么导入书签
  3. 2018年自媒体行业风口的到来
  4. 【微信小程序反编译以及防反编译思路】
  5. IT服务器拓客的10个经典方法
  6. ITSS服务项目经理和服务工程师考试大纲
  7. 计算机基础作业批改记录,计算机基础大作业完整版.doc
  8. 2022-3-25 Leetcode 921.使括号有效
  9. vue3 router.push 传参路由跳转错误提示 Argument type {xxx} is not assignable to parameter type RouteLocationRaw
  10. php将上传的文件自动压缩,如何在服务器端实现文件自动压缩和解压