본문 바로가기

Programming

UI Animation 자동화 1. 목적- UIAnimation을 Unity의 Ngui Tween처럼 From 부터 To 로 값을 설정하고 그래프에 의해 이동되도록 툴을 수정.- 저장 된 애니메이션을 UI 상호작용 발생 시 자동으로 재생 (Content Widget이 만들어지면 부모의 Widget에 애니메이션 내용을 등록하여 인터렉션 발생 시 자동 재생)- 디자이너가 만든 애니메이션 바로 Play하며 확인 가능(특정 하나 혹은 전체 동시 플레이)- 설정이 완벽하게 된 Widget을 Template으로 만들어 여러 방면에서 활용하도록 하는 기능 (Template을 Template으로 재 설정도 가능) 2. UI 자동 인터렉션 3. UI Animation tool 및 Preview tool 4. Ctrl + Drag를 통한 애니메이션 값.. 더보기
언리얼 커스텀 플립북 매터리얼 (unreal custom flipbook material) 언리얼에서 제공하는 기본 플립북 매터리얼을 쓰는 경우 모바일에서 타임이 제대로 들어가지 않아 이미지가 제대로 나오지 않을 수 있다. 그러한 문제점을 발견하고 해결하고자 플립북에서의 타임을 밖에서 얻어오도록 수정하였다. 매터리얼 커스텀 노드 코드123456789float2 Output_UV;float2 TimeVector;float2 Temp;float2 Temp2;TimeVector= float2(frac(TickTime), frac(TickTime));Temp = floor((float2(VCount*UCount, UCount) * TimeVector)) / float2(VCount,UCount);Temp2 = UV / float2(VCount,UCount);Output_UV = float2(Temp... 더보기
블루프린트에서 만든 변수 가져오기 C++ 위주로 만든다 하더라도 블루프린트가 가지고있는 장점이 있기 때문에 들어가야 할 경우가 있다 더군다나 다른 파트사람이 블루프린트 상에서 만든 변수가 있을 경우 C++에서 새로만들거나 블루프린트 코드를 고쳐서 사용해야 하는데( 예. 디자이너가 작업한 UI애니메이션 ) 아래의 코드는 블루프린트에서 만들어진 변수를 C++에서 가져오는 방법 중 하나이다. 12345678910111213141516171819202122232425// 블루프린트 변수 가져오기void GetBluePrintVariable(FString VariableName){ // 변수의 이름으로 검색하여 UProperty 를 가져온다. UProperty* Prop = GetClass()->FindPropertyByName(*Variable.. 더보기
InstancedStaticMeshComponent Atlas Texture 사용하도록 Engine 코드변경하기 언리얼 엔진의 경우 InstacedStaticMeshComponent를 통해 한번에 여러 메시를 그릴 수 있는데 튜토리얼들을 보면 다 같은 텍스쳐를 사용하는 경우만 있다. 마인크래프트 같은 샌드박스 게임을 만들 경우 모래, 흙, 유리, 물, 용암 등의 여러 텍스쳐가 필요한데 이를 Atlas로 묶어서 할 수 있도록 언리얼 엔진을 바꿔보려한다. 우선 엔진 소스코드의 InstancedStaticMeshComponent.h 파일을 열어 코드를 수정해준다. InstancedStaticMeshComponent.h 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616.. 더보기
언리얼 빌드에러 error : One or more of the modules specified using the '-module' argument could not be found error : One or more of the modules specified using the '-module' argument could not be found 엔진 빌드를 하는데 이 에러가 난다면 에디터를 종료하고 빌드하면 해결된다. 에디터에서 "Hot Reload"를 하기 때문에 생기는 빌드에러이다. 더보기
APK빌드는 잘 되었는데 DLC빌드가 안될 경우 Project.Cook: Waiting a few seconds for the server to start... Project.Cook: ********** COOK COMMAND COMPLETED ********** Project.CopyBuildToStagingDirectory: ********** STAGE COMMAND STARTED ********** Program.Main: ERROR: AutomationTool terminated with exception: ERROR: GetBuildPlatform: No BuildPlatform found for Android Program.Main: AutomationTool exiting with ExitCode=1 (Error_Unknown) BUI.. 더보기
언리얼 빌드에러 Unsupported class version number Unsupported class version number [52.0] (maximum 51.0, Java 1.7) 에러가 날 경우 https://sourceforge.net/projects/proguard/files/proguard/ 페이지에서 최신버전의 Proguard를 다운받아 AndroidSDK폴더내에 있는\tools\proguard\에 덮어씌워 업데이트해주면 해결. 더보기
UGUI 아틀라스 생성 Atlas 패키징을 할 이미지들을 선택하시면 인스펙터에 이러한 화면이 뜰겁니다. Texture Type 을 Sprite 로 한 후 Packing Tag가 Atlas이름 같은건데 구분이 가능하도록 정해놉니다. 하시는 프로젝트에 따라서 그 외 옵션을 추가설정 한 뒤 상단 메뉴의 Window -> Sprite Packer 를 클릭하여 Sprite Packer를 열어줍니다. 스프라이트 패커 왼쪽 상단에 보시면 Pack 이라는 메뉴가 있는데 눌러서 이미지들을 패킹 해줍니다. 패킹이 된 후 보시는 봐와 같이 View atlas 쪽에 만들어진 Atlas가 나옵니다. 보시면 같은 Atlas이름에 Group 0 1 2 숫자가 보이는데 이런 경우는 알파사용 여부, 필터모드, 밉맵생성 기타등등의 형식이 다를 경우 같은 형식.. 더보기
UGUI를 사용한 캐릭터 리스트 UI (소스코드) 우선 UI추가를 위해 캔버스를 추가해줍니다. 설정 한 캔버스 인스펙터 입니다. UI용 카메라에 찍히도록 설정하기 위해 RenderMode를 Screen Space - Camera로 변경 후 Render Camera에 UI를 찍을 카메라를 넣어줍니다. 저는 UI가 1280 x 720 사이즈로 나오게 하기 위해 Canvas Scaler 에서 저 설정대로 해주었습니다. UGUI는 캔버스 하나당 메시가 생성되기 때문에 드로우콜을 줄이기 위해 캔버스는 하나로 쓰도록 하고 캔버스 아래에 Panel을 추가해 그 밑에 UI 작업을 한 후 프리팹으로 묶어 사용하도록 하겠습니다. 리스트를 표기할 스크롤 뷰를 추가해줍니다. 스크롤바가 필요하다면 Scroll Rect에서 삭제하지 않으시면 되지만 저는 필요가 없음으로 제거해놨.. 더보기
Template을 이용한 Data 저장 Component 만들기(소스코드) 임의의 데이터를 저장하고 불러와야 할 경우에 오브젝트 내에 컴포넌트로 넣어줍니다. 템플릿으로 만들었기 때문에 다양한 타입들의 변수를 넣을 수 있으며, 사용자가 입력한 KeyName 과 템플릿의 타입을 조합한 것을 Dictionary 에서 Key로 가지고 있기 때문에 잘못된 키이름이나 잘못된 타입으로 가져올 경우 default(T)를 반환하게 하였습니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344using UnityEngine;using System.Collections.Generic;using System.Text; public class CustomDataConatiner : MonoBehaviour{ .. 더보기