Pull to refresh
2
0

Разработчик «игр для дяденек в галстуках»

Send message

1. Используй манифест как чек-лист при генерации.

А мне вот это понравилось, а код будет генерироваться пеонами или ИИ?

Спасибо за отзыв. Рад, что статья оказалась полезной!

Оставлю в комментарии апдейт.

  1. Код работает без изменений под 5.1, проверено.

  1. В UE 5.1 добавили коллбэк на HighresShot, теперь на него можно подписаться, и считать картинку из памяти не сохраняя на диск, вот так:

void A_GMB::TakeScreenshot()
{
	FHighResScreenshotConfig& HighResScreenshotConfig = GetHighResScreenshotConfig();
	HighResScreenshotConfig.SetResolution(1920, 1080);
	HighResScreenshotConfig.SetFilename(ScreenshotFileName);

	HighResScreenshotConfig.SetMaskEnabled(false);
	HighResScreenshotConfig.SetHDRCapture(false);
	GEngine->GameViewport->OnScreenshotCaptured().AddUObject(this, &A_GMB::HandleScreenshotData);
	GEngine->GameViewport->GetGameViewport()->TakeHighResScreenShot();
}

void A_GMB::HandleScreenshotData(int32 InSizeX, int32 InSizeY, const TArray<FColor>& InImageData)
{
    TArray64<uint8> CompressedBitmap;
	FImageUtils::PNGCompressImageArray(InSizeX, InSizeY, TArrayView64<const FColor>(InImageData.GetData(), InImageData.Num()), CompressedBitmap);
	
	UE_LOG(LogTemp, Error, TEXT("Screenshot taken"));
	// тут можно запилить новую функцию и передать в нее адрес массива с картинкой
    UploadManager->UploadScreenshot(CompressedBitmap, UploadInfo);
    
}

Для того, чтобы конвертировать TArray64 в TArray можно использовать конструктор вида TArray(CompressedBitmap) из примера выше.

Information

Rating
Does not participate
Location
Shanghai, Китай
Date of birth
Registered
Activity

Specialization

Десктоп разработчик, Архитектор программного обеспечения
Ведущий
From 10,000 $
Git
C++
Разработка игр
Unreal Engine