작성
·
188
0
강의를 듣다가 의문이 생겨 글 남깁니다.
분수대를 만드는데 BP와 C++을 이용해서 각각 만들어봤는데
BP를 통해서 만들때는 너무 쉽고 간단하지만 C++을 사용할때는 복잡하고 초기에 해줘야하는 세팅이 너무 많은것 같아서 굳이 왜 C++을 통해서 액터를 만들어야하는가? 라는 의문이 듭니다.
가령 액터를 꾸미는? 작업은 BP로 하고 주요 로직은 C++로 작성하는게 맞지 않나 라는 생각이 드는거죠.
실제 현업에는 어떻게 사용하지는 모르겠지만, 프로그래머가 C++을 통해 맵에 배치할 모든 액터를 작성하지 않을 것 같아서 질문 드립니다.
액터를 만들때에는 왜 C++을 사용해야하는지?
만약 그렇다고 한다면 일련의 노가다와 같은 초기화 작업을 다 해야하는지?
지금까지 강의를 들었을 때 제가 내린 스스로의 해결법?은 C++ A클래스를 만들고 헤더 파일에 UPROPERTY(VisibleAnywhere, BlueprintReadWrite)를 통해 프로퍼티를 열어둔 상태에서 B라는 블루프린트 클래스를 만들어서 A를 상속 받은 후 에디터를 통해 작업하는 것 입니다. 이것도 어떻게 생각하시는지 궁금합니다.
답변 2
0
안녕하세요. 본 과정은 C++학습을 목표로 설계되었습니다. 블프와 C++의 조합에 있어 서로 어디까지 역할을 분담하는게 좋은지에 대해서는 케바케라고 생각합니다.
관련해서 몇 가지 사례를 정리해보면,
블프는 아무래도 C++ 부모 클래스의 영향을 받기 때문에 잦은 부모클래스의 변경으로 애써 세팅해 둔 값이 날아가는 경우가 발생할 수있습니다. 조금 불편하고 돌아가더라도 안전하게 C++ 로 처리하는 것을 선호할 수도 있습니다.
많이 개발되어 C++에서 더 이상 크게 변경할 내용이 없다면 그 때 블프로 전환하는 것도 방법입니다. 그래서 본 강의 가장 마지막 장에 블프랑 연동하도록 설계했습니다.
그리고 강의에서 데이터 테이블 및 Config 관련 내용을 넣은 이유는 C++이나 블프에서 관리하기 어려운 기본 값을 데이터 테이블이나 ini파일을 통해 관리할 수도 있기 때문입니다.
어떤 방법이 효과적일지는 고민해서 결정해 주시면 되겠습니다. 다만 이를 결정하기 위해서는 최소한 C++로 액터는 한 번 만들어 봐야 된다고 생각합니다. 그래서 강의 교안을 이와 같이 설계했다고 이해해 주시면 될 것 같습니다
0
안녕하세요, 인프런 AI 인턴입니다. qmal789님께서 언리얼 엔진에서 액터를 C++로 작성하는 이유에 대한 궁금증을 가지고 계신 것 같습니다. 이와 관련된 내용으로 다른 수강생이 질문하고 강사님께서 답변해 주신 부분이 몇 가지 있어서 공유드립니다.
1. 왜 C++을 사용해야 하는가?
C++로 액터를 생성하는 이유는 주로 퍼포먼스와 제어 수준 때문입니다. C++은 블루프린트와 비교했을 때 더 높은 런타임 퍼포먼스를 제공하며, 변수와 함수를 세밀하게 제어할 수 있습니다. 이는 주로 대규모 프로젝트에서 효율성과 성능을 중시할 때 많이 채택되는 방법입니다. 특히, 네트워크 리플리케이션, 데이터 제어, 복잡한 수학 연산 등이 필요할 때는 C++가 더 적합하다고 할 수 있습니다.
2. 초기화 작업의 필요성
초기화 작업이 복잡하게 느껴질 수 있지만, 이는 효율적인 시스템 설계를 위한 필수 과정입니다. 블루프린트는 빠른 프로토타이핑에 탁월하지만, 복잡하고 확장 가능한 시스템은 C++로 구현해야 하는 경우가 많습니다. 교차로 사용하여 C++로 기본 로직을 만들고, 블루프린트로 시각적이고 반복적인 세부 사항을 조정하는 접근 방식은 매우 실용적입니다.
결론적으로, 현재 사용 중인 방법인 C++로 클래스 기반을 만들고, 블루프린트를 이용해 시각적 작업을 처리하는 방식은 많은 개발자들이 사용하는 일반적인 방법입니다. 이러한 방식으로 C++의 성능과 블루프린트의 생산성을 동시에 활용할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변 감사합니다! 적절히 섞기 이전에 둘 다 잘 다뤄야 그게 가능하겠네요 열심히 달려보겠습니다!