最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

13_P122~P140WeaponMechanics

2023-03-23 09:15 作者:俯瞰萬(wàn)千風(fēng)景  | 我要投稿

122?Collision Box?碰撞盒

Adding a box component to our weapon?為我們的武器添加一個(gè)盒子組件

給weapon類(lèi)添加一個(gè)boxcomponent組件

添加UBoxComponent 的class生命和頭文件

新建Weapon類(lèi)的構(gòu)造函數(shù)


在構(gòu)造函數(shù)中創(chuàng)建BoxComponet,并綁定在root組件上


打開(kāi)UE,在武器的藍(lán)圖中,修改box的形狀符合武器外觀大小

123?Tracing跟蹤

Sweeping With Box Shapes盒子形狀的掃地

給武器添加了兩個(gè)sence組件來(lái)確定碰撞檢測(cè)的起點(diǎn)和終點(diǎn),使用盒體檢測(cè) box trace by channel

碰撞之后,在碰撞點(diǎn)繪制一個(gè)圖形

使用角色Echo檢測(cè)碰撞

需要設(shè)置武器忽略對(duì)pawn的檢測(cè)

然后設(shè)置角色

124?Box Trace in C++用C++實(shí)現(xiàn)碰撞

Performing our Trace From Code

新建UBoxComponent組件


新建兩個(gè)USceneComponent組件,用來(lái)標(biāo)記起點(diǎn)和終點(diǎn)

創(chuàng)建weapon類(lèi)中的beginPlay()方法

創(chuàng)建OnBoxOverlap()方法,用于box的碰撞檢測(cè),加上UFUNCTION(),避免無(wú)法在游戲中生效

OnBoxOverlap()方法參數(shù)與OnSphereOverlap相同

實(shí)現(xiàn)功能


125?Dynamic Arrays動(dòng)態(tài)數(shù)組

解釋了動(dòng)態(tài)數(shù)組的原理


126?Disabling Box collision禁止箱子碰撞

only trigger overlap events while attacking只在攻擊時(shí)觸發(fā)重疊事件

給攻擊的蒙太奇動(dòng)畫(huà)添加打開(kāi)碰撞和關(guān)閉碰撞的通知

然后在動(dòng)畫(huà)藍(lán)圖中,添加事件

在C++中,實(shí)現(xiàn)后面的SetWeaponCollision方法

首先需要在Weapon類(lèi)中,新建一個(gè)可以返回Weaponbox的方法

然后設(shè)置WeaponBox在構(gòu)造函數(shù)中,初始化碰撞類(lèi)型為NoCollision


接著在Character類(lèi)中,創(chuàng)建方法SetWeaponCollision()

最后用這個(gè)方法在動(dòng)畫(huà)藍(lán)圖中調(diào)用,并傳入對(duì)應(yīng)的參數(shù)就可以了

127?Unreal Interfaces虛幻的接口

Using Interfaces to Handle Getting Hit使用接口處理被擊中

128?Enemies敵人

Enemy Character Class敵人角色類(lèi)別

新建Enemy類(lèi),繼承自Character然后再C++中設(shè)置了碰撞預(yù)設(shè)的一些參數(shù)


129?Root Motion Animations根運(yùn)動(dòng)動(dòng)畫(huà)

Animations that Actually Move the Character真正移動(dòng)角色的動(dòng)畫(huà)

介紹了一個(gè)插件

https://github.com/enziop/mixamo_converter

可以將mixamo中沒(méi)有root骨骼的動(dòng)畫(huà),添加上root骨骼

從mixamo上找到了對(duì)應(yīng)的動(dòng)畫(huà),下載blander,安裝插件,將動(dòng)畫(huà)批量處理后導(dǎo)入U(xiǎn)E


130?mplementing Interfaces實(shí)現(xiàn)接口

Using our hit interface使用我們的點(diǎn)擊界面


嘗試創(chuàng)建其他的debug形狀,并且將其封裝為宏


在接口類(lèi)中,聲明一個(gè)純虛函數(shù)


在Enemy類(lèi)中,繼承接口類(lèi),然后重寫(xiě)GetHit()函數(shù),實(shí)現(xiàn)在指定位置繪制一個(gè)球體的功能

然后再weapon.cpp中,在碰撞檢測(cè)方法中,向接口GetHit()方法傳入?yún)?shù)

編譯之后,就可以在游戲中,在擊中目標(biāo)的位置 繪制一個(gè)球體了


131?Hit React Montage?擊中React蒙太奇

Creating a Montage for Hit Reacts為Hit react創(chuàng)建蒙太奇

