TIL 2025.01.03 기록
0. 개요
오늘은 과제를 마무리하고, 강의도 듣고.. 하지만 오늘도 대부분 언리얼을 하면서 보냈다.
오늘은 언리얼에만 거의 몰두를 해서 사실상 기록하게 많지도 않고.. 들인 시간은 많은데.. 결과는 아직 몇개 없어서 뭘 적어야할지 고민이다..
우선 과제의 경우 오늘 오전동안 진행해 봤는데.. 코드를 짤 때 구조 설계를 어떻게 해야할지 잘 감이 안온다.
단순 기능만 만들면 땡~! 이라는 느낌으로 만드는 것은 쉽지만.. 객체 지향적이게 만들고, SOLID 원칙에 의거해서 구조를 짜고, 또 나중에 확장성까지 고려해서 코드 구조를 짜고 들어가는게 아직은 너무 어렵게 다가온다..
그동안 코드를 짜면서 새로운 기능을 구현할 때 기존 코드를 고쳐야할 때가 은근 있어서서 필요성을 많이 느꼈다..
특히 모듈화 같은걸 어떻게하고, 인터페이스는 어떻게 만들고... 이런게 너무 어려운것 같다..
따라서 이번 언리얼 캠프의 부가적인 목표를 하나 더 설정했다.!
객체 지향적인 프로그램 설계를 해서 프로젝트를 진행하기이다..!
목표를 얼마나 잘 이루어낼 수 있을지 모르지만.. 꼭 달성하고 싶었다.
그리고 언리얼의 경우 현재 레이저 퍼즐을 구현하기 위해 분투하고 있었다.
물론.. 중간에 크리스탈 머티리얼을 만들려고 시간을 투자하기도 했고.. 강의를 보면서 만든 레이저가 이상해서 분석하는데에도 꽤 시간이 걸렸다..
또, 강의를 들으면서 언리얼에서 처음 사용하는 기능들이 많이 있었기 때문에 주말간에는 이부분을 공부해야할 것 같다.
1. 플랫포머 레이저 게임 구현
어제 작업에 이어서 반사각 입사각으로 레이저의 방향을 틀어주는 거울 액터와 지정된 방향으로 레이저를 보내는 박스 액터를 만들었다.
해당 작업은 유튜브 강의를 보고 진행했는데, 함수를 만드는 방법, 블루프린트 클래스 인터페이스, 노드 접기, 검증된 Get으로 변환, 배열 사용해보기 등 간단하고, 소소하지만 다양한 것들을 접하고 직접 사용해볼 수 있었어서 너무 도움이 되었던것 같다.
특히 for each loop가 최적화가 나쁘기로 소문이 자자하던데.. BP로만 만들다 보니 어쩔 수 없이 썼었다.
하지만 아직까지는 생각보다 잘 돌아가서 다행이라 생각했다.
자 기능은 만들어 졌으니... 이제 퍼즐을 만들 시간이다... 저 공간을 어떻게 개조해 레이저 퍼즐을 만들지 좀 고민해보아야겠다..
2. 언리얼 크리스탈 머티리얼
레이저가 발사되는 액터를 뭐로 설정하는게 좋을까.. 고민을 하다가 뭔가 수정에서 빛이 나오는 느낌!이 좋을것 같았다.
약간 맵 자체사 사원같은 거면, 스포트 라이트 같은걸로 빛을 받게하고, 그 빛이 모여 수정에서 레이저가 나오는..! 그런 상상도 했지만 아쉽게도 작업중인 맵은 너무 거리가 멀다 ㅋㅋㅋㅋㅋ
크리스탈이 이쁘게 나와서 마음에는 들지만.. 음.. 뭔가 맵의 분위기에는 안어울리는것 같아서 아쉽긴하다.
하지만 머티리얼을 지금까지 만들면서 처음으로 길게 짜본것 같아서 공부한 기분은 많이 들었다.
또, 이전 프로젝트를 진행할 때 자주 사용했던 uv값이나, 노말값 등등 다양하게 건들여본것 같아서 유익한 시간이었다.
<시청한 강의>
3. 주말간 공부할 목록
1. 블루 프린트 인터페이스
레이저를 만들 때 처음 만들어 봤는데, 그냥 보기만 해서는 잘 모르겠다.
심지어 사용한 것도 해당 인터페이스를 클래스에 붙이면 여러 클래스에서 굳이 함수를 구현하지 않아도 해당 인터페이스 내의 함수를 사용하거나 오버라이딩해서 사용이 가능해보였다.
딱 이정도만 아는거라 주말을 이용해 좀 더 자새히 공부해보아야겠다.
2. 머티리얼에서 사용한 각종 수학 함수
물론, 노말맵,러프니스맵,베이스 컬러등 재질을 만들 때 여러 이미지나 정보가 필요하긴 하지만, 텍스처 외적으로는 모두 수학계산을 통한 uv 좌표 변환을 대부분 많이 사용해서 처음 써보는 언리얼 수학함수들을 알아보고 조금 친숙해질 필요를 느꼈다.
(물론.. 내가 머티리얼 쪽을 공부할건 아니지만.. 당장엔 없으면 만들어 써야하니까.. ㅠ)
3. 인스턴스 머티리얼
어떤건지는 대충아는데.. 정확히는 몰라서 이것도 조금 봐바야겠다.
4. 람다함수
오늘 코테를 풀면서 람다함수를 처음 사용해봤는데 공부하고 싶어졌다..!
5. 체크 포인트 구현하기
6. 퍼즐 완성하기
4. 마무리
오늘 작성한 내용이 많이 빈약한건 알지만.. 결코 헛보내지 않았다...! ;ㅅ;
주말동안 더 열심히 공부해야게따...
다른건 몰라도 꼭 주말안에는 실행파일까지 만들것이다..