付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、UE4模型拆装蓝图实例最终效果如下图所示步骤1:导入FBX并且所有模型的原点在同一个位置(原点)最好将所有原点归到所有模型的下方中心方便散开时候往上散不至于散到地面一下步骤2:创建新项目 和不同的文件夹(选择不具有初学者内容)然后在 WorldSeting中添加新的游戏模式和新的PawnClass (添加后系统会自动创建BlueSprint的文件夹)Same ModeGame Mode OverrideJ SelectedDefault Pawn C循。总HUD ClassPI ay er Cont roller CliGame St ate ClawPEyw State ClassSpect
2、ator ClassHUDPJayeiStat«Si>ecLdt&rPawTi3:将导入的FBX分别创建为蓝图类如下图所示Uc etc Cruti Blu<xint Ltsing Thit.FindStep 3Sintic Utsh hebona,ta :t C f5truc: it Ie Meah- mpnrtLuDlnnt>ort«<i Asset,Rnippuilft Open Scunoe LocationJ Doer in External EditorCcmmori Edit* Rename% >jplcal«如此
3、X DeleteExdorejB Show in F口Mei View SiQwllnExpkirerRhffi ncesLcpy H«feranteRfifarMi£将所有蓝图拖拽到场景中 *进入蓝图部分在蓝图父类 BP_Expose中Vw»rSize Map.© V ew DocunentationiSdiKi Actors Using This AssetMoveEort.Migrau.A-dv-finccdRrp I 刑* RpfrenwsBulk Ed ft via Properly Matrix.g conntet To Stwret ton
4、twl.在此之前先创建一个蓝图BP_Expose作为蓝图父类,然后在BlueSprint文件夹中打开所有 FBX创建的蓝图类,在 ClassSetting中设置它们为 BP_Expose蓝图类的子类(就是继承关系)鸵存为生配汩J原引M首先通过 Get component by class获取场景中的蓝图类(选择对象为StaticmeshComponent )返回了一个数组(场景中八个蓝图类),首先判断这个数组是否长度为大于0 (否则一切没有意义),然后通过Get函数获取这个数组的第一个元素将其设置为名称为StaticMesh的一个变量,类型为 StaticmeshComponentStatic
5、Mesh 的引用这个步骤的意义在于保存场景中蓝图类*卜十洋中I uu均心:i !点姿力出dj坦汩月:司四驾-岗聒俎;土 FF左一-P在这个步骤蓝图中,主要是通过getComponentBounds获取模型的中心(重心),不是原点,通过Get direction Vector这个函数算出原点到中心这个方向,以及距离并且将这数值保存到两个以后要用的变量(散开的距离),random rotator是一个随机旋转角度并且赋值个一个旋转变量*这个图表中显示通过在蓝图父类的所有子对象上悬停发生两个事件一个是悬停时候设置材质高亮一个是离开时候设置材质为普通材质,也可以在初始时候就将所有的蓝图类赋予初始材质显
6、示高亮后又可以变成另外一种普通材质可以通过Timeline这个事件节点*接下来要进行的是组装和拆分两个动作的自定义事件 来设置模型拆分出去的动作和旋转的速度1模型拆分由于清晰度我截图分成两半首先自定CustomEvent将其命名为huandong (这个名字最后觉得没有命名好),然后在这个 自定义事件中增加一个整形变量4Fban 篙/ Graph NodeName/ GraphHeplic 9t«sCall In Editor/ Inpins目的是为了以后由这个变量的值来决定是否是依次来拆分还是同时拆分如果这个变量是一就延迟0.2秒来一次拆分每个模型如果是0不进行延迟,timelin
7、e这里就不多说了,游戏开始时候从原点开始,然后通过Ease这个函数来进行线性缓动,缓动原点是 0.0.0,目标就是P To END这个事先保存好的值,也可以修改,然后再设置拆分的目的地以及旋转(旋转中也可以通过Ease这个函数来事先一个线性的角度旋转不是匀速旋转)。这里有一点重要的是没有讲到的 一个状态的存储,我们现在Bluesprint文件夹中右键创建一个Enumerators (枚举变量),在其中创建两个变量分别为Start和end两种状态,为了在模型移动后把这种状态给保持下来在执行拆分模型完成后 将模型位置的状态设置为结束,将其保存下来方便以后调用这个状态,模型的组装:其实就是把两个起始
8、位置和目标位置反置一下就可以了*在游戏开始时候要做的事情通过sequence这个序列下点来同时做有些事情如下图所示到此在蓝图类BP_Expose这个父类上的蓝图节点连接就结束了接下来我们到MyPawn这个类中进行蓝图调试与编辑在MyPawn这个类中编辑蓝图*首先在 Mypawn中添加 Spring和camera ,将相机作为 spring的子类相机就变为这条spring红线的端点位置了,可以设置这个红线的距离机的聚焦位置,为了不让这个红线坚持到模型的碰撞以免发生错误白色圆球就是这个相 把Spring这个父类下面的这个DO collision Test勾选框勾掉Camera Settings再把
9、这个打勾,意思是可以让游戏模式旋转,过后Use Control出 口将Mypawn拖到场景中 在WorldSetting中设置游戏模式为自己增加的游戏模式,和我的 Mypawn ,这样游戏开始相机才是你调整的那个位置不然就是默认的位置接下来我们来控制视角的变换,在 ProjectingSetting的 在I n p u t中的 Axis Mappings .西添加两个控制器AXKMouseX和MouseY分别命名为 Yaw和Pitch,并将 MouseY的Scale值改为-1.进入图表,通过Input Axis+Yaw(自己刚才命的名字, 调用鼠标控制),然后通过Add controller
10、Yaw Input 和Add controller Pitch两个函数来执行鼠标的左右上下控制弄能。*鼠标以及视角调好了我们来做真正意义的模型拆分动作的调用功能首先我们新建一个变量叫做Is by step (是否一步一步的拆分),这就是在自定义缓动事件时候说的我新建的整形变量在这里发挥作用了 ,这本变量设置成Bool,大家知道这个变量转换 成整形不是0就是1,G ConriponentsIsBySlep CurrentSelect卜面是这个环节的总蓝图节点连接表通过两个键盘上的U和I键设置Isbystep这个变量的置从左边开始,通过 GetAll Actors of Class这个节点来遍历查
11、找每一个子蓝图类,然后将其调用到Ease huandong这个自定义事件上去执行,这个下面的Loop Body .An灯 FlrrwnrtirfecsIndMRE pinis t)y Siep4 ray In dpi Completed D意思就是如果我设置成1,等于下面的就没有变化在BP_Expose这个蓝图中的这个节就要在每个模型拆分后延迟0.2秒拆分下一个模型,如果我设置成0,那么Index就是0, 0*0.2就是延迟0秒等于不延迟,接下来就是组装模型了其实很简单把最后面的调用自定义事件改为huandong2就可以了*增加一个功能:当我们选中一个对象,立刻聚焦到该模型上,其他模型随机隐藏
12、 先展示一下最后蓝图表首先我们得创建一个蓝图变量即即时被选中的对象, 类型为蓝图类 BP_Expos e(我们在项目进行开始自己创建的蓝图父类)/ VariabteCurrentselectVariable NameVarlaHe TypeEditable在这个功能之前 也是要首先进行蓝图类的查找与遍历,在 LoopBody这个节点,通过4variablesJgfauhArrayElement 引出节点,目的是为了在. Set Default Scene RootMyPawn中引用,然后通过 Set Vibisillty将所有蓝图隐藏,等隐藏所有完了,再单独通过创建的CurrentSelect
13、蓝图变量来设置当前选择的对象被显示出来,也是需要通过 SetDefaultSceneRoot来弓I用,然后判断是否存在,再通过 SetActorLocation设置他的目的地,通过此时的摄像机位置到该对象的Bounds中心点,这就是为什么引用MyPawn的DefaultSceneRoot 了不然就没有起始位置*接下来 我们做摄像机返回原点的功能通过B键来是实现,而且显示所有有可能被显示的物体为初始状态首先还是要用到遍历循环,然后显示所有的模型,然后再次引用SetDefaultSceneRoot,这样Set。Location和Ratator把所有模型放回原点以及显示才能找到摄像机的位置,然后通过
14、*UI*到了最后一部实现点击按钮来一次批量组装和拆分模型 首先需要制作为每个按钮添加点击事件,将点击事件设置成一个封装的函数方便管理界面,这个函数的功能为调用后面我们要创建的Step自定义事件,含有一个Inter整形变量的参数,这个自定义事件在Mypawn中创建,再回到我们创建的MyWidget中,创建一个自定义函数调用鼠标和这个Step事件,上图中,首先我们在 UI的蓝图中,获取到 Get player Pawn这个类,然后才能用它里面的 一些变量和自定义事件等,再将其转换为我们创建的那个MyPawn,就可以执行自定义事件Step 了,把这个函数封装了,就可以通过鼠标来实现点击按钮事件了Q OnCfieked (ButtarL70)G Onmouse ClikedG OnClicked0TargeT 6卅O OnmouseCIrked。OnC Ticked (ButtOfv408)l QiQ&i js My Uf»0Target 割”O卜 Ind改T|上图的Index就是我们在蓝图类 BP_Expose创建的变量,Pa rtSelectlndexState mesh作为每个按钮要选择的那几个模型的代号,现在我们来把这个 Step在MyPawn中写好这个自定义事件是如何实现部分拆装
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年内蒙古民族幼儿师范高等专科学校单招综合素质考试题库含答案详解(轻巧夺冠)
- 2026年兰州资源环境职业技术大学单招职业倾向性考试题库附答案详解(巩固)
- 2026年兴安职业技术学院单招综合素质考试题库含答案详解(巩固)
- 2026年内蒙古民族幼儿师范高等专科学校单招职业倾向性考试题库附答案详解(夺分金卷)
- 2026年共青科技职业学院单招职业倾向性测试题库及答案详解(典优)
- 2026年北京科技大学天津学院单招职业适应性测试题库及答案详解(夺冠系列)
- 2026年包头铁道职业技术学院单招职业适应性测试题库含答案详解(模拟题)
- 2026年南阳农业职业学院单招职业倾向性测试题库及答案详解参考
- 2026年内蒙古电子信息职业技术学院单招综合素质考试题库附答案详解(考试直接用)
- 2026年包头职业技术学院单招职业倾向性考试题库附答案详解(a卷)
- 初中地理七年级《世界气候》单元复习课教学设计
- 厨师基础知识培训课件
- 2026中国科学院机关招聘应届毕业生5人笔试备考试题及答案解析
- 森林防火物资储备库建设标准
- 2026年陕西单招基础薄弱生专用模拟卷含答案基础题占比80%
- 贡菜收购合同范本
- 27-华为的经营管理之道:以客户需求为导向的流程化组织建设与持续创新实践
- 2025年贵州省高考地理试卷真题(含答案详解)
- 毛泽东《人的正确思想是从哪里来的?》逐句解析与层次分析
- 重庆科技大学《高等数学I》2025 - 2026学年第一学期期末试卷
- 2025年中远海运招聘1189人(含社招)笔试参考题库附带答案详解
评论
0/150
提交评论