讓我們繼續《塞爾達傳說》中林克技能的制作!!!
本章節的核心目標:素材導入與遙控炸彈的外觀
先讓我們看一下完成后的效果:
基本流程:素材準備->C++類開發->藍圖配置->場景部署
1.素材準備:視覺元素搭建
1.1 粒子素材
1.2 材質與實例
-
基礎材質M_Bomb: 在材質編輯器中,通過顏色常量節點+自發光參數節點構建發光邏輯(如下圖的材質圖表),實現了紅色基底與自發光結合的效果。
-
材質實例: 基于M_Bomb創建MI_BombBox、MIBombSphere(如下圖材質實例目錄),為不同形態的炸彈差異化視覺效果做準備。
-
調整MI_BombSphere: 調整為紫色,做出差異化即可。
2.C++類開發:定義核心邏輯
作用: 通過C++定義基礎組件與生成邏輯,為藍圖可視化配置提供骨架
2.1 頭文件(BombBase.h)
定義炸彈基礎組件,通過UPROPERTY暴露給藍圖配置:
// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "BombBase.generated.h"class UStaticMeshComponent;
class UParticleSystem;UCLASS()
class ZELDARSKILLS_API ABombBase : public AActor
{GENERATED_BODY()public: // Sets default values for this actor's propertiesABombBase();// 靜態網格組件,控制炸彈外觀UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Components")TObjectPtr<UStaticMeshComponent> SM;// 炸彈生成粒子特效UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Components")TObjectPtr<UParticleSystem> BombSpawnVFX;protected:// Called when the game starts or when spawnedvirtual void BeginPlay() override;public: // Called every framevirtual void Tick(float DeltaTime) override;};
2.2 源文件(BombBase.cpp)
實現組件初始化與生成邏輯
// Fill out your copyright notice in the Description page of Project Settings.#include "Actors/BombBase.h"
#include "Components/StaticMeshComponent.h"
#include "Particles/ParticleSystemComponent.h"
#include "Kismet/GameplayStatics.h"
// Sets default values
ABombBase::ABombBase()
{// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.PrimaryActorTick.bCanEverTick = false;// 創建并設置靜態網格為根組件SM = CreateDefaultSubobject<UStaticMeshComponent>("Bomb Mesh");SM->SetupAttachment(RootComponent);}// Called when the game starts or when spawned
void ABombBase::BeginPlay()
{Super::BeginPlay();// 生成時在當前位置播放 BombSpawnVFX特效UGameplayStatics::SpawnEmitterAtLocation(GetWorld(), BombSpawnVFX, GetActorLocation());}// Called every frame
void ABombBase::Tick(float DeltaTime)
{Super::Tick(DeltaTime);}
3.藍圖配置:多形態定制
3.1 藍圖創建
基于BombBase類,在內容瀏覽器創建BPA_BombBase藍圖。然后基于BombBase類創建子藍圖類分別為BPA_BombBox和BPA_BombSphere。
3.2 藍圖屬性配置
-
立方體炸彈(BPA_BombBox):
打開藍圖,選中SM組件,在細節面板配置:- 靜態網格:Shape_Cube(選一個立方體的網格即可)
- 材質:**MI_BombBox(選擇1中創建的材質實例)**如下圖所示
-
球形炸彈(BPA_BombBaseSphere):
同理,進行配置:- 靜態網格:Shape_Sphere(選一個球體)
- 材質:MI_BombSphere(選擇1中創建的材質實例)
4. 場景投放效果
將BPA_BombBase和BPA_BombBaseSphere拖入場景中
第16部分完成啦!!
十分感謝大家的閱讀、點贊、收藏!!
如果有不足之處,有錯誤地方,歡迎大家在評論區討論、批評、指正!!!