創(chuàng)建被擊中的動(dòng)畫(huà)蒙太奇

132?Playing the Hit React Montage播放Hit React蒙太奇

Making the Enemy Stumble讓敵人跌倒

在C++中,實(shí)現(xiàn)播放蒙太奇的邏輯

在Enemy.h中 聲明 蒙太奇對(duì)象和方法

在方法中實(shí)現(xiàn)簡(jiǎn)單的邏輯

在Enemy.cpp的GetHit()中關(guān)聯(lián)播放動(dòng)畫(huà)的方法

編譯之后,在游戲中就可以實(shí)現(xiàn)效果了

在動(dòng)畫(huà)中,啟用根運(yùn)動(dòng),這樣,角色在執(zhí)行位移動(dòng)畫(huà)時(shí),在游戲中就會(huì)有實(shí)際的位移

133?Dot Product點(diǎn)積

Angle Between Two Vectors兩個(gè)向量夾角


用C++實(shí)現(xiàn)求集中點(diǎn)和目標(biāo)朝向夾角的代碼

這里用UKismetSystemLibrary,將目標(biāo)朝向和被擊中的方向繪制了出來(lái)

134?Cross Product叉積

Another Advanced Vector Operation另一種高級(jí)矢量運(yùn)算

自己添加的前后左右倒的邏輯

135?Directional Hit Reactions定向命中反應(yīng)

Choosing the Montage Section Based on theta根據(jù)theta選擇蒙太奇部分

與上面的代碼相同

136?One Hit Per Swing每揮桿一擊

Ignoring Actors we already hit忽略我們已經(jīng)擊中的actor

在Weapon類(lèi)中,添加一個(gè)AActor的數(shù)組,用來(lái)存放需要忽略重疊的actor

然后我們?cè)趙eapon的重疊事件邏輯中,在檢測(cè)完成之后,將actor添加進(jìn)入這個(gè)數(shù)組

然后在邏輯開(kāi)始前,將這個(gè)數(shù)組里面的actor添加進(jìn)入ActorsToIgnore中

然后我們回到Character類(lèi)中,在動(dòng)畫(huà)通知碰撞檢測(cè)關(guān)閉后,將這個(gè)數(shù)組清空,避免下次使用時(shí)失效

137?Hit SoundsPlaying a Sound?撞擊的聲音

when the enemy is hit

添加一個(gè)metesoundsources


在Enemy類(lèi)中,聲明一個(gè)USoundBase的變量,并使其可以在藍(lán)圖和實(shí)例中編輯

包含頭文件

#include "Kismet/GameplayStatics.h"

在GetHit方法中添加如下

編譯之后在藍(lán)圖中,添加matesoundssources

就可以在游戲中,擊中目標(biāo)之后發(fā)出聲音了


設(shè)置聲音衰減 新建一個(gè)聲音衰減設(shè)置

回到MeteSoundsSources中

138?Hit Particles打擊粒子

Spawning Blood when the enemy is hit敵人被擊中時(shí)產(chǎn)生血

Visual Effects

Cascade

Niagara


在Enemy類(lèi)中,聲明一個(gè)UParticleSystem變量,并且將其開(kāi)放給藍(lán)圖和實(shí)例

在Enemy的GetHit方法中,使用UParticleSystem

編譯之后,在UE中,添加粒子

執(zhí)行游戲可以檢查效果

139?Weapon Trails武器追蹤

Trail Visual Effects軌跡視覺(jué)效果

給武器添加粒子效果

打開(kāi)AM_AttackMontage

新建一個(gè)通知軌道

添加一個(gè)尾部效果

點(diǎn)擊trail,在右側(cè)設(shè)置面板上,設(shè)置特效

然后來(lái)到角色的骨骼,在角色手部的位置添加兩個(gè)插槽

將這兩個(gè)插槽的名字設(shè)置進(jìn)入特效中

保存后,進(jìn)入游戲,揮動(dòng)武器就會(huì)有拖尾效果了


140小結(jié)

13_P122~P140WeaponMechanics的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
茂名市| 泾阳县| 文登市| 东莞市| 托克托县| 定州市| 阿拉尔市| 平塘县| 襄城县| 孙吴县| 巴马| 宜章县| 临安市| 昌黎县| 时尚| 蒙山县| 富裕县| 安西县| 黄浦区| 道真| 孟州市| 教育| 竹山县| 全州县| 平乡县| 徐闻县| 汉源县| 临江市| 邛崃市| 凉城县| 濮阳县| 靖安县| 麟游县| 原平市| 无棣县| 贵州省| 锡林郭勒盟| 遂平县| 华容县| 双流县| 六安市|