Chang Mio
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
<style> .markdown-body { max-width: 70%; } </style> 信長技能BP圖文教學 === # <span style="color:#FF0000;">新增技能</span> 1. 在Content Browser底下的 **Content** \> **MOBA** > **Hero** > **_英雄代號_** \> **Skill**資料夾下滑鼠右鍵新增一個Blueprint Class ![](https://i.imgur.com/uKQ3uaA.png) 2. 此Blueprint Class繼承**HeroSkill** class ![](https://i.imgur.com/4PzdRLR.png) 3. 技能檔案命名規則為 : **_武將代號_**(E/R/T/W)_Skill ![](https://i.imgur.com/Sb5gHep.png)![](https://i.imgur.com/5h96mIe.png) 4. 打開剛剛新增的BP技能進入BP編輯頁面, 找到工具列的**Class Defauls**底下的**MOBA**, 編輯**Name**(技能名字)、**Texture**(技能圖示) ![](https://i.imgur.com/Tsljy16.png) ![](https://i.imgur.com/o5igKUS.png) 5. 打開英雄的BP(**_武將代號_**_hero), 找到MOBA底下的**Skill Classes**右邊的+新增一個**array element**, 設定新技能如此便能在角色面板上看見此技能新增出來 ![](https://i.imgur.com/e5dhCjC.png) ![](https://i.imgur.com/nfbyOIa.png) ![](https://i.imgur.com/FjaYmxZ.png) - 最多能有個6技能,含天生技 6. 回到BP技能編輯頁面, 工具列Class Details > MOBA底下的**Level CD**,此技能每個等級的CD時間, 技能等級最大有多少就新增幾個**array element** ![](https://i.imgur.com/DOCwY8t.png) - 等級越高,CD時間應越短 7. **Level Mana Cost**為此技能每個等級的耗魔, 同上新增**array element** 8. **MOBA**底下的**Variable Map**為此技能的"依技能等級有所不同"的變數, 點右邊+新增一個**Map**,此**Map**名稱**自定義**. - 攻擊技能應有**Damage** : **Map**取名為**Damage**, 點**Values**右側的+為此**Map**新增每個等級的傷害量 ![](https://i.imgur.com/zFh9kb8.png) - Buff技能同樣, 例如Buff了爆擊率 : 命名為**Critical**並新增每個等級的爆擊率 ![](https://i.imgur.com/2FG8r0a.png) # 開始設計一個技能前... ## 技能行為 點擊BP技能進入BP編輯器, 工具列的Class Defauls > MOBA底下的**Skill Behavior** ![](https://i.imgur.com/rLkwngb.png) 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(技能耗魔)** 等等 ![](https://i.imgur.com/QRUM7ry.png) ### 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(技能耗魔)** ![](https://i.imgur.com/BIffKaA.png) - **Level CD(技能CD)**和**Level Mana Cast(技能耗魔)** 的值是右邊+號新增出來的, 代表每個技能等級各自的CD和耗魔 ## 上Buff階段: ### 1.新增事件 : - 在技能藍圖的主圖(EventGraph)上右鍵新增Event BP Spell Passive, 技能習得後立即呼叫此Event ![](https://i.imgur.com/wraRsc5.png) ### 2.生成BUFF : - 右鍵新增**Spawn Actor from Class**節點, Class選擇繼承HeroBuff的BP類別(此時節點名稱會變成:SpawnActor XXXX) ![](https://i.imgur.com/m9ErR9Y.png) ### 3.生成位置 : - 右鍵新增**Caster**節點(一個HeroSkill下的HeroCharacter類別變數), 右拉**Caster**上的藍點放開找到**GetActorTransform**此為**Caster**底下的函式 ,拉給**Spawn Actor from Class**節點的Spawn Transform ![](https://i.imgur.com/c0eU75r.png) ![](https://i.imgur.com/0lgof1J.png) ![](https://i.imgur.com/Wgnv6rU.png) - 如此一來就生成一個BP類別的實體Actor了 ### 4.Buff Unique Map : - **Spawn Actor from Class**節點的Return Value右拉找到**Buff Unique Map**此為HeroBuff底下的一個Map變數 ![](https://i.imgur.com/qPg9Uq3.png) ### 5.加入新的element到Buff Unique Map裡 : - **Buff Unique Map**節點右拉輸入**Add**為此Map加入Buff增強角色的效果, 此例是增加物理爆擊率 ![](https://i.imgur.com/fiCiEcn.png) - 新增的element還需要加入一個浮點小數代表Buff的量 ### 6.新增VariableMap的子Map : - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#) ### 7. Buff Unique Map新增的Buff效果數值 : - **Buff Unique Map**的**Add**節點下面的數值由Critical Map提供 ![](https://i.imgur.com/7elMd6G.png) ### 8. 加入Buff到英雄上 : - 右鍵新增**Caster**節點, 右拉**Caster**節點找到**Caster**底下的**Add Unique Buff**函數 ![](https://i.imgur.com/ReRXslp.png) - **Add Unique Buff**節點的Buff為**Spawn Actor from Class**節點的Return Value ![](https://i.imgur.com/vYA1jaS.png) - **注意白線(執行線)的順序, 一定要先設Buff Unique Map才能Add Unique Buff** ## 整個主圖 : ![](https://i.imgur.com/mzd1Frx.png) --- # No Target(不需目標技能) ## 藍圖設計思維: 以施法者為中心立即放技能, 以半徑找到所有影響目標或者只對自己有影響 - 可以是Buff技、攻擊技AOE或英雄面對方向的指向技 - 計算傷害或者給予Buff給自己 - 攻擊技也可以加上異常狀態Buff給敵人 ## 技能設定階段: - Class Defaults>MOBA需設定**Name(技能名)**、**Skill Behavior(技能行為)**、**Texture(技能圖示)**、**Level CD(技能CD)**、**Level Mana Cast(技能耗魔)** ![](https://i.imgur.com/MhId39x.png) ## 找尋技能目標階段: - 目標有可能是以自身為中心的AOE,或是指向技時英雄面對方向上的目標 - 指向技由Bullet處理目標,所以這邊只處理AOE的場合 - 如果是上Buff給自己也沒有此階段 - 如果有同時有**找尋技能目標階段**和**生成技能特效階段**,會使用seqence節點來區分執行順序 ### 1. 新增事件 : - 在技能藍圖的主圖(EventGraph)上右鍵新增Event BP Spell Now, 點擊技能會立即呼叫此Event ![](https://i.imgur.com/fXiqvEj.png) ### 2. 事件順序 : - 右鍵新增**Seqence**節點,藍圖會依順序跑, then0拉給找尋技能目標階段和給予傷害或上Buff階段 , then1拉給生成技能特效 ### 3.找尋自身為半徑的所有目標 : - 右鍵新增**Caster** 節點,並左鍵拉此節點的線放開可搜尋到Caster(HeroCharacter)底下的Function : **Find Radius Actor by Location**新增之 ![](https://i.imgur.com/k9DZ3yR.png) ![](https://i.imgur.com/rC7sG4F.png) - **Caster**拉出**GetActorLocation**節點給**Find Radius Actor by Location**當Center參數, 手動輸入半徑, 並勾選Check Alive檢查目標是否是活的 ![](https://i.imgur.com/8AMKNGi.png) ## 給予傷害/上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 ![](https://i.imgur.com/DkvZavj.png) - **ForEachLoop**節點的輸出就是一個目標HeroCharacter ### 對目標攻擊時: #### 需先設定Variable Map中的Damage Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#) #### 呼叫攻擊計算函式 1. 右鍵新增**Get Player Controller** 節點, 拉此節點轉換成**MOBAPlayerController** ![](https://i.imgur.com/8Xustbx.png) ![](https://i.imgur.com/ZVBYKSg.png) 2. **Find Radius Actor by Location**右方的執行線(白線)拉給**Cast to MOBAPlayerController** 3. 新增計算傷害函式 : - **Cast to MOBAPlayerController**節點的As MOBAPlayer Controller右拉可找到MOBAPlayer Controller底下的Function : **Server Attack Compute** 4. **Server Attack Compute**的Attacker為**Caster**(可右鍵再新增一次節點),Victim為目標HeroCharacter(**ForEachLoop**節點的Array Element) ![](https://i.imgur.com/yYphs7x.png) - 傷害類型有物傷、法傷和純傷 ![](https://i.imgur.com/vf24U23.png) 5. 取得**Variable Map**中Damage Map : - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#) 6. AOE的攻擊階段Overview: ![](https://i.imgur.com/PbqUpsX.png) ### 對目標Buff時: #### 需先設定Variable Map中的 Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),設定Duration Map,如有其他效果Map也一併新增 #### 生成Buff 和Passive的永久Buff不同, 需要設定Duration(效果期間) 1. 主圖右鍵新增**Spawn Actor from Class** ![](https://i.imgur.com/wb4vp49.png) - Class選擇一個Buff, 繼承HeroBuff的BP類別 - Spawn Transform 為目標HeroCharacter(**ForEachLoop**的Array Element或者**Caster**), 右拉出的**GetActorTransform** ![](https://i.imgur.com/Jj4JAJV.png) -- ![](https://i.imgur.com/jOUQlj6.png) 2. 設定Buff變數Duration : - **Spawn Actor from Class**節點的Return Value為一個HeroBuff的實體Actor, 右拉出**Set Duration**節點設定HeroBuff底下的一個變數Duration的值 ![](https://i.imgur.com/1ZxHQBE.png) 3. 呼叫VariableMap的子Map給**Set Duration**節點 : - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#) #### 加Buff到英雄上 : 1. 目標HeroCharacter(**ForEachLoop**的Array Element或者**Caster**), 右拉出的函式**Add Buff**, 不可重複的Buff則是**Add Unique Buff** ![](https://i.imgur.com/HK0o4Rt.png) -- ![](https://i.imgur.com/b6SLhPQ.png) - **Spawn Actor from Class**節點的Buff丟給**Add Buff** ![](https://i.imgur.com/5csGQKf.png) ### 攻擊+異常狀態 - 實作上其實就是 1. 生成Buff給目標Character 2. 給予目標傷害 - 目標Character必定是敵人 #### 需先設定Variable Map中的 Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),新增此異常狀態的持續時間 ![](https://i.imgur.com/zTXP4t7.png) #### 生成Buff - 參照前面的[生成Buff](#生成Buff) - Spawn Transform的目標HeroCharacter一定是敵人:**ForEachLoop**的Array Element - Map為上面設定的StunDuration Map, 此異常的持續時間 #### 加Buff到英雄上 - 參照前面的[加Buff到英雄上](#加Buff到英雄上-) - Add Buff的目標HeroCharacter一定是敵人:**ForEachLoop**的Array Element #### 呼叫攻擊計算函式 - 參照前面的[呼叫攻擊計算函式](#呼叫攻擊計算函式) ## 生成技能特效階段: - 如果對自己放Buff且已在HeroBuff設定其特效, 此階段可不用 1. 右鍵新增**Spawn Actor from Class**節點,**Seqence**的then1拉給此節點 2. Class選取要新增的特效類別, Spawn Transform為**Caster**節點拉出的**GetActorTransform** ![](https://i.imgur.com/cTtpSXm.png) ## 整個主圖: - 攻擊周遭敵軍技能 ![](https://i.imgur.com/yovzvJi.png) - 放Buff給自己 ![](https://i.imgur.com/C1l6TwR.png) - 放Buff給自己(加上技能特效和Buff唯一) : ![](https://i.imgur.com/V3nocdp.png) - 施放技能給周遭友軍 ![](https://i.imgur.com/t3Mi9fj.png) -- ![](https://i.imgur.com/fZ7mySk.png) - 攻擊周遭敵軍並暈他們 ![](https://i.imgur.com/po08wGJ.png) -- ![](https://i.imgur.com/8nxZJN4.png) -- ![](https://i.imgur.com/jVFBx3n.png) ## 往英雄面對方向的指向技 - 指向技的找尋目標、給予傷害和生成特效三個階段都是在Bullet(繼承SkillDirectionActor或SkillSplineActor)完成的 - 我們只需要生成Bullet並設定它的傷害和方向即可 ### 1. 新增指向技 : - 新增**Spawn Actor from Class**節點, Class選擇Bullet(子彈)繼承SkillDirectionActor, Spawn Transform為**Caster**的**GetActorTransform** ![](https://i.imgur.com/OxTTCqT.png) ### 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 ![](https://i.imgur.com/NpNKuyB.png) ![](https://i.imgur.com/QaJEQGj.png) - **Normalize**節點的任一Return Value右拉找到**Make Vector**,**Make Vector**節點的X Y分別是 **Normalize**節點Return ValueX Y, Z則設為0(防止上下飄移) ![](https://i.imgur.com/bxIkK7d.png) ### 3. 設定傷害 : - **Spawn Actor from Class**節點的Return Value右拉**Set Damage** - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),呼叫Damage Map ![](https://i.imgur.com/XhmKwjU.png) ### 4. 整個主圖 : ![](https://i.imgur.com/hLKborw.png) --- # 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(技能耗魔)** ![](https://i.imgur.com/dksWKt5.png) - 不設定**Cast Range(施法距離)** 技能可能無法發動 ## 找尋技能目標階段: ### 1. 新增事件 : - 在主圖(EventGraph)視窗, 右鍵新增**Event BP Spwll to Actor** - **Event BP Spwll to Actor**的Victim即為目標HeroCharacter ![](https://i.imgur.com/fIm5NGw.png) ### 2. 新增事件順序 : - 新增**Seqence**節點, Then0拉給傷害計算/上Buff, Then1拉給技能特效, BP會依照Then0 Then1 ...的順序執行 ## 給予傷害或上Buff階段: ### 傷害: #### 0.設定Damage Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),新增Variable Map的子Map:Damage Map #### 1. 計算傷害: - 新增**Get Player Controller**節點, 右拉此節點**Cast To MOBAPlayerController**, As MOMAPlayerController右拉出**Server Attack Compute** ![](https://i.imgur.com/itjfckk.png) - Attacker為**Caster** - Victim為**Event BP Spell to Actor** - Dtype為傷害類型:物傷、法傷和純傷 - Damage由Damage Map取得(依技能等級有所不同) #### 2. 設定傷害: - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),呼叫Damage Map ![](https://i.imgur.com/92zSxNF.png) - 傷害值丟給**Server Attack Compute** ![](https://i.imgur.com/USscGut.png) ### Buff: #### 0.設定Duration Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),新增Variable Map的子Map:Duration Map - 可新增其他Map儲存Buff所需要用到跟技能等級掛勾的數值 #### 1.生成Buff 1. 主圖右鍵新增**Spawn Actor from Class** ![](https://i.imgur.com/wb4vp49.png) - Class選擇一個Buff, 繼承HeroBuff的BP類別 - Spawn Transform 為目標HeroCharacter(**Event BP Spwll to Actor**的Victim), 右拉出的**GetActorTransform** ![](https://i.imgur.com/BSdwWsG.png) 2. 設定Buff變數Duration : - **Spawn Actor from Class**節點的Return Value為一個HeroBuff的實體Actor, 右拉出**Set Duration**節點設定HeroBuff底下的一個變數Duration的值 ![](https://i.imgur.com/1ZxHQBE.png) #### 2.加Buff到英雄上 : - 目標HeroCharacter(**Event BP Spell to Actor**的Victim)右拉出的函式**Add Buff**, 不可重複的Buff則是**Add Unique Buff** - **Spawn Actor from Class**節點的Buff丟給**Add Buff** ![](https://i.imgur.com/ZkRS9Fl.png) ### 攻擊+異常Buff: - 參照上方給予敵方負面異常Buff+給予傷害合併即可 #### 需先設定Variable Map中的 Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),新增此異常狀態的持續時間 ![](https://i.imgur.com/zTXP4t7.png) #### 1.[生成Buff](#1生成Buff) #### 2.[加Buff到英雄上](#2加Buff到英雄上-) #### 3.[計算傷害](#1-計算傷害) #### 4.[設定傷害](#2-設定傷害) ## 生成技能特效階段: - 上Buff也許不需要此階段, 因為在HeroBuff BP裡設定了其特效 1. 新增**Spawn Actor from Class**節點, **Seqence**節點的Then1拉給此節點 - Class為特效類別 - Spawn Transform為**Event BP Spell to Actor**的Victim拉出的**GetActorTransform** ![](https://i.imgur.com/1S6U6u4.png) ## 整個主圖: - 一般攻擊技能 ![](https://i.imgur.com/6hfTDHR.png) - Buff技能 ![](https://i.imgur.com/kcujb06.png) - 攻擊+異常技能 ![](https://i.imgur.com/eF8p76F.png) -- ![](https://i.imgur.com/LhNhf2f.png) --- # AOE(範圍技能) ## 藍圖設計思維: 藍圖設計和No Target的攻擊技能一樣, 唯一差別是找尋技能目標階段的技能中心位置由滑鼠點擊決定 ![](https://i.imgur.com/BMWL8ts.png) - 給予傷害或上Buff階段和生成技能特效階段都和No Target一樣 ## 技能設定階段: - Class Defaults>MOBA需設定**Name(技能名)**、**Skill Behavior(技能行為)**、**Texture(技能圖示)**、**Hint Actor(目標游標)**、**Level CD(技能CD)**、**Level Mana Cast(技能耗魔)** ![](https://i.imgur.com/HWAiPLp.png) ### Hint Actor(目標游標): #### 目標游標圖示: 1. 在Skill檔案位置右鍵新增一個Blueprint Class繼承SkillHintActor ![](https://i.imgur.com/ID5ZZ5S.png) 2. 名稱為技能名+Hint ![](https://i.imgur.com/4eUnMfF.png) 3. 打開此HintActor藍圖編輯, 工具列Class Defaults的Skill Hint下的Skill Type修改成Range Skill ![](https://i.imgur.com/Tsljy16.png) ![](https://i.imgur.com/nGaDZaI.png) 4. Fly Skill下設定你的Skill Diameter、Skill Cast Radius、Minimal Cast Radius ![](https://i.imgur.com/hKmtpSh.png) 5. Components 視窗找到BodySprite修改底下Sprite > Source Sprite ![](https://i.imgur.com/bfOCRZX.png) 6. Sprite放在Content Browser:Content > MOBA > Skill資料夾下 ,右鍵新增Sprite ![](https://i.imgur.com/2V9rkNq.png) 7. 打開Sprite在Source Texture選貼圖, Source Dimension改成跟圖片解析度等比例即可 ![](https://i.imgur.com/DeVwAEE.png) #### 點擊技能後,滑鼠位置會顯示剛剛的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要勾選 ![](https://i.imgur.com/9Dj2gky.png) ### 3. 拜訪每個目標: - ForEachLoop ![](https://i.imgur.com/f2m4H2C.png) ## 給予傷害或上Buff階段: ### 傷害: - 和No Target的攻擊技能一樣 1. 找到MOBAPlayerController ![](https://i.imgur.com/3ozRO1Q.png) - 插入到ForEachLoop前,可以不用每個Loop都執行一次 2. Variable Map的Damage Map ![](https://i.imgur.com/XeOeZKq.png) ![](https://i.imgur.com/jDqHPop.png) 3. MOBAPlayerController的Server Attack Compute ![](https://i.imgur.com/NGAoHpN.png) ### Buff: 1. 新增**Spawn Actor from Class** - Class 選繼承HeroBuff的BP Class - Spawn Transform是**Event BP Spell to Position**的Pos右拉出的**Make Transform(建立一個transform格式)** ![](https://i.imgur.com/z9XnJEa.png) 2. **Spawn Actor from Class**的Buff右拉**SetDuration** - Variable Map的Duration Map設給**SetDuration** ![](https://i.imgur.com/NOncNkA.png) 3. 目標的Add Buff/Add Unique Buff ![](https://i.imgur.com/5qgFDU5.png) ### 傷害+Buff: 給予傷害和給予Buff的BP合起來即可, 見[整個主圖](#整個主圖2) ## 生成技能特效階段: - Spawn Transform在**Event BP Spell to Position**的Pos右拉**Make Transform** ![](https://i.imgur.com/Xey2ZZU.png) ## 整個主圖: - 攻擊 ![](https://i.imgur.com/zkDRp8N.png) - Buff ![](https://i.imgur.com/TYyOsNi.png) -- ![](https://i.imgur.com/oKZHmWb.png) - 攻擊+Buff ![](https://i.imgur.com/Jg15TaM.png) -- ![](https://i.imgur.com/HEhR1oj.png) -- ![](https://i.imgur.com/U8r7ULH.png) --- # 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(技能耗魔)** ![](https://i.imgur.com/uplcoeM.png) ### Hint Actor(目標游標): #### 目標游標圖示: 1. 在Skill檔案位置右鍵新增一個Blueprint Class繼承SkillHintActor ![](https://i.imgur.com/ID5ZZ5S.png) 2. 名稱為技能名+Hint ![](https://i.imgur.com/4eUnMfF.png) 3. 打開此HintActor藍圖編輯, 工具列Class Defaults的Skill Hint下的Skill Type修改成Direction Skill ![](https://i.imgur.com/Tsljy16.png) ![](https://i.imgur.com/8ia7tdK.png) 4. Components 視窗找到BodySprite修改底下Sprite > Source Sprite ![](https://i.imgur.com/nqbN4xX.png) 5. Components 視窗找到HeadSprite修改底下Sprite > Source Sprite ![](https://i.imgur.com/RqizLS0.png) 6. Components 視窗找到FootSprite修改底下Sprite > Source Sprite ![](https://i.imgur.com/HBW9rtf.png) - BodySprite會伸縮,而另外兩個不會變動 - Sprite放在Content Browser:Content > MOBA > Skill資料夾下 ## 找尋技能目標&給予傷害&生成技能特效階段 : - 在主圖(EventGraph)新增**Event BP Spell to Direction** ![](https://i.imgur.com/I5cA5pu.png) ### 生成Bullet: 1. 新增**Spawn Actor from Class** - Class選繼承SkillDirectionActor或 SkillSplineActor的BP class - Spawn Transform是**Caster**右拉出來的**GetActorTransform** ![](https://i.imgur.com/IavXMbG.png) ### 設定Bullet方向: 如果此Bullet是繼承自SkillDirectionActor會需要**Set Direction** 如果此Bullet是繼承自SkillSplineActor,則只需**Set Attacker** ![](https://i.imgur.com/18bIINZ.png) 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 ![](https://i.imgur.com/6fCGIF5.png) ### 設定Bullet傷害: 1. **Spawn Actor from Class**節點的Return Value右拉**Set Damage** 2. Damage Map - 參考[信長Variable Map設定和呼叫](https://hackmd.io/MwVg7AZgDAJgTADgLTAEaSQFgMZQIxICcUqAhkgKZhQQIgBsUC9EFQA=#),得到此技能的傷害給**Set Damage** ![](https://i.imgur.com/A8bcnul.png) ## 整個主圖: ![](https://i.imgur.com/6AjKa3T.png) # Toggle(開關技) # Immediate(瞬發技) # 新增Buff ## Passive被動技能Buff ## 一般Buff # 新增Bullet # 常用藍圖快捷鍵&操作 - 參考[常用藍圖快捷鍵&操作](https://hackmd.io/BwYwpgDCBsDMYFoIHZqICywJzIV4ARgEwIAmpAZgIYhYCsI6WsRQA===#) ###### tags: `UnrealEngine4` `Nobu`

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully