0

저는 UE4 C++ Development를 배우고 있습니다. 아이디어가 있지만 그게 가능한지 모르겠습니다. 나는 WAMP SERVER에 폴더를 가지고있다. (C : \ wamp \ www \ staticmesh \ My3DModel.3DS). 내 생각은 내 UE4 위젯에 버튼을 만드는 것입니다. 눌렀을 때 내 스태틱 메시를 내 폴더에서 현재 장면으로 가져옵니다. 있을 수있다 ?외부 폴더에서 정적 메쉬를 어떻게로드 할 수 있습니까?

OBS : 내 게임이 너무 무거워서 게임 옆에 건물을 만들지 않고 정적 메쉬를 가져 와서 실시간으로 장면에 넣을 것이라고 생각했습니다. 다른 해결책이나 아이디어가 있으면 환영 할 것입니다. **

누군가가 단계별로 도움을 줄 수 있습니까? 아래 코드를 어떻게 구현할 수 있습니까? UE4 C++을 배우기 때문에 나에게 매우 중요합니다.

enter image description here

// Load Static Mesh From Path 
static FORCEINLINE UStaticMesh* LoadMeshFromPath(const FName& Path) 
{ 
    if(Path == NAME_None) return NULL; 
    //~ 

    return LoadObjFromPath<UStaticMesh>(Path); 
} 

는 답변을 주셔서 너무 감사드립니다.

답변

0

당신이 아직 그 스케치를 그렸 으면 많이 묻습니다. 이미 정보를 공유 한 경우

https://stackoverflow.com/a/41753091/5196012

이 또한 위키에 대한 링크를 제공합니다 코드 - UE4에 로컬 드라이브에서 메쉬를 얻는 방법 -

나는 최근에 내가 상점 귀하의 질문의 핵심 부분으로 식별 할 수있는 것을 대답 샘플이 나온 것 같습니다.

당신은 사람이 아무도 당신은 내가 그것을 파일 핸들을 반환하는 몇 가지 표준 파일 브라우저 대화 상자가 될 것입니다 생각이 selectionstrategy 알고 없기 때문에 위키

//TEMPLATE Load Obj From Path 
template <typename ObjClass> 
static FORCEINLINE ObjClass* LoadObjFromPath(const FName& Path) 
{ 
    if(Path == NAME_None) return NULL; 
    //~ 

     return Cast<ObjClass>(StaticLoadObject(ObjClass::StaticClass(), NULL,*Path.ToString())); 
} 

에있는 템플릿을 ... 누락

그런 다음해야 할 일은 위젯 버튼 "눌린"이벤트에서 함수를 호출하는 것입니다.

1

OBS : 내 게임이 너무 무거워서 게임 옆에 건물을 만들지 않고 정적 메쉬를 가져 와서 실시간으로 장면에 넣을 것이라고 생각했기 때문입니다.

그건 불가능합니다. 스태틱 메시를 임포트하는 순간, 컨텐트 폴더에 .uasset 파일로 저장됩니다. 메쉬의 크기와 디스크를 가져올 수없는 크기는 얼마나 큽니까?

당신이 절대적으로이 플러그인과 런타임에 당신이 당신의 메시를 생성 할 수있는 자산을 가져 오지 않는 경우

: https://www.unrealengine.com/marketplace/runtime-mesh-component 참고 그러나 그 접근 방식 여분의 케이크 및 최적화를 많이 잃게.

+1

+1 ... UE는 원시 메쉬 리소스를 런타임에 가져 오는 것과 같은 작업을 수행 할 수 없습니다. 원시 리소스를 비현실적인 자산으로 변환하고, 자산에 대한 참조를 설정하고, 마지막으로 게임에로드하는 작업은 매우 복잡합니다. –

+0

편집기 환경에서 위젯 OP가 사용되지 않는 한 OP의 "런타임"은 게임 플레이 런타임을 나타냅니다. –