fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2022年04月 | ARCHIVE-SELECT | 2022年06月

| PAGE-SELECT |

≫ EDIT

UE5/UE4 C++でワールド座標をスクリーン座標に変換する(Project World Location To Screen、Convert World Location To Screen Location)

C++でワールド座標をスクリーン座標に変換する方法です。

こちらを参考にさせていただきました。

・[Help] How to convert World Space to Screen space? C++
https://www.reddit.com/r/unrealengine/comments/68kwhr/help_how_to_convert_world_space_to_screen_space_c/

BPでは「Convert World Location To Screen Location」ノードを使って変換します。
ソースでスクリーン座標取得000

これと同じ処理をしたいので上記ノード名で検索したのですが存在せず…。
ということで調べたら参考サイトにあるように、BPとは異なる関数名で存在していました。

C++でワールド座標をスクリーン座標に変換するには「Project World Location To Screen」関数を使います。
記述的にはこんな感じになります。

#include "Kismet/GameplayStatics.h"

// Player Controller の取得
APlayerController* aPlayerController = UGameplayStatics::GetPlayerController(this, 0);

// ワールド座標をスクリーン座標に変換
FVector aWorldLocation;
FVector2D aScreenLocation;
aPlayerController->ProjectWorldLocationToScreen(aWorldLocation, aScreenLocation);

「APlayerController」を取得し「ProjectWorldLocationToScreen」関数を使って変換します。
ワールド座標の「FVector aWorldLocation」が、スクリーン座標「FVector2D aScreenLocation」に変換されます。

同じ処理はできたのですが、名称が違うと混乱するんですよね…。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |