유니티 화면 녹화 관련 질문입니다.
조회수 6902회
using UnityEngine;
public class ScreenshotMovie : MonoBehaviour
{
// The folder we place all screenshots inside.
// If the folder exists we will append numbers to create an empty folder.
public string folder = "ScreenshotMovieOutput";
public int frameRate = 25;
public int sizeMultiplier = 1;
private string realFolder = "";
void Start()
{
// Set the playback framerate!
// (real time doesn't influence time anymore)
Time.captureFramerate = frameRate;
// Find a folder that doesn't exist yet by appending numbers!
realFolder = folder;
int count = 1;
while (System.IO.Directory.Exists(realFolder))
{
realFolder = folder + count;
count++;
}
// Create the folder
System.IO.Directory.CreateDirectory(realFolder);
}
void Update()
{
// name is "realFolder/shot 0005.png"
var name = string.Format("{0}/shot {1:D04}.png", realFolder, Time.frameCount);
// Capture the screenshot
Application.CaptureScreenshot(name, sizeMultiplier);
}
}
위 코드를 이용해서 화면을 연속 스크린샷으로 저장하는 것 까지 가능한 상황입니다.
질문 1. 위 코드를 이용해서 저장된 스크린샷을 다시 유니티에서 동영상으로 재생할 수 있는 방법이 있나요?
질문 2. 혹시 다른 방법으로 화면에 나타나는 RGB영상(키넥트 카메라가 찍는 화면)을 녹화할 방법이 있나요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
스크린샷을 가지고 직접 동영상을 인코딩해서 저장하려면 성능상 문제가 아주 많을겁니다.
동영상 녹화 기능은 네이티브 플러그인을 써서 구현하는 경우가 많은데요. 직접 만들기 보다는 있는 플러그인을 사용하는걸 추천합니다.
https://unity3d.com/unity/everyplay : 녹화에 대한 자유도는 떨어지지만 게임 플레이를 공유하는 기능을 제공하기 위해서는 everyplay가 최선의 선택일것 같아요.
https://www.assetstore.unity3d.com/en/#!/content/2307: 혹시나 별도 파일로 받아서 처리해야 한다면 비싸긴 하지만 이런 플러그인이 있네요.
댓글 입력