UEProg by milkc0de

    Search

    Home

    UEFN Verse: ガード撃破位置にVFXを出す

    Guardヘッドショットで「headshot」を1秒表示する(3デバイスのみ)

    UEFN / Verseでプレイヤー名を表示する方法

    UEFN Verseサンプル - Trigger起動でBearのPropがプレイヤーについてくる

    ガードの行動範囲を「プレイヤー中心」に縛る(Leash)ガードAI

    通常編集とシンプル編集で 窓開けリセットの最短時間を測定

    UEFN: 建物内が暗くなる場合の対処(Cast Shadow一括OFF) by milkc0de

    UEFN / VerseのみでPINコード・パスコード入力パッドを実装する

    UEFN / Verseのみで作ったPINコード入力パッドを初心者向けに分解して解説する

    UEProg by milkc0de

    Home

    UEFN / Verseでプレイヤー名を表示する方法

    UEFN Verseサンプル - Trigger起動でBearのPropがプレイヤーについてくる

    UEFN Verse: ガード撃破位置にVFXを出す

    Guardヘッドショットで「headshot」を1秒表示する(3デバイスのみ)

    ガードの行動範囲を「プレイヤー中心」に縛る(Leash)ガードAI

    通常編集とシンプル編集で 窓開けリセットの最短時間を測定

    UEFN: 建物内が暗くなる場合の対処(Cast Shadow一括OFF) by milkc0de

    UEFN / VerseのみでPINコード・パスコード入力パッドを実装する

    UEFN / Verseのみで作ったPINコード入力パッドを初心者向けに分解して解説する

    milkc0de

    XTwitch
    UEProg by milkc0de
    /
    UEFN Verseサンプル - Trigger起動でBearのPropがプレイヤーについてくる
    UEFN Verseサンプル - Trigger起動でBearのPropがプレイヤーについてくる

    UEFN Verseサンプル - Trigger起動でBearのPropがプレイヤーについてくる

    by milkc0de

    このサンプルは、

    • Triggerが起動したら
    • 指定した creative_prop(Bear)が
    • Triggerを踏んだプレイヤーに追従する

    概要

    という最小構成のVerseコードです。

    image

    動作仕様

    • Triggerを踏んだプレイヤーのみ対象
    • Bearはプレイヤーの上 +150cm に追従
    • 0.1秒間隔で更新
    • 停止処理なし(永続追従)

    エディタ側の準備

    ① デバイスを配置

    • Trigger Device
    • creative_prop(Bearにしたいオブジェクト)
    • このVerseを持つ Creative Device

    ② Verseデバイスの editable に割り当て

    • Bear → 対象のprop
    • Trigger → 対象のTrigger

    Verseコード

    処理の流れ

    1. OnBegin で Trigger のイベントを購読
    2. Triggerが押されると OnTriggered 実行
    3. spawn で追従ループ開始
    4. プレイヤーのTransformを取得
    5. Zを+150
    6. MoveTo でBearを移動

    よくあるミス

    boolean比較

    Verseでは

    if(Following = true)

    が正しいです。

    option型の展開忘れ

    if(A := Agent?):

    は必須です。

    以上、最小構成サンプルです。

    image
    using { /Fortnite.com/Devices }
    using { /Fortnite.com/Characters }
    using { /Verse.org/Simulation }
    using { /UnrealEngine.com/Temporary/SpatialMath }
    
    bear_follow_device := class(creative_device):
    
        @editable
        Bear : creative_prop = creative_prop{}
    
        @editable
        Trigger : trigger_device = trigger_device{}
    
        var Following : logic = false
    
        OnBegin<override>()<suspends>:void =
            Trigger.TriggeredEvent.Subscribe(OnTriggered)
    
        OnTriggered(Agent:?agent):void =
            if(Following = true):
                return
    
            set Following = true
            spawn{FollowLoop(Agent)}
    
        FollowLoop(Agent:?agent)<suspends>:void =
            loop:
                if(A := Agent?):
                    if(Player := player[A]):
                        if(FortCharacter := Player.GetFortCharacter[]):
    
                            var T : transform = FortCharacter.GetTransform()
    
                            # プレイヤーの少し上に配置
                            set T.Translation.Z = T.Translation.Z + 150.0
    
                            # 0.1秒で追従
                            Bear.MoveTo(T, 0.1)
    
                Sleep(0.1)