- 博客(110)
- 资源 (1)
- 收藏
- 关注
原创 基于Tensorflow2.0的ResNet残差网络
残差网络具有退化保优的能力(卷积多分类任务)它的结构是这样的:它的代码实现是这样的:import tensorflow as tfimport osos.environ['CUDA_VISIBLE_DEVICES'] = '0'#载入数据(x_train,y_train),(x_test,y_test) = tf.keras.datasets.cifar100.load_data()print(x_train.shape,y_train.shape,x_test.shape,y_test
2021-08-23 15:41:47
333
原创 基于Tensorflow2的WGAN神经网络
GAN网络对于没有交集的数据集在训练上表现会不好,所以WGAN解决这个问题,加入了梯度惩罚from GANFolder.GAN import Generator,Discriminatorimport tensorflow as tfimport numpy as npimport osfrom PIL import Imageos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'os.environ['CUDA_VISIBLE_DEVICES'] = '0'
2021-08-23 15:26:31
389
原创 基于Tensorflow2的GAN生成对抗网络(二)
本例在前文构建了GAN网络之上的主程序from GANFolder.GAN import Generator,Discriminatorimport tensorflow as tfimport numpy as npimport osfrom PIL import Imageos.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'os.environ['CUDA_VISIBLE_DEVICES'] = '0'def ParseData(batchData):
2021-08-23 15:24:24
274
原创 基于Tensorflow2的GAN生成对抗网络(一)
GAN的网络需要一个判别器(Discriminator)和一个生成器(Generator),判别器需要不停判别生成器产生的图片是否为真实图片,直到最后判别不出来生成器生成的图片到底是真是假,则达到纳什均衡点。本例中,生成器的任务是将100个大小的一维随机数组,通过Conv2DTranspose变成【batchSize,64,64,3】大小的图片。这些生成的图片最大课程生成的和真的一样,不让判别器识别出来。判别器的任务是接受到生成器的假图片,并判断它是假的,接受到真的图片,判断它是真的。import t
2021-08-23 15:21:41
355
原创 基于Tensorflow2.0的Variational AutoEncoder网络
VAE的网络首先,全部都是全连接层,其次拥有均值层和方差层(通常认为它是加上了log的)最后满足 Z = MEAN + EPS * LOG_VAR,使得Z的值连续可导。这个EPS需要认为构造一个正太分布(0,1).import tensorflow as tffrom PIL import Imageimport numpy as np(x_train,y_train),(x_test,y_test) = tf.keras.datasets.mnist.load_data()print(x
2021-08-23 15:11:02
166
原创 Tensorflow2中保存权重、模型的方法
在Tensorflow2中保存权重和模型的方法有三种第一种为仅保存weights与bias的方式 #1.保存权重和偏移量参数值 save_weights / load_weights path = "./checkpoints/mycheck" #保存weights & bias model.save_weights(path) #重新读取训练好的权重,在模型中使用的时候,需要重新构建模型 model.load_weights("weights.ckp
2021-08-23 11:48:02
2283
原创 Tensorflow2里使用Tensorboard——以MINIST手写数据集为例
此篇为纯代码import tensorflow as tfimport datetimebatchSize = 128EPOCH = 30#载入fashion_mnist数据集(x_train,y_train),(x_test,y_test) = tf.keras.datasets.fashion_mnist.load_data()# print(x_train.shape,y_train.shape)def preprocessing(x,y): x = tf.cast(
2021-08-23 11:35:47
233
原创 在tensorflow 2 中制作和使用 tfrecord数据集
import tensorflow as tfimport numpy as npfrom PIL import Imageimport os,globos.environ['CUDA_VISIBLE_DEVICES'] = '0' # 导入需要用到的包之后,启用一下GPU# 第一步,构造需要用到的函数#制作Featuer的数据,类型包括了Float,Int64和Bytesdef Float_Feature(value): return tf.train.Feature(floa
2021-08-23 11:25:58
444
原创 Unreal Engine 4 —— GAS系统学习 (四十八)攻击、伤害与防御数据运算(完)
本节是GAS系统讲解的最后一节。内容是人物Melee招式的攻击、伤害与防御数据的运算。本节是需要第四十八节的连招伤害数据做支撑。首先建立一个C++的GamplayEffectExecutionCalculation类。命名为DamageExecutionCaculation。在进行代码写作之前,现在UAttributeSetBase中增加以下代码,并在CPP文件中自行初始化。 UPROPERTY(EditAnywhere, BlueprintReadWrite, Catego.
2020-10-04 12:17:49
1028
原创 Unreal Engine 4 —— GAS系统学习 (四十七)FireBall技能
这次是来新建一个新的技能,叫做FIreBall。新建一个新的GA蓝图,直接使用Lazer招式的Cost和CoolDown。新建一个ACTOR类,用于招式发射出的弹丸。打开GA,因为我们使用的Lazer的招式为基础进行了修改,这里为了避免去做动画融合,使用了Lazer招式的蒙太奇动画。由于ApplyGamePlayEffectToTarget方法并未暴露给Actor类的蓝图。所以我们需要手动写C++,来将一个GameplayEffect作用在TargetDataHandl...
2020-10-03 18:13:33
341
原创 Unreal Engine 4 —— GAS系统学习 (四十六)Melee连招技能(2)
本节完善Melee连招技能的伤害。新建一个csv文件,内容如下:保存关闭电子表格,将该文件拖入到Melee招式的文件夹中。导入选项如下选择即可。打开GE_Melee_Damage,选择刚创建的Curve Table文件,选择MeleDamage,拖动右边的Preview At可以观察值,该值结果是与之前的浮点相乘。打开GA_Melee 文件新增以下模块与连接,通过连招的标号来触发在Curve Table里相对应的伤害值。效果如下:...
2020-10-03 09:46:35
541
原创 Unreal Engine 4 —— GAS系统学习 (四十四)FireBlast技能(4)
本章节为FireBlast招式添加效果伤害(视觉+数据),将这些伤害体现在敌人身上。先建立一个GameplayEffect,命名为GE_Burning,设置如下。在建立一个 GameplayCueNotifyActor。用于创建粒子系统。然后将之前创建好的GE_Burning放在Damge的GE中。此时就已经可以触发效果。现在我们设置一个区域,让敌人进入该区域能够取消身上的BUFF。新建一个ACTOR类。然后再在蓝图中如下设置:全部效果..
2020-10-02 09:18:51
215
原创 Unreal Engine 4 —— GAS系统学习 (四十五)Melee连招技能(1)
本节主要解决了各项技能球值的恢复以及普招的连招。首先新建一个GE文件,如下设置:再进入主角蓝图,新增该GE:此时人物各个技能球就可以不断增加值了。接下来解决连招问题。将MELEE复制两遍,选择你喜欢的招式动画。并创建一个Notify事件。打开主角蓝图,新建一个函数。再进入MELE招式蓝图。打开动画蓝图,为EndComb增加如下设置连招已成,效果如下:...
2020-10-02 09:17:39
719
原创 Unreal Engine 4 —— GAS系统学习 (四十三)FireBlast技能(3)
本节完善FireBlast技能,主要是粒子系统以及Pull和Push事件。首先来解决粒子系统,选择你喜欢的两个粒子系统即可。调整好时间轴,在蒙太奇中增加 Play Particle Effect.在预览中可以看到效果。打开技能,增加CoolDown处理Push标签的事件。增加反向推力。最后构建伤害,新增GE蓝图,如下设置。效果如下:...
2020-10-01 20:26:18
170
原创 Unreal Engine 4 —— GAS系统学习 (四十二)FireBlast技能(2)
这个新的群体技能FireBlast是从玩家角色的位置发起的,接着上一节继续。本节需要解决的是目标确认(实时确认,不再是手动确认)。所以我们仍然需要用到Wait Target Data模块。既然要用到它,那么我们就新建一个C++文件。头文件内容如下:// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#in.
2020-10-01 17:46:35
295
原创 Unreal Engine 4 —— GAS系统学习 (四十一)FireBlast技能(1)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节开始增加一个新的技能,先导入贴图。与之前一样制作好Material Instance。初始化UI与招式。打开招式,添加COST与COOLDOWN。添加一个动画蒙太奇,并设置两个事件通知。动画蓝图融合事件通知打开FireBlast招式。效果如下:...
2020-09-30 08:37:08
199
原创 Unreal Engine 4 —— GAS系统学习 (三十九)群体技能GroundBlast(7)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节继续完善GroundBlast招式。导入招式地上确认范围目标的图片并新建一个Material。并如下设置。打开GATargetActor的C++文件。在头文件中加入以下组件: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "GroundBlast") class UDecalComponent.
2020-09-29 09:04:34
195
原创 Unreal Engine 4 —— GAS系统学习 (四十)群体技能GroundBlast(8)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节要为GroundBlast招式发招地点增加一个粒子系统。将ConfirmTargetingAndContinue方法中的代码进行修改,如下: FGameplayAbilityTargetData_LocationInfo* centerlocation = new FGameplayAbilityTargetData_LocationInfo(); centerlocation-
2020-09-29 09:02:51
292
原创 Unreal Engine 4 —— GAS系统学习 (三十八)群体技能GroundBlast(6)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这一节主要是解决GroundBlast招式的动画蓝图等逻辑问题。首先新建一个动画蒙太奇。找到一个你喜欢的招式动画。这些相关的新建slot或者为动画分段之前有讲过,这里不再赘述。转向主角的蓝图。新设置一个按键,并设定技能取消功能。进入GroundBlast的招式,增加播放蒙太奇动画。并设置伤害属性与技能损耗。效果如下:...
2020-09-28 10:31:36
200
原创 Unreal Engine 4 —— GAS系统学习 (三十七)群体技能GroundBlast(5)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们技能UI等方面基本设置完成。还记得这个技能是怎么设置的吗?需要用户确认才可以运行。那我们今天就来确认一下。进入项目设置,把鼠标右键设置为新的Action。然后如下连接,打印出在技能打击范围内的敌人名称。进入主角蓝图。新增如下:查看效果:...
2020-09-27 12:39:08
202
原创 Unreal Engine 4 —— GAS系统学习 (三十六)群体技能GroundBlast(4)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节主要是解决技能图标,显示DEBUG等问题。首先在GATargetActor的C++文件中启用Tick。AGATargetActor::AGATargetActor() { PrimaryActorTick.bCanEverTick = true;}并且更改Radius属性的宏定义: UPROPERTY(EditAnywhere, BlueprintReadWrit
2020-09-24 17:44:45
209
原创 Unreal Engine 4 —— GAS系统学习 (三十五)群体技能GroundBlast(3)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这一节我们将技能范围内检测到的敌人数据进行打包发送出去。这里的发送是需要用到代理的:FGameplayAbilityTargetDataHandle类。需要用到的父类属性有两个,一个是StartLocation,即技能起始位置。还有一个是TargetDataReadyDelegate,它是FAbilityTargetData的对象,包含有Broadcast方法,这是我们需要用到的。在
2020-09-21 13:59:54
255
原创 Unreal Engine 4 —— GAS系统学习 (三十四)群体技能GroundBlast(2)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们完成射线,但还是不够,既然是群体技能,一定有一个打击范围,我们今天来完成打击范围内的敌人统计工作。打开GATargetData的C++文件。在头文件中新建一个方法和一个变量备用。 UFUNCTION(BlueprintCallable, Category = "TargetDataSelected") bool GetLookAtLocation(FVector&am
2020-09-20 13:09:01
312
原创 Unreal Engine 4 —— GAS系统学习 (三十三)群体技能GroundBlast(1)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617之前完成的技能都是单体技能,今天开始我们进入群体技能的学习。新建一个群体技能,起名为GA_GroundBlast。群体技能,肯定需要搜集一些被该技能击中的信息,比如被击中的是谁,被击中了哪个位置等等,这些信息搜集好了之后会被打包统一管理,这里我们需要用到一个类,它是专门帮我们完成这些信息管理功能的,GameplayAbilityTargetActor类。在C++文件中新建一个该.
2020-09-19 10:26:15
530
原创 Unreal Engine 4 —— GAS系统学习 (三十二)对受到Lazer技能打击的敌人添加冲击力并修正技能中断
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617首先为技能添加冲击力。这里的逻辑相对简单,就是敌人指向TouchSpot距离的单位向量的5000倍。删除之前的技能Timer然后为第一段蒙太奇动画播放后添加EndAbility。最后在OnEndAbility事件后添加模块。修正部分也就完成了,现在只要技能被打断,就会执行OnEndAbility事件。效果如下:...
2020-09-19 10:10:17
268
原创 Unreal Engine 4 —— GAS系统学习 (三十一) 为Lazer招式添加伤害与技能计时
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节需要完成的内容有两个,1.是需要为Lazer招式增加伤害,2.是招式释放3秒之后,停止释放招式。先解决第一个问题。我们新建一个GE,命名为GE_Lazer_damage。按如下设置:打开LazerActor。将TouchSpot触碰到的信息进行打包通过SendGameplayToActor模块进行发送,这里需要一个TAG,自己定义就好,我这里是这样写的。...
2020-09-18 13:48:34
238
原创 Unreal Engine 4 —— GAS系统学习 (三十) 为Lazer招式创建LazerActor
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617在之前我们已经解决好了动画蓝图以及Lazer招式(GA和GE)的基础设置 。本节将完善Lazer招式,在释放技能的时候,生成一个LazerActor。打开人物动画蓝图,载入预览Lazer蒙太奇动画找到右手武器骨骼,添加一个Socket,命名为Lazer。添加资源预览,选择我们Lazer。调整好适当的位置即可。接下来打开GA_Lazer 。按照如下添加模块。再打开L
2020-09-16 12:12:13
184
原创 Unreal Engine 4 —— GAS系统学习 (二十九) 为Lazer招式修改动画蓝图
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节是解决上一节加入了新的Lazer技能之后,动画动作融合的问题。动画蓝图中加入新的Slot和cache。将新的动作送入Layered Blend per Bone进行融合。这里为了方便,还是从root节点开始融合。最后使用上一节用到的bool变量判断姿势融合状态。效果如下:...
2020-09-13 13:49:21
207
原创 Unreal Engine 4 —— GAS系统学习 (二十八) 创建Lazer招式与GameplayEffect
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617为Lazer招式新建一个GA招式,继承自BP_GameplayAbility,这个类是前文中咱们自定义的GameplayAbility的子类。然后再新建两个GE,一个用作cost,一个用作coolDown,别忘了新建一个蒙太奇动画用作Lazer招式。新建好了之后,我们首先打开cost。按照如下设置。定义好TAG,自己随意就行,注意从属结构。再打开cooldow..
2020-09-12 09:14:56
398
原创 Unreal Engine 4 —— GAS系统学习 (二十七) 为Lazer创建蓝图
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节是为Lazer创建蓝图,但不是简单的创建蓝图那么简单。首先从骨骼创建一个Anim Composite。创建的文件一会要用到,再从SekeletalMesh文件创建一个动画蓝图,运用刚才创建好的文件按如下连接,我们打算改变骨骼中最末端的骨骼(骨骼名字:end)的世界位置。创建Actor类,按如下添加组件。我们想得到红色方框内的长度(距离)作为这个Mesh的...
2020-09-11 09:28:37
264
原创 Unreal Engine 4 —— GAS系统学习 (二十六) 制作Lazer技能的材质(后续)
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617上一节中我们只是完成了技能材质的一部分,今天完成剩下的部分。我们今天要完成的是下图中红框的部分。也就是通过重写下图中的三个材质完成。先来看03号材质。接下来看02号材质,我们打算将01号材质也设置为02号材质的副本。也就是说我们不需要单独去做01号材质。记得今天所有的材质都要选上这个选项。再来看02号材质。将02号材质内容全部拷贝,进...
2020-09-10 08:54:09
275
原创 Unreal Engine 4 —— GAS系统学习 (二十五) 制作Lazer技能的材质
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617新的材质和技能加群获取。先将新的技能及相关资源导入到UE中。这就是我们想要达到的激光效果。我们打开beam_mtl材质球,进行修改。按照以下方式进行连线。记得Detail面板中也要进行设置。在Detail面板中,搜索找到Tessellation(镶嵌马赛克),选择Flat Tessellation(简易的)即可。...
2020-09-09 09:40:55
220
原创 Unreal Engine 4 —— GAS系统学习 (二十四) 完善技能冷却的效果显示
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617在上一节中,我们完成了关于技能信息的打包,以及布置技能的Mat Instance到技能栏。今天我们要解决主角触发技能时候,技能图标的冷却效果,以及冷却时间的显示与隐藏效果。打开我们技能槽的技能UI。创建一个自定义事件,起名UICoolDown,并新建一个float类型变量来接受info的冷却时间,当冷却触发的时候,将技能图标上的冷却时间显示出来。接下来,使用Event..
2020-09-08 09:40:18
807
原创 Unreal Engine 4 —— GAS系统学习 (二十三) 将技能装备到技能栏
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617将技能装备到技能栏听上去比较简单,但是沿续之前的思路,技能显示的Material Instance是封装到了FGameplayAbilityInfo类中的。所以本节还是稍微有点复杂。为了一次性能够初始化多个技能,我们新建一个方法。以下是在CPP中的实现。void AShinbi::AquireAbilities(TArray<TSubclassOf<UGamepl.
2020-09-07 11:29:31
423
原创 Unreal Engine 4 —— GAS系统学习 (二十二) 用C++代码将GA下所需的GE数据进行收集与打包
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617当角色的招式过多的时候,会带来一些困扰。一个GA招式,需要至少3个GE的效果。如果这个角色有六个招式,那么它至少需要18个GE的效果。当你对某个GE效果不满意的时候,想去调整,会非常麻烦,也容易混淆。本节通过C++代码建立一个GameplayAbility类,将它下挂的所有我们想获得的GE的数据进行搜集,然后放到一个结构体中,这样再让其他的GA继承自这个自定义的GameplayAbilit.
2020-09-06 17:34:35
1283
原创 Unreal Engine 4 —— GAS系统学习 (二十一) 为主角添加技能图标
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节为主角的治疗技能添加上图标到插槽中。先准备好技能图标,新建一个Material,按住T加鼠标左键,载入Texture Sample。按照下图进行连接,设置。建立一个UserWidget将新建的UI加入到MAIN_UI中。并在主UI中的Graph,增加以下模块。运行结果如下:...
2020-09-05 11:55:05
252
原创 Unreal Engine 4 —— GAS系统学习 (二十) 为主角添加冲刺技能眩晕
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617这里的释放技能后的眩晕其实要打个引号,只是主角暂时不可控制,并不是真正的眩晕技能或者播放一段眩晕的动画。打开主角C++文件,在头文件上加入以下代码:public: UFUNCTION(BlueprintCallable, Category = "Shinbi | Stun") void hitStun(float Duration);protected: UFUNCTIO.
2020-09-04 11:57:21
443
原创 Unreal Engine 4 —— GAS系统学习 (十九) 让敌人承受主角冲刺技能产生的冲击力(只对一个敌人产生一次冲击效果)
在之前的基础之上,本节将进行一些调整。让敌人承受主角冲刺技能产生的冲击力,并只对一个敌人产生一次冲击效果。打开主角蓝图,新建一个敌人类型的数组,当主角没有碰撞过的的敌人,增加到数组中。但是这里有个问题,如果不达到某一条件,删除数组中的内容,那就变成了一个敌人只能被冲击技能打一次。所以我们需要在主角冲击技能播放完成之后,让数组清零。在DASH的蒙太奇动画中添加一个通知事件。打开DASH技能的蒙太奇动画,并添加一个通知事件。打开动画蓝图。清除主角中的敌人的数组内容,...
2020-09-03 10:32:27
341
原创 Unreal Engine 4 —— GAS系统学习 (十八) 让敌人承受主角冲刺技能产生的冲击力
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节让敌人承受主角冲刺技能的冲击力。进入主角蓝图,新建一个自定义事件,命名为Push,将主角的运动组件的摩擦力变更为0,然后获得碰撞体overlap事件中敌人的位置,以及自己的位置,通过向量相减,再单位化,作为力施加到敌人运动组件的Add Impulse方法中。然后还原主角运动组件的摩擦力。再回到冲刺技能中,执行Push事件。加入Draw Debug Arro...
2020-09-02 10:49:26
333
原创 Unreal Engine 4 —— GAS系统学习 (十七) 让敌人承受主角冲刺技能的伤害
欢迎大家加入Unreal Engine C++ & Blueprint群一起交流:1143575617本节会让敌人承受主角冲刺技能的伤害。新建一个GE,命名如下。打开该蓝图,如下设置,你可以根据自己的需求设置数值:打开主角蓝图,如下设置,按照不同情况,不同碰撞体触发不同的碰撞事件:这里要注意,技能发起者是主角,目标是敌人,标签是刚才建立GE伤害的标签,自定义即可。回到冲刺技能的蓝图。让收到冲击技能的敌人承受伤害。本节无图例。...
2020-09-01 12:43:36
358
Unreal Engine 4 —— GAS系统学习 (十一) 为主角增加技能框(添加血量球)文章的相关资源.zip
2020-08-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人