vault backup: 2024-09-29 18:07:26
This commit is contained in:
parent
6b2343413b
commit
1e9cfbfab3
@ -16,9 +16,12 @@
|
||||
1. 删除EOE所有角色,不包含资产。
|
||||
2. 部署大棚P4V,并且拉取工程。
|
||||
3. 研究并且部署P4触发器,以此来规避P4资产大小写的问题。
|
||||
|
||||
# 9.18~9.20
|
||||
1.
|
||||
|
||||
# 9.23~9.29
|
||||
1. 修复道具BP_Balloon_01、BP_FeathersFalling_01、BP_FeathersFalling_02问题。
|
||||
2. 实现枝江冬季显示场景铺雪与商业路口樱花消失。
|
||||
3. MultiView采集卡添加。
|
||||
|
||||
# 问题
|
||||
1. 功能测试问题:
|
||||
|
@ -1 +1,88 @@
|
||||
TsScreenPlayerTextureRenderer => AMultiViewActor
|
||||
|
||||
# 多屏与采集卡
|
||||
以Preview为例:
|
||||
TsDirectorCamManagerActor.ts
|
||||
```c++
|
||||
this.PreviewWindow = UE.MultiViewActor.Open(this.GetWorld(), UE.EMultiViewCameraLayout.Display_1920x1080_Layout_4x4, UE.EMultiViewMultiGPUMode.HalfSplit)
|
||||
this.PreviewWindow.SetRenderFeaturePlanarReflection(false);
|
||||
this.PreviewWindow.SetRenderFeatureNiagara(false);
|
||||
|
||||
// video output
|
||||
let videoOutputParam = new UE.VideOutputParam()
|
||||
videoOutputParam.bBlackMagicCard = false
|
||||
videoOutputParam.bLazyStart = false
|
||||
this.PreviewWindow.StartVideoOutput(videoOutputParam)
|
||||
```
|
||||
|
||||
PVW&PGM使用 **BLACKMAGIC_OUTPUT_CONFIG_HORIZONTAL** 也就是/Game/ResArt/BlackmagicMedia/MO_BlackmagicVideoOutput。
|
||||
```ts
|
||||
export function StartVideoOutput(camManager : TsDirectorCamManagerActor, targetWindow : UE.MultiViewActor):void{
|
||||
let videoOutpuParam = new UE.VideOutputParam()
|
||||
videoOutpuParam.FilmbackMode = camManager.FilmbackMode
|
||||
videoOutpuParam.OutputConfigPath = BLACKMAGIC_OUTPUT_CONFIG_HORIZONTAL
|
||||
videoOutpuParam.bBlackMagicCard = true
|
||||
videoOutpuParam.bLazyStart = false
|
||||
if(camManager.FilmbackMode == UE.EFilmbackMode.EFM_1080x1920){
|
||||
videoOutpuParam.MatV2H = GetV2HMaterialInstace(camManager)
|
||||
}
|
||||
targetWindow.StartVideoOutput(videoOutpuParam)
|
||||
}
|
||||
```
|
||||
|
||||
- DirectorMode.Preview:bBlackMagicCard = false
|
||||
- PVW&PGM:bBlackMagicCard = true
|
||||
|
||||
## c++
|
||||
核心函数在于**AMultiViewActor::StartVideoOutput**
|
||||
# UDeckLinkMediaCapture
|
||||
|
||||
|
||||
m_DeckLinkOutputDevice = DeckLinkDiscovery->GetDeviceByName(m_DeviceName);
|
||||
|
||||
```c++
|
||||
FDeckLinkDeviceDiscovery::DeckLinkDeviceArrived(IDeckLink *device)
|
||||
{
|
||||
/*TComPtr<IDeckLink> device_;
|
||||
device_ = device;*/
|
||||
|
||||
TComPtr<FDeckLinkOutputDevice> newDeviceComPtr = new FDeckLinkOutputDevice(device);
|
||||
if (!newDeviceComPtr->Init())
|
||||
return S_OK;
|
||||
|
||||
std::lock_guard<std::recursive_mutex> lock(m_DeviceMutex);
|
||||
FString deviceName = newDeviceComPtr->GetDeviceName();//看这个Com对象的设备名称是否对应
|
||||
if (!m_Devices.Contains(deviceName) )
|
||||
{
|
||||
m_Devices.Add(deviceName,newDeviceComPtr);
|
||||
}
|
||||
return S_OK;
|
||||
}
|
||||
```
|
||||
|
||||
DeckLinkDeviceArrived调用逻辑位于**DeckLinkAPI_h.h**。
|
||||
|
||||
## ADeckLinkOutputActor
|
||||
ADeckLinkOutputActor的DeviceName 默认值为"DeckLink Mini Monitor 4K";
|
||||
|
||||
判断错误函数
|
||||
UMediaCapture::CaptureTextureRenderTarget2D()=>UMediaCapture::StartSourceCapture() => ValidateMediaOutput()
|
||||
```c++
|
||||
bool UMediaCapture::ValidateMediaOutput() const
|
||||
{
|
||||
if (MediaOutput == nullptr)
|
||||
{ UE_LOG(LogMediaIOCore, Error, TEXT("Can not start the capture. The Media Output is invalid."));
|
||||
return false;
|
||||
}
|
||||
FString FailureReason;
|
||||
if (!MediaOutput->Validate(FailureReason))
|
||||
{ UE_LOG(LogMediaIOCore, Error, TEXT("Can not start the capture. %s."), *FailureReason);
|
||||
return false;
|
||||
}
|
||||
if(DesiredCaptureOptions.bAutostopOnCapture && DesiredCaptureOptions.NumberOfFramesToCapture < 1)
|
||||
{ UE_LOG(LogMediaIOCore, Error, TEXT("Can not start the capture. Please set the Number Of Frames To Capture when using Autostop On Capture in the Media Capture Options"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user