====== Unit ====== * 1 unreal unit = 1cm ====== 뷰포트 UI ====== ref : [[https://docs.unrealengine.com/latest/KOR/Engine/UI/LevelEditor/Viewports/ViewportControls/index.html]] | N | 스냅 | | Alt + 드래깅 | 복사 | | Alt + Shift + 드래깅 | 복사하는 동안, 카메라가 커서와 같이 움직이도록 | | X | 컨텐츠 브라우져에서 필터 기능 삭제 | ^ 뷰포트에서 이동 ^^ | Left-Button click & mouse moving \\ 마우스 왼쪽 버튼 누른 상태로 마우스 움직이기 | 전후이동, 좌우 회전 | | R-Button click & mouse moving \\ 마우스 오른쪽 버튼 누른 상태로 마우스 움직이기 | 제자리에서 주위 둘러보기 | | M-Button click & mouse moving \\ 마우스 가운데 버튼 누른 상태로 마우스 움직이기 | 상하,좌우 이동 | | L and R-Button click & mouse moving \\ 마우스 좌우 버튼을 모두 누른 상태로 마우스 움직이기 | ::: | ^ WSAD moving ^^ | L or M or R-Button click 상태에서 WSAD로 FPS 이동 가능 || | E | 위로 이동 | | Q | 아래로 이동 | | C | 카메라 확대 (zoom-in) | | Z | 카메라 축소 (zoom-out) | ^ 마야스타일 ^^ | 오브젝트 선택 후, F | 선택 오브젝트를 중심으로 카메라 이동, 오브젝트 포커싱 | | Alt Key + L-Button click & mouse moving | 선택 오브젝트를 중심으로 텀블링(회전) | | Alt key + R-Button click & mouse moving | 카메라 전/후 이동 | | Alt + M-Button click & mouse moving | 상하좌우 이동 | * Ctrl+R : 실시간 재현 on/off =====평면뷰===== * 휠 : 확대/축소 * R-Button click & mouse moving : 상하/좌우 패닝 * L-Button click & dragging : 오브젝트 선택 =====오브젝트 배치===== * W : 오브젝트 이동 모드로 * content brower : 에서 오브젝선택 후 씬뷰로 갖다 놓기 * 씬뷰에서 마우스 R-Button click. 컨텍스트 메뉴가 보이는데, * 이전에 사용했던 오브젝트를 바로 배치 가능 * 갖다 놓을때 다른 오브젝트가 있으면 바로 붙여주려고 한다.(그런가?) =====오브젝트 이동===== * W : 오브젝트 이동 모드로 * End key : 오브젝트가 바닥에 바로 붙는다. * Ctrl + ~ : 오브젝트 좌표계를 (월드 <-> 로컬) 변경 * 씬뷰에서 오른쪽 상단 버튼에서 지구모양의 아이콘이 (월드 <-> 로컬) 변경 아이콘. =====오브젝트 회전 ===== * E : 오브젝트 회전 모드 * Yaw : z축, 고개를 왼쪽 오른쪽으로 흔들면 * Pitch : 앞뒤 Y, 고개를 위 아래로 흔들면 * 롤 : x축, 고개를 갸우뚱하면 =====오브젝트 스케일링===== * R : 오브젝트 스케일링 =====카메라 이동===== * Shift + 드래깅 : 카메라와 같이 이동 * 뷰포트(씬뷰) 왼쪽 상단의 옵션 메뉴 * 'Lock to viewport actor'에서 라이트/카메라/액터의 시점으로 이것들을 조정할 수 있다. * 이동 후에는 다시 메뉴를 열어서 'Unlock ..' 메뉴 항목 선택 =====컨텐츠브라우져===== * 창열기 : Ctrl + Shift + F * Collections : 즐겨찾기, 자주 사용하는 것을 저장해둔다. * Local : 로컬 pc에만 저장 * Private : 소스저장소에 저장되지만 나만 사용 * 휠/R-Button Click : 위아래 스크롤 가능 ====== 레벨디자인 ====== 단축키 | 바닥에 스냅핑 | end key | | 오브젝트를 스냅에 맞춘다 | Ctrl + End | | 복사 | 오브젝트 선택 + Alt + Drag | | 그룹 | Ctrl + G | | 그룹 해제 | Shift + G | | 반투명 오브젝트 선택 가능 | T key \\ 유리 같은 반투명 오브젝트를 선택할 수 있게 할지 말지 | * 브러쉬 세팅 * 메쉬 변경 가능 - 면 늘리기, 버텍스 변경하기 * 오브젝트 더하기 빼기 * 빼는게 있다.(subtractive) - 일부분을 깍아낼수 있다. * BSP -> Align Surface Planar : 두 오브젝트의 텍스쳐가 연속되는 형상으로 설정 * or 없는 경우, Geometry 섹션에서 같은 메뉴 찾아보기 ===== 그외 ===== 튜토리얼에서 bp 추가와 timeline 추가는 따로 정리하자. 일단 메모. blueprint * 이벤트 체크를 위해서 BoxTrigger 추가 . 이런게 있음. timeline * 애니메이션 처리 Movility * Object Transform : static으로 설정되어 있으면 움직이지 않는다. 또 그외 * 창을 떼어내서 win+leftArrow, Win+rightArrow면 왼쪽, 오른쪽에 달라 붙는다. * 라이트의 표시 반경을 끄려면, 씬뷰의 메뉴, Show -> Advanced -> LightRadius.를 off * 리플렉션 : Modes 창에서 Visual -> Sphere Reflection Capture 를 화면에 갖다 두고 화면을 캡쳐하도록? 상세 사용법은 뭘까? ====== blue print ====== * G: 화면의 기즈모 표시 on/off 블루프린트가 있는 곳 * 레벨 자체 * 또는 오브젝트 * 레벨에 배치된 오브젝트는 레퍼런스를 추가해서 조작한다. * 레퍼런스는 BP 에디터에서 한개 이상 추가할 수 있어서, 여러 부분에서 사용 가능. * BP노드간 연결되늰 와이어에는 색은 사용되는 타입에 따라 색이 다름 | Event Begin Play | 레벨이 실행 되면 | | Enable Input, Disable Input | 입력을 받을 수 있다? | | Toggle Visibility | 보이거나 감추거나 | | Input Key (?) | 어떤 입력을 받는다 | * 라이트 : 오브젝트 -> Transform -> Mobility * Stationary : 미리 만들어진 라이트를 사용하는 것, * Movable : 실시간 라이트 * 노드 사이의 연결 선 끊기 : Alt+Clicking * BP 그래프 편집기에 Get용 레퍼런스 추가 : 컴포넌트 선택. Ctrl + Dragging * BP 그래프 편집기에 Set용 레퍼런스 추가 : 컴포넌트 선택. Alt + Dragging * BP 그룹핑&이름짓기 : BP의 노드들을 여러개 선택 후, C key. 선택된 노드 그룹에 이름 추가. 블루프린트 사이에 통신 * CustomEvent를 추가해서 서로 호출하는 방식 사용 ===== 클래스 BP ===== * Defaults : * Components : * Prefab처럼 여러 오브젝트(컴포넌트)를 묶어서 한개의 클래스 BP를 구성. * Graph : * ConstructionScript : 레벨 에디터에서 작업하다가? * EventGraph : 실제 플레이 중에 실행되는 BP ===== 변수 ===== * 변수 노드를 직접 추가할 수도 있고 * 변수 노드를 사용하는 노드를 추가해서 , 변수 입력을 원하는 항목을 클릭 후 화면으로 끌어보면 자동으로 변수를 추가해주기도 한다. 변수 타입 * rotator : yaw(z), pitch(y), roll(x) * 변수 타입이 다른 경우 캐스팅이 가능하다. 캐스팅된다는 노드가 추가됨. * 구조체용 변수 타입도 사용 가능. * 구조체의 특징은 'break'로 각 요소를 각각 사용할 수 있다는 장점. * object : 씬에 오브젝트가 이미 있고 사용하고 싶으면 이걸 * class : 씬에 없는데 추가하려고 할때는 class * Enum : 딱히. Enumerators 입력창에서 enum 항목 추가. asset에서 블루프린트 폴더에 추가한다. * case with enum 하려면 모든 enum 항목에 대해서 노드를 만들고 연결해야 하는데.. 직접 해보고 다시 정리하자. * Get, Set * 숫자같은 일반 변수, 뭔가 작업 후에 Set을 다시 해주지 않으면 값이 반영되지 않는다. * Array * Array의 아이템은 모두 같은 타입이어야 함 * 사이즈가 동적임 * 0-base 인덱스 * Array에 연관되는 블루프린트 노드는, Array 노드를 선택해서 화면으로 끌어놓고 '관련항목'이 떳을때 * 일반적인 경우, * Utilities -> Array -> 이하의 함수 중에 선택. 리스트에 대한 일반적인 메소드들. * 녹색 함수 : 값을 사용만 * 블루 함수 : Array를 변화 시킴 * 반복 (Flowcontrol) * ForEach .. 또 뭐드라. * 리턴값이 Array인 경우 ===== 루프 ===== 팝업메뉴에서 'loop'로 검색해서 쓸 수 있는 노드 선택. (ForLoop 같은거) FormatText * 'Format' 항목에서 문자열 입력할때 대괄호({})에 키워드를 입력하면 'FormatText' BP노드에 자동으로 키워드가 추가된다. * Format : "Test String {index}" 같이 입력하면 'index'항목이 추가됨 ForLoopWithBreak * 루프 실행 중에는 break가 먹지 않으므로, * 'Loop body' 의 노드 흐름 중에 break 조건을 검사하는 기능을 추가한다. * 'Loop body' 의 연결 노드 (시작노드) 'Branch' 노드를 걸고, 조건을 검사하는 부분을 연결시켜 중단될 수 있게. ForEach * array같은 것의 항목에 대해서 루프. * 콜렉션을 순행하는 것이므로 시작, 종료에 대한 조건이 필요없다는 것. ===== 디버그 ===== * 노드 선택 후, 마우스 우클릭 -> 브레이크포인트 추가 * 플레이하면 브레이크포인트에서 멈춘다. ====== 트랜스폼 ====== ===== 요,피치,롤 ===== * 요(Yaw) : 고개를 왼쪽 오른쪽으로 흔들면 * 피치(Pitch) : 고개를 위 아래로 흔들면 * 롤(Roll) : 고개를 갸우뚱하면 ====== 팁들 ====== * RandomStream : * 일반 랜덤을 사용하면 값이 무작위로 매번 바뀌는데 한번 내려 받은 값을 쭉 사용하려고 하면 * Stream 노드를 추가하고 랜덤 값을 Stream에서 가져오면 한번 내려 받은 값을 그대로 쭉 사용한다.