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」ノードを使って変換します。

これと同じ処理をしたいので上記ノード名で検索したのですが存在せず…。
ということで調べたら参考サイトにあるように、BPとは異なる関数名で存在していました。
C++でワールド座標をスクリーン座標に変換するには「Project World Location To Screen」関数を使います。
記述的にはこんな感じになります。
ワールド座標の「FVector aWorldLocation」が、スクリーン座標「FVector2D aScreenLocation」に変換されます。
同じ処理はできたのですが、名称が違うと混乱するんですよね…。
こちらを参考にさせていただきました。
・[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」ノードを使って変換します。

これと同じ処理をしたいので上記ノード名で検索したのですが存在せず…。
ということで調べたら参考サイトにあるように、BPとは異なる関数名で存在していました。
C++でワールド座標をスクリーン座標に変換するには「Project World Location To Screen」関数を使います。
記述的にはこんな感じになります。
「APlayerController」を取得し「ProjectWorldLocationToScreen」関数を使って変換します。#include "Kismet/GameplayStatics.h"
// Player Controller の取得
APlayerController* aPlayerController = UGameplayStatics::GetPlayerController(this, 0);
// ワールド座標をスクリーン座標に変換
FVector aWorldLocation;
FVector2D aScreenLocation;
aPlayerController->ProjectWorldLocationToScreen(aWorldLocation, aScreenLocation);
ワールド座標の「FVector aWorldLocation」が、スクリーン座標「FVector2D aScreenLocation」に変換されます。
同じ処理はできたのですが、名称が違うと混乱するんですよね…。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