自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 Unreal Wwise 工作流程设置

使用 Event-Based Packaging 的工作流程1、简介Unreal Integration 2019.2 中针对素材管理实施了一些重大改进,包括新增了 Event-Based Packaging 工作流程。现在无需手动将 Wwise Event 导入到 Content Browser 中,也不必通过手动创建的 SoundBank Unreal 素材来管理引用。这一新的工作流程会自动创建工程所需的全部素材:Event、Auxiliary Bus、Media、Init Bank、RTPC (

2021-08-18 11:49:40 871

转载 UE4的UE_LOG

说明:本文为Wiki上的RAMA大神文章的大致翻译游戏模式:在游戏模式下,你需要在游戏的快捷方式后面加 -Log,才会在游戏中显示。 编辑器模式(Play In Editor):你可以在Output窗口中看到log信息。如果想在游戏中看到,需要到Engin.ini中修改参数添加"GameCommandLine=-log,如果没有,则需要按~,输入-Log命令开启。 快速使用:UE_LOG(LogTemp, Warning, TEXT("Your message")).

2021-08-11 15:20:01 902

原创 《C++ Primer 第五版》读书笔记一

第一章 开始1.函数的定义一个函数的定义包含四个部分:返回类型、函数名、形参列表、函数体2.输入输出IO对象:cin用于输入cout用于输出endl用于将输出写入输出流,并且实现换行(\n)第二章 变量和基本类型内置变量类型内置类型包括算术类型(整形(包括字符型和布尔类型)、浮点型)和空类型(void)1个char的大小和一个机器字节一样其他的字符类型用于扩展字符集整形:short、int、long、long long浮点型:float(至少6位有效数字)、double(至少10

2021-05-11 22:54:12 260

转载 两种同步模式:状态同步和帧同步

一、同步所谓同步,就是要多个客户端表现效果是一致的,例如我们玩王者荣耀的时候,需要十个玩家的屏幕显示的英雄位置完全相同、技能释放角度、释放时间完全相同,这个就是同步。就好像很多个人一起跳街舞齐舞,每个人的动作都要保持一致。而对于大多数游戏,不仅客户端的表现要一致,而且需要客户端和服务端的数据是一致的。所以,同步是一个网络游戏概念,只有网络游戏才需要同步,而单机游戏是不需要同步的。二、状态同步和帧同步的区别最大的区别就是战斗核心逻辑写在哪,状态同步的战斗逻辑在服务端,帧同步的战斗逻辑在客户端。战斗逻辑是

2021-03-17 10:28:45 521

翻译 Navmesh研究(三)区域生成

本文翻译自:http://critterai.org/projects/nmgen_study/regiongen.html区域生成区域生成是构建导航网格的第二阶段,其代表了源几何体的可行走表面的表面区域的生成。创建开放的高度域开放的高度域表示的是高度域中实心区间上方的区域,其创建方式相对简单。循环遍历所有的实心区间:如果该实心区域被标记为可行走,则记录其y轴方向最大值,同时寻找该列中上方的相邻区间的y轴方向最小值。这两个值分别是新生成的开放区间的floor和ceiling;如果该实心区域是该列

2021-02-06 01:57:55 653

翻译 Navmesh研究(准备工作)配置参数

本文翻译自:http://critterai.org/projects/nmgen_study/config.html配置参数在进入网格生成每个阶段的细节之前,了解影响最终结果的各种配置参数很重要。本页提供NMGen类使用的部分主要配置参数的功能描述(详细参数可去原文查看),它们如何影响最终结果以及它们如何相互影响。cellSize约束条件 > 0使用者NavmeshGenerator,SolidHeightFieldBuilder,SolidHeightField,OpenHeightF

2021-02-06 00:33:16 587

翻译 Navmesh研究(二)体素化过程

体素化过程构建导航网格的第一步是使用体素化创建一个实体高度域创建实体高度域当检测到源网格的轴对齐包围盒并创建一个用于保存体素信息的实体高度域之后,我们对源网格中的每一个多边形(可以是三角形)执行以下过程:确定多边形在高度域xz平面上的投影。用多边形的2d轴对齐高度域的边界,这样做减少了多边形与高度域作相交测试的次数循环遍历投影覆盖的所有高度域列,并得出与该列相交的源多边形部分。如果发生相交,则导出一个新的“剪切”多边形。然后确定修剪的多边形的最小和最大高度。这代表这一列与源多边形相交部分在y轴上

2021-02-05 03:52:40 826

翻译 Navmesh研究(一)高度域介绍

高度域介绍NMGen会生成用于navigation mesh(导航网格)的数据,为了了解这个过程,首先需要了解它如何使用高度域来表示体素数据。高度域提供了良好的压缩效果,同时高度域也提供了可以提取几何图形上表面信息的数据结构。高度域的基本结构下面是在欧几里得空间中任意轴都对齐的盒子。它的边界由最小和最大顶点定义。现在,将盒子切割成宽度和深度相同的垂直列。每一列就是一个格子。然后,在高度轴方向用固定的高度增量对每一列进行切割,每一列都会分成若干个小的轴对齐包围盒(红色的盒子),每一个(红色)盒子

2021-02-05 01:54:55 773

原创 简单的巡逻AI

1、场景设置场景中央为可供移动的主角(黑色箭头)和四处巡逻的AI(蓝色圆形),四周为黑色墙体。墙体碰撞器为EdgeCollider2DAI拥有一个子物体,子物体上挂一个Circle Collider2D,用于表示AI的听力范围2、脚本编写1、AI的脚本首先,我们可以针对AI所拥有的状态,创建对应的枚举类型public enum AvoidSceneState{ Idle, Track, AvoidWall}在这个简单巡逻场景中,AI需要三个状态:巡逻、追击、避

2020-11-02 20:51:20 481

原创 渲染流水线流程

一.应用阶段1.把数据加载到显存中2.设置渲染状态网格选择哪个shader,material。3.调用draw call二.几何阶段1.顶点着色器顶点着色器的处理单位是顶点,每个进入的顶点都会调用一次顶点着色器。其本身不能创建或者销毁任何顶点,因此无法得到顶点之间的关系。比如无法得知两顶点是否属于同一个三角网格。这种独立性的好处是GPU可以利用本身特性并行优化每一个顶点,这一阶段处理速度会非常快。2.曲面细分着色器壳着色器:基本体(内含用于定义细分曲面的控制点)-》告诉镶嵌器要.

2020-10-24 20:59:42 318

原创 《游戏人工智能编程》学习笔记三——West World场景实例

1、West World实例场景:在一个西部小镇有一个居民Bob,他的职业是矿工,小镇上有四个标志物,金矿、酒吧、银行、家,他疲劳时要回家睡觉,口渴时会去酒吧喝酒,金子到达一定数目会去银行存储金子。他准确地向哪走,到达后要干什么,都由Bob当前的状态决定。金矿工人的状态图:居民基类:using System.Collections;using System.Collections.Generic;using UnityEngine;public class BaseGameEntity{

2020-10-18 15:03:34 371 1

原创 《游戏人工智能编程》学习笔记二——简单的有限状态机

1、有限状态机的定义定义:一个有限状态机是一个设备,或是一个设备模型,具有有限数量的状态,它可以在任何给定的时间根据输入进行操作,使得从一个状态变换到另一个状态,或者是促使一个输出或者一种行为的发生。一个有限状态机在任何瞬间只能处在一种状态。举个例子:灯的开关是一个非常简单的有限状态机。他有两种状态:开或关。状态之间的变换是通过你手指的输入产生的。向上按开关,产生从关到开的状态变换,向下按开关,产生从开到关的状态变换。2、有限状态机的实现方法1、switch/if以灯的开关为例using S

2020-10-16 14:28:10 599 1

原创 《游戏人工智能编程》学习笔记一

1.数学知识1.1笛卡尔坐标系在二维空间下,笛卡尔坐标系可以被定义成两个坐标轴成直角相交并且用单位长度标出。水平轴称为x轴,垂直轴称为y轴,两个轴。如果要表达三维空间,需要增加一个坐标轴-z轴,z轴从屏幕的后面延伸到你的头的后方,在途中穿过原点。1.2函数和方程如果x的每一个值都可以与y的一个值相关联,那么y就是一个关于x的函数。y称为因变量,x称为自变量。例如:y = m * x + c其中m和c叫做系数(不因自变量的变化而变化)1.3三角学1、射线和线段射线:只有一个端点,另一端无限

2020-10-14 22:05:17 2080 12

原创 二维数组地址实例

1、&数组名&数组名是一个二级指针,指的是该二维数组的首地址&数组名+1的地址与&数组名地址的差为该二维数组的size2、数组名数组名可以当作指针使用,指的是该二维数组首行的首地址数组名+1的地址与数组名地址的差为首行的的长度数组名+1的地址为第二行的首地址数组名[0]与*数组名的含义一致3、*数组名*数组名指的是二维数组首元素的地址*数组名+1的地址为第二个元素的地址4、代码示例#include<iostream>int main()

2020-10-06 20:47:48 791 1

原创 大数据与云计算复习笔记

typora-copy-images-to: 大数据与云计算复习笔记图片大数据与云计算复习笔记第一讲 概述1.计算的历史1、手工计算2、大型计算机3、个人计算机4、云计算2.云计算的基础技术1、虚拟化技术2、分布式文化系统3、海量数据存储技术4、宽带网络与智能终端3.云计算应用1、电子商务2、电子政务3、教育及培训4、影视/游戏/娱乐5、技术行业4.国外云计算代表公司amazon:Amazon Web ServicesGoogle:Microsoft:Windo.

2020-06-27 22:02:25 9685 2

转载 Unity内存泄漏

深入浅出Unity内存泄漏 概述 本文通过对内存泄漏(what)及其危害性(why)的介绍,引出在Unity环境下定位和修复内存泄漏的方法和工具(how),希望能够给想要了解这方面知识的童鞋以一点帮助。最后提出了一些避免泄漏的方法与建议。 内存泄漏及其危害 相信各位程序猿们或多或少都会听到过内存泄漏这个名词,但是对于一些新手猿来说,或许不是很了解。内...

2020-06-26 00:03:56 1659 1

转载 游戏开发中的ECS架构

0x00 何为ECS架构ECS,即 Entity-Component-System(实体-组件-系统) 的缩写,其模式遵循组合优于继承原则,游戏内的每一个基本单元都是一个实体,每个实体又由一个或多个组件构成,每个组件仅仅包含代表其特性的数据(即在组件中没有任何方法),例如:移动相关的组件MoveCo...

2020-06-25 23:52:12 1791 1

转载 c#垃圾回收机制

作者:@nele本文为作者原创,转载请注明出处:https://www.cnblogs.com/nele/p/5673215.html目录 GC的前世与今生  虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McCarthy所实现的Lisp语言就已经提供了GC的功能,这是GC的第一次出现。Lisp的程序员认为内存管理太...

2020-04-12 17:13:49 193 1

原创 通过Xlua实现unity热更新的一个小例子

通过Xlua实现unity热更新的一个小例子一.介绍​ 热更新是指在更新游戏资源或者逻辑的时候不需要开发者将游戏再打包、发布、玩家重新下载安装包,而是可以通过将需要更新的资源打包成AssetBundle文件发布到服务器,然后游戏程序通过下载服务器的AssetBundle替换本地文件来达到游戏更新的流程。​ 打包出来的unity制作的游戏,如果在代码(代码用的是c#语言)上有需要更改的地方,必...

2020-04-08 22:25:51 1219 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除