changed 2 years ago
Linked with GitHub

信長技能BP圖文教學

新增技能

  1. 在Content Browser底下的 Content > MOBA > Hero > 英雄代號 > Skill資料夾下滑鼠右鍵新增一個Blueprint Class

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  2. 此Blueprint Class繼承HeroSkill class

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  3. 技能檔案命名規則為 : 武將代號(E/R/T/W)_Skill

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  4. 打開剛剛新增的BP技能進入BP編輯頁面, 找到工具列的Class Defauls底下的MOBA, 編輯Name(技能名字)、Texture(技能圖示)

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  5. 打開英雄的BP(武將代號_hero), 找到MOBA底下的Skill Classes右邊的+新增一個array element, 設定新技能如此便能在角色面板上看見此技能新增出來

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  • 最多能有個6技能,含天生技
  1. 回到BP技能編輯頁面, 工具列Class Details > MOBA底下的Level CD,此技能每個等級的CD時間, 技能等級最大有多少就新增幾個array element
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • 等級越高,CD時間應越短
  1. Level Mana Cost為此技能每個等級的耗魔, 同上新增array element
  2. MOBA底下的Variable Map為此技能的"依技能等級有所不同"的變數, 點右邊+新增一個Map,此Map名稱自定義.
  • 攻擊技能應有Damage : Map取名為Damage, 點Values右側的+為此Map新增每個等級的傷害量
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →
  • Buff技能同樣, 例如Buff了爆擊率 : 命名為Critical並新增每個等級的爆擊率
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

開始設計一個技能前

技能行為

點擊BP技能進入BP編輯器, 工具列的Class Defauls > MOBA底下的Skill Behavior

  1. Passive(被動技能) : 技能習得後立即對自己上Buff
  2. No Target(不需目標技能) : 點擊後以施法者為中心立即放技能
  3. Unit Target(單一目標技能) : 點擊後滑鼠左鍵選取一個目標並移動到此目標後放技能(需要設定MOBA > Cast Range)
  4. AOE(範圍技能) : 點擊後滑鼠左鍵選一個地點後放技能
  5. Directional(指向技能) : 點擊後滑鼠左鍵選一個方向放技能
  6. Toggle(開關技) :
  7. Immediate(瞬發技) :
  • 技能(3.)(4.)(5.)可用滑鼠右鍵取消技能施放

技能流程

1.技能設定階段

  • 在BP事件發生前, 設定這個技能的Class Defaults下的MOBA屬性。Name(技能名)Skill Behavior(技能行為)Texture(技能圖示)HintActor(技能游標)Level CD(技能CD)Level Mana Cast(技能耗魔) 等等

2.找尋技能目標階段

  • AOE需要在BP判斷技能命中對象

3.攻擊或上Buff階段

  • 傷害和Buff效果是依技能等級而有所不同,此時需要使用Class Defaults下MOBA屬性的Variable Map自定義技能的傷害(Damage Map)或效果(Something Map)
  • Buff為繼承HeroBuff的BP Class ,此BP Class有自己的特效

4.生成技能特效階段

  • 技能最後要生成特效

指向技的2、3、4階段由繼承 SkillDirectionActor或 SkillSplineActor的BP class : Bullet完成

Passive(被動技能)

藍圖設計思維:

技能習得後自動施放技能, 給予自身效果期間長且有唯一性的BUFF

  • 不需設Duration(效果期間), 在Buff BP內設定 Duration 、 ParticleDuration 、 RealDuration
    • Duration持續時間
    • ParticleDuration特效的存活時間 RealDuration
    • Actor真正的存活時間,設定的比Duration長來讓特效不要消失的太突然
  • 使用AddUniqueBuf讓Buff有唯一性, 相同名稱的BUFF新的會蓋過舊的無法疊加
  • 對象是自己
  • 只有技能設定階段上Buff階段找尋技能目標階段->目標是自己 ; 生成技能特效階段->僅有Buff特效在上Buff時已有

技能設定階段:

  • Class Defaults>MOBA需設定Name(技能名)Skill Behavior(技能行為)Texture(技能圖示)Level CD(技能CD)Level Mana Cast(技能耗魔)
  • Level CD(技能CD)Level Mana Cast(技能耗魔) 的值是右邊+號新增出來的, 代表每個技能等級各自的CD和耗魔

上Buff階段:

1.新增事件 :

  • 在技能藍圖的主圖(EventGraph)上右鍵新增Event BP Spell Passive, 技能習得後立即呼叫此Event

2.生成BUFF :

  • 右鍵新增Spawn Actor from Class節點, Class選擇繼承HeroBuff的BP類別(此時節點名稱會變成:SpawnActor XXXX)

3.生成位置 :

  • 右鍵新增Caster節點(一個HeroSkill下的HeroCharacter類別變數), 右拉Caster上的藍點放開找到GetActorTransform此為Caster底下的函式 ,拉給Spawn Actor from Class節點的Spawn Transform


  • 如此一來就生成一個BP類別的實體Actor了

4.Buff Unique Map :

  • Spawn Actor from Class節點的Return Value右拉找到Buff Unique Map此為HeroBuff底下的一個Map變數

5.加入新的element到Buff Unique Map裡 :

  • Buff Unique Map節點右拉輸入Add為此Map加入Buff增強角色的效果, 此例是增加物理爆擊率
  • 新增的element還需要加入一個浮點小數代表Buff的量

6.新增VariableMap的子Map :

7. Buff Unique Map新增的Buff效果數值 :

  • Buff Unique MapAdd節點下面的數值由Critical Map提供

8. 加入Buff到英雄上 :

  • 右鍵新增Caster節點, 右拉Caster節點找到Caster底下的Add Unique Buff函數
  • Add Unique Buff節點的Buff為Spawn Actor from Class節點的Return Value
  • 注意白線(執行線)的順序, 一定要先設Buff Unique Map才能Add Unique Buff

整個主圖 :


No Target(不需目標技能)

藍圖設計思維:

以施法者為中心立即放技能, 以半徑找到所有影響目標或者只對自己有影響

  • 可以是Buff技、攻擊技AOE或英雄面對方向的指向技
  • 計算傷害或者給予Buff給自己
  • 攻擊技也可以加上異常狀態Buff給敵人

技能設定階段:

  • Class Defaults>MOBA需設定Name(技能名)Skill Behavior(技能行為)Texture(技能圖示)Level CD(技能CD)Level Mana Cast(技能耗魔)

找尋技能目標階段:

  • 目標有可能是以自身為中心的AOE,或是指向技時英雄面對方向上的目標
  • 指向技由Bullet處理目標,所以這邊只處理AOE的場合
  • 如果是上Buff給自己也沒有此階段
  • 如果有同時有找尋技能目標階段生成技能特效階段,會使用seqence節點來區分執行順序

1. 新增事件 :

  • 在技能藍圖的主圖(EventGraph)上右鍵新增Event BP Spell Now, 點擊技能會立即呼叫此Event

2. 事件順序 :

  • 右鍵新增Seqence節點,藍圖會依順序跑, then0拉給找尋技能目標階段和給予傷害或上Buff階段 , then1拉給生成技能特效

3.找尋自身為半徑的所有目標 :

  • 右鍵新增Caster 節點,並左鍵拉此節點的線放開可搜尋到Caster(HeroCharacter)底下的Function : Find Radius Actor by Location新增之

  • Caster拉出GetActorLocation節點給Find Radius Actor by Location當Center參數, 手動輸入半徑, 並勾選Check Alive檢查目標是否是活的

給予傷害/上Buff階段:

  • Find Radius Actor by Location節點輸出是一個HeroCharacter的Array, 使用ForEachLoop找到每個目標(HeroCharacter)給予傷害或Buff
  • 或只對自己上Buff
  • 傷害和Buff依技能等級有所不同, 使用Variable Map來儲存不同等級的傷害/效果

0. 使用ForEachLoop找Array中的每個HeroCharacter:

  • 右鍵新增ForEachLoop節點, 此節點的左方輸入Array為Find Radius Actor by Location的Return Value
  • ForEachLoop節點的輸出就是一個目標HeroCharacter

對目標攻擊時:

需先設定Variable Map中的Damage Map

呼叫攻擊計算函式

  1. 右鍵新增Get Player Controller 節點, 拉此節點轉換成MOBAPlayerController

  2. Find Radius Actor by Location右方的執行線(白線)拉給Cast to MOBAPlayerController
  3. 新增計算傷害函式 :
  • Cast to MOBAPlayerController節點的As MOBAPlayer Controller右拉可找到MOBAPlayer Controller底下的Function : Server Attack Compute
  1. Server Attack Compute的Attacker為Caster(可右鍵再新增一次節點),Victim為目標HeroCharacter(ForEachLoop節點的Array Element)
  • 傷害類型有物傷、法傷和純傷
  1. 取得Variable Map中Damage Map :
  1. AOE的攻擊階段Overview:

對目標Buff時:

需先設定Variable Map中的 Map

生成Buff

和Passive的永久Buff不同, 需要設定Duration(效果期間)

  1. 主圖右鍵新增Spawn Actor from Class
  • Class選擇一個Buff, 繼承HeroBuff的BP類別
  • Spawn Transform 為目標HeroCharacter(ForEachLoop的Array Element或者Caster), 右拉出的GetActorTransform


  1. 設定Buff變數Duration :
  • Spawn Actor from Class節點的Return Value為一個HeroBuff的實體Actor, 右拉出Set Duration節點設定HeroBuff底下的一個變數Duration的值
  1. 呼叫VariableMap的子Map給Set Duration節點 :

加Buff到英雄上 :

  1. 目標HeroCharacter(ForEachLoop的Array Element或者Caster), 右拉出的函式Add Buff, 不可重複的Buff則是Add Unique Buff


  • Spawn Actor from Class節點的Buff丟給Add Buff

攻擊+異常狀態

  • 實作上其實就是
  1. 生成Buff給目標Character
  2. 給予目標傷害
  • 目標Character必定是敵人

需先設定Variable Map中的 Map

生成Buff

  • 參照前面的生成Buff
  • Spawn Transform的目標HeroCharacter一定是敵人:ForEachLoop的Array Element
  • Map為上面設定的StunDuration Map, 此異常的持續時間

加Buff到英雄上

  • 參照前面的加Buff到英雄上
  • Add Buff的目標HeroCharacter一定是敵人:ForEachLoop的Array Element

呼叫攻擊計算函式

生成技能特效階段:

  • 如果對自己放Buff且已在HeroBuff設定其特效, 此階段可不用
  1. 右鍵新增Spawn Actor from Class節點,Seqence的then1拉給此節點
  2. Class選取要新增的特效類別, Spawn Transform為Caster節點拉出的GetActorTransform

整個主圖:

  • 攻擊周遭敵軍技能
  • 放Buff給自己
  • 放Buff給自己(加上技能特效和Buff唯一) :
  • 施放技能給周遭友軍


  • 攻擊周遭敵軍並暈他們




往英雄面對方向的指向技

  • 指向技的找尋目標、給予傷害和生成特效三個階段都是在Bullet(繼承SkillDirectionActor或SkillSplineActor)完成的
  • 我們只需要生成Bullet並設定它的傷害和方向即可

1. 新增指向技 :

  • 新增Spawn Actor from Class節點, Class選擇Bullet(子彈)繼承SkillDirectionActor, Spawn Transform為CasterGetActorTransform

2. 設定方向 :

  • Spawn Actor from Class節點的 , Attacker是Caster
  • Dir是Event BP Spell Now的VFace To ,也許會需要Normalize和去掉Z值(不往上下偏移)
  • VFace To右拉Normalize
  • Normalize節點的Return Value上按右鍵選Split Struct Pin分為Return Value X Y Z

  • Normalize節點的任一Return Value右拉找到Make Vector,Make Vector節點的X Y分別是 Normalize節點Return ValueX Y, Z則設為0(防止上下飄移)

3. 設定傷害 :

4. 整個主圖 :


Unit Targer(單一目標技能)

藍圖設計思維:

點擊目標後給予攻擊或者Buff

  • 可以給同時給目標攻擊和異常Buff
  • 因為技能事件Event BP Spell to Actor是在選定目標後才呼叫, 角色需先移動到目標才會呼叫此事件

技能設定階段:

  • Class Defaults>MOBA需設定Name(技能名)Skill Behavior(技能行為)Face Skill(是否面對技能)Cast Range(施法距離)Texture(技能圖示)Level CD(技能CD)Level Mana Cast(技能耗魔)
  • 不設定Cast Range(施法距離) 技能可能無法發動

找尋技能目標階段:

1. 新增事件 :

  • 在主圖(EventGraph)視窗, 右鍵新增Event BP Spwll to Actor
  • Event BP Spwll to Actor的Victim即為目標HeroCharacter

2. 新增事件順序 :

  • 新增Seqence節點, Then0拉給傷害計算/上Buff, Then1拉給技能特效, BP會依照Then0 Then1 的順序執行

給予傷害或上Buff階段:

傷害:

0.設定Damage Map

1. 計算傷害:

  • 新增Get Player Controller節點, 右拉此節點Cast To MOBAPlayerController, As MOMAPlayerController右拉出Server Attack Compute
  • Attacker為Caster
  • Victim為Event BP Spell to Actor
  • Dtype為傷害類型:物傷、法傷和純傷
  • Damage由Damage Map取得(依技能等級有所不同)

2. 設定傷害:

Buff:

0.設定Duration Map

1.生成Buff

  1. 主圖右鍵新增Spawn Actor from Class
  • Class選擇一個Buff, 繼承HeroBuff的BP類別
  • Spawn Transform 為目標HeroCharacter(Event BP Spwll to Actor的Victim), 右拉出的GetActorTransform
  1. 設定Buff變數Duration :
  • Spawn Actor from Class節點的Return Value為一個HeroBuff的實體Actor, 右拉出Set Duration節點設定HeroBuff底下的一個變數Duration的值

2.加Buff到英雄上 :

  • 目標HeroCharacter(Event BP Spell to Actor的Victim)右拉出的函式Add Buff, 不可重複的Buff則是Add Unique Buff
  • Spawn Actor from Class節點的Buff丟給Add Buff

攻擊+異常Buff:

  • 參照上方給予敵方負面異常Buff+給予傷害合併即可

需先設定Variable Map中的 Map

1.生成Buff

2.加Buff到英雄上

3.計算傷害

4.設定傷害

生成技能特效階段:

  • 上Buff也許不需要此階段, 因為在HeroBuff BP裡設定了其特效
  1. 新增Spawn Actor from Class節點, Seqence節點的Then1拉給此節點
  • Class為特效類別
  • Spawn Transform為Event BP Spell to Actor的Victim拉出的GetActorTransform

整個主圖:

  • 一般攻擊技能
  • Buff技能
  • 攻擊+異常技能



AOE(範圍技能)

藍圖設計思維:

藍圖設計和No Target的攻擊技能一樣, 唯一差別是找尋技能目標階段的技能中心位置由滑鼠點擊決定

  • 給予傷害或上Buff階段和生成技能特效階段都和No Target一樣

技能設定階段:

  • Class Defaults>MOBA需設定Name(技能名)Skill Behavior(技能行為)Texture(技能圖示)Hint Actor(目標游標)Level CD(技能CD)Level Mana Cast(技能耗魔)

Hint Actor(目標游標):

目標游標圖示:

  1. 在Skill檔案位置右鍵新增一個Blueprint Class繼承SkillHintActor
  2. 名稱為技能名+Hint
  3. 打開此HintActor藍圖編輯, 工具列Class Defaults的Skill Hint下的Skill Type修改成Range Skill
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  4. Fly Skill下設定你的Skill Diameter、Skill Cast Radius、Minimal Cast Radius
  5. Components 視窗找到BodySprite修改底下Sprite > Source Sprite
  6. Sprite放在Content Browser:Content > MOBA > Skill資料夾下 ,右鍵新增Sprite
  7. 打開Sprite在Source Texture選貼圖, Source Dimension改成跟圖片解析度等比例即可

點擊技能後,滑鼠位置會顯示剛剛的Sprite

  • 再點左鍵呼藍圖事件Event BP Spell to Position
  • 再點右鍵則取消技能施放.

找尋技能目標階段:

0.新增事件:

  • 主圖下,新增Event BP Spell to Position

1.事件順序:

  • 新增seqence, Then0放事件主體, Then1放技能特效

2.找到所有目標:

  • 新增Caster, 右拉新增Caster函式:Find Radius Actor by Location
  • Center是Event BP Spell to Position的Pos
  • Radius手動輸入
  • Check Alive要勾選

3. 拜訪每個目標:

  • ForEachLoop

給予傷害或上Buff階段:

傷害:

  • 和No Target的攻擊技能一樣
  1. 找到MOBAPlayerController
  • 插入到ForEachLoop前,可以不用每個Loop都執行一次
  1. Variable Map的Damage Map

  2. MOBAPlayerController的Server Attack Compute

Buff:

  1. 新增Spawn Actor from Class
  • Class 選繼承HeroBuff的BP Class
  • Spawn Transform是Event BP Spell to Position的Pos右拉出的Make Transform(建立一個transform格式)
  1. Spawn Actor from Class的Buff右拉SetDuration
  • Variable Map的Duration Map設給SetDuration
  1. 目標的Add Buff/Add Unique Buff

傷害+Buff:

給予傷害和給予Buff的BP合起來即可, 見整個主圖

生成技能特效階段:

  • Spawn Transform在Event BP Spell to Position的Pos右拉Make Transform

整個主圖:

  • 攻擊

  • Buff


  • 攻擊+Buff





Directional(指向技能)

藍圖設計思維:

指向技的找尋技能目標階段、給予傷害、生成技能特效階段皆由繼承 SkillDirectionActor或 SkillSplineActor的BP class完成,此BP Class 我們命名為Bullet

  • 指向技點擊之後, 滑鼠游標決定攻擊方向,左鍵確定右鍵取消
  • 在BP上我們只要生成Bullet,設定此Bullet的方向跟傷害即可

技能設定階段:

  • Class Defaults>MOBA需設定Name(技能名)Skill Behavior(技能行為)Texture(技能圖示)Hint Actor(目標游標)Level CD(技能CD)Level Mana Cast(技能耗魔)

Hint Actor(目標游標):

目標游標圖示:

  1. 在Skill檔案位置右鍵新增一個Blueprint Class繼承SkillHintActor
  2. 名稱為技能名+Hint
  3. 打開此HintActor藍圖編輯, 工具列Class Defaults的Skill Hint下的Skill Type修改成Direction Skill
    Image Not Showing Possible Reasons
    • The image file may be corrupted
    • The server hosting the image is unavailable
    • The image path is incorrect
    • The image format is not supported
    Learn More →

  4. Components 視窗找到BodySprite修改底下Sprite > Source Sprite
  5. Components 視窗找到HeadSprite修改底下Sprite > Source Sprite
  6. Components 視窗找到FootSprite修改底下Sprite > Source Sprite
  • BodySprite會伸縮,而另外兩個不會變動
  • Sprite放在Content Browser:Content > MOBA > Skill資料夾下

找尋技能目標&給予傷害&生成技能特效階段 :

  • 在主圖(EventGraph)新增Event BP Spell to Direction

生成Bullet:

  1. 新增Spawn Actor from Class
  • Class選繼承SkillDirectionActor或 SkillSplineActor的BP class
  • Spawn Transform是Caster右拉出來的GetActorTransform

設定Bullet方向:

如果此Bullet是繼承自SkillDirectionActor會需要Set Direction
如果此Bullet是繼承自SkillSplineActor,則只需Set Attacker

  1. 設定方向, Spawn Actor from Class節點的Return Value是Bullet物件
  2. 右拉Spawn Actor from Class節點的Return Value出Set Direction
  • Attacker是Caster
  • Dir是Event BP Spell to Direction減去Caster的GetActorLocation

設定Bullet傷害:

  1. Spawn Actor from Class節點的Return Value右拉Set Damage
  2. Damage Map

整個主圖:

Toggle(開關技)

Immediate(瞬發技)

新增Buff

Passive被動技能Buff

一般Buff

新增Bullet

常用藍圖快捷鍵&操作

tags: UnrealEngine4 Nobu
Select a repo