언리얼엔진/노노그램
-
[UE5] Bitmap 파일을 작성해서 이미지 파일 생성언리얼엔진/노노그램 2024. 1. 5. 17:53
전에 언리얼 엔진의 OpenCV 플러그인으로 런타임에서 이미지 파일을 생성하고 불러오는 작업을 했다.https://mstone8370.tistory.com/14 [UE5] 퍼즐 진행 상황 기록 기능난이도가 높은 퍼즐은 푸는데 시간이 오래걸려서 일단 상황을 기록해두고 나중에 다시 이어서 하는 경우가 있다. 그래서 퍼즐을 푸는중에 나가면 퍼즐의 마지막 상황을 기록하게 했다. 그렇다mstone8370.tistory.com원래 노노그램 프로젝트는 모바일에서 작동하게 하는걸 목표로 했는데 이 플러그인을 사용한 뒤로 apk파일이 빌드되지 않는 문제가 생겼다.여러 정보를 찾아보면서 컴파일까지는 완료되게 했지만 이후에 Gradle에서 링크 에러가 발생해서 결국엔 실패하게 됐다.원인을 계속 찾아보니 버전이 호환되지 않는..
-
[UE5] 사용자 제작 퍼즐 - 결론언리얼엔진/노노그램 2023. 11. 15. 11:52
지금까지 했던 퍼즐 검증, 서버 통신 외에 퍼즐을 푸는 기능이나 진행 상황 기록같은 것들은 기존의 것을 그대로 이용했다. 추가로 사용자가 퍼즐을 만들 때 퍼즐의 크기를 골라야하는데 이 때에는 기본적으로 제공하는 크기가 있고, 원하는 경우 사용자가 크기를 지정할 수 있게 했다. 최소 크기는 5, 최대는 30으로 제한해놨다. 이렇게 원하는 대로 크기를 지정할 수 있게 해서 아래와 같은 퍼즐도 생성할 수 있다. 작동하는 영상 https://youtu.be/JGXoh67HdxI
-
[UE5] 사용자 제작 퍼즐 - 퍼즐 목록 받아오기언리얼엔진/노노그램 2023. 11. 14. 18:21
마지막으로 사용자가 업로드한 퍼즐의 목록을 불러와서 위젯으로 띄운다.퍼즐의 목록은 위젯의 리스트 뷰에서 목록 뷰를 사용하고, 무한 스크롤을 구현할 것이다. 먼저 무한 스크롤 먼저 구현한다.무한 스크롤의 기본 동작은 어느정도 스크롤이 됐을 때 다음 아이템들을 새로 생성해서 추가하면 된다.중요한 부분은 스크롤이 얼마나 내려갔는지를 확인하는 부분이다.언리얼 엔진 위젯의 리스트 뷰는 목록 뷰 스크롤 시 이벤트에서 스크롤이 얼마나 내려갔는지, 얼마나 남았는지를 알 수 있다. 리스트 뷰에 아이템이 추가될 수록 전체 스크롤 크기는 계속 증가하므로, 특정 값과 Distance Remaining의 값을 비교해서 아이템을 추가할 때를 판단하면 된다.일반적으로는 이렇게 하면 된다. 위 방법을 먼저 알아냈다면 이 ..
-
[UE5] 사용자 제작 퍼즐 - 퍼즐 업로드언리얼엔진/노노그램 2023. 11. 13. 17:30
다음으로 사용자가 퍼즐을 만들면 서버에서 검증하고, 검증에 통과하면 데이터베이스에 저장해야한다. 먼저 기존에 있던 퍼즐을 푸는 기능을 조금만 수정해서 아래와 같이 퍼즐을 만드는 기능을 추가했다. 퍼즐의 전체 크기가 바뀔 때마다 크기를 화면에 맞추는 작업을 하다보니 힌트가 늘어나면 퍼즐이 흔들리는 문제가 있어서 고쳐야 할 듯 하다. 그래도 일단 기능은 제대로 작동하므로 이대로 진행한다. 그 다음 서버를 만들어서 제작된 퍼즐을 검증해야한다. 저번 글에서 장고를 써서 서버를 만들기로 했다. 사실 웹 애플리케이션을 만드는 것도 처음이고, 장고를 써보는 것도 처음이어서 작동만이라도 되게 하는 것을 목표로 했다. 서버의 역할은 크게 두가지가 있다. 하나는 사용자가 제작한 퍼즐을 검증하는 것. 다른 하나는 사용자가 ..
-
[UE5] 사용자 제작 퍼즐 - 퍼즐 검증, 노노그램 Solver언리얼엔진/노노그램 2023. 11. 9. 18:13
제일 핵심 기능인 퍼즐을 검증하는 기능부터 구현하기로 했다.나머지는 이 기능에 맞춰서 구현할 수 있기 때문이다. 노노그램은 풀이 공식이 있다.노노그램에 좀 익숙하면 웬만해선 대부분 아는 방법들이라서 이 글에서는 자세히 다루지 않겠다.자세한건 위키에 나와있다.https://ko.wikipedia.org/wiki/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8#%ED%92%80_%EB%95%8C%EC%9D%98_%EC%A0%95%EC%84%9D 노노그램 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 노노그램 예시 노노그램(영어: Nonogram, 일본어: お絵かきロジック 오에가키로짓쿠[*])은 일본의 퍼즐 게임이다.[1] 각각 적혀있는 숫자를 보면서 숨겨져 있..
-
[UE5] 사용자 제작 퍼즐 - 서론언리얼엔진/노노그램 2023. 11. 8. 18:57
No2g에는 사용자가 퍼즐을 만들어서 서버에 업로드 하고 다른 사용자가 그 퍼즐을 풀 수 있다. 퍼즐을 만들어서 서버에 업로드 할 때 퍼즐을 먼저 검증하는 과정을 거치는데 관심이 생긴 부분은 이 검증 과정이다. 검증은 힌트가 너무 적지는 않은지, 퍼즐을 풀 수 있는지, 중복된 답이 있는지를 검사한다. 그래서 따지고 보면 노노그램 퍼즐을 자동으로 풀어주는 기능이라는 의미가 된다. 제일 관심있는 부분은 퍼즐을 자동으로 풀어주는 알고리즘이지만, 이 기능을 넣으면서 사용자가 퍼즐을 만들고 서버에 업로드 하는 기능도 따라서 만들어 보기로 했다. 사용자가 퍼즐을 만드는 기능을 구현하는 것은 어려운 일이 아니다. 기존의 퍼즐 화면에서 enum으로 퍼즐을 푸는 모드와 퍼즐을 만드는 모드를 구분하고, 퍼즐을 푸는 경우에..
-
[UE5] 퍼즐 진행 상황 기록 기능언리얼엔진/노노그램 2023. 11. 8. 17:23
난이도가 높은 퍼즐은 푸는데 시간이 오래걸려서 일단 상황을 기록해두고 나중에 다시 이어서 하는 경우가 있다. 그래서 퍼즐을 푸는중에 나가면 퍼즐의 마지막 상황을 기록하게 했다. 그렇다면 퍼즐이 진행중이라는 것을 사용자에게 표현해줘야 하는데 이 부분은 모바일게임인 No2g의 방식을 따라했다. No2g에서는 진행중인 퍼즐의 마지막 상황을 퍼즐의 썸네일에 보여준다. 그리고 완료한 퍼즐은 아래처럼 보여준다. 완료한 퍼즐의 결과물을 보여주는 것은 성취감을 느끼게 하는데 필수적이라고 생각해서 이것도 따라해보기로 했다. 목표는 정했으니 구현 방식을 정해야한다. 퍼즐을 완료한 상태는 정해진 답이 있으니 결과물이 정해져있지만, 퍼즐이 진행중인 상태에는 상황에 따라서 달라지므로 동적으로 변경할 수 있는 방법을 고민해봐야한..
-
[UE5] 노노그램 플레이 중 피드백에 관해서 - 5언리얼엔진/노노그램 2023. 10. 14. 12:45
마지막으로 한 줄을 힌트에 모두 맞게 채우면 나머지 빈 칸들을 X로 자동으로 막아주는 기능을 추가한다. 이 기능은 설정에 옵션으로 추가해서 플레이어가 원하는 경우 켜거나 끄게 할 수 있도록 구현하기로 정했다. 그래서 이렇게 생긴 설정 화면을 추가했다. 설정에 관해서는 다른 글에서 다루겠다. 해당하는 줄이 모두 힌트에 맞게 채워져있는지를 확인하는 과정은 이전 글에서 이미 설명했다. 그러한 상황이 발생하면 함수를 바로 반환했는데 이번에는 true를 반환하게 해서 함수의 밖에서 그러한 경우가 발생했다는 것을 알려주게 했다. bool UBoardManager::LineMatch(const FLineInfo& LineInfo, const TArray& Blocks, FLineCheck& OutLineCheck) ..