진짜로땜빵하라고하시면해야겠지만
정말할시간도없고생각이전혀안나서
한탄만내뱉어도날짜는가까워지니까
개같은드립으로넘겨버릴망상만하다
발표할내공이없어엉엉울고싶을때면
자기만모르는언리얼바보같은질문들
해 강
가되는시간
진짜로땜빵하라고하시면해야겠지만
정말할시간도없고생각이전혀안나서
한탄만내뱉어도날짜는가까워지니까
개같은드립으로넘겨버릴망상만하다
발표할내공이없어엉엉울고싶을때면
자기만모르는언리얼바보같은질문들
은 개뿔
시간없으니 막쓸꺼야
일단 내 말 좀 들어봐
1. 누구나 입사할 땐 잘하겠다고 해
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
3. 그러나 곧 내공이 딸리는걸 느껴
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
3. 그러나 곧 내공이 딸리는걸 느껴
4. 하루종일 삽질하면 어떻겠어
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
3. 그러나 곧 내공이 딸리는걸 느껴
4. 하루종일 삽질하면 어떻겠어
5. 근데 그게 엔진 버그야
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
3. 그러나 곧 내공이 딸리는걸 느껴
4. 하루종일 삽질하면 어떻겠어
5. 근데 그게 엔진 버그야
6. 근데 자세히 보니 또 아냐
1. 누구나 입사할 땐 잘하겠다고 해
2. 언리얼로 만들자면 더 그러겠지
3. 그러나 곧 내공이 딸리는걸 느껴
4. 하루종일 삽질하면 어떻겠어
5. 근데 그게 엔진 버그야
6. 근데 자세히 보니 또 아냐
7. 이제 뭐가 뭔지 모르겠어
알아
다 아는게 없어서 그래
나만 그래?
세상에서
내가 제일 못 하는 거야?
잘해서 좋겠다…
그냥
물어보기 쪽팔린
바보같은 질문들
쓸 수 있는 만큼
써볼게
엔진이
계속 업데이트중이라
바뀌거나
내가 틀릴 수도 있어
그래도
뭐 어쨌든 해볼게
4.7 Preview6 이야
찝찝한건
Document, AnswerHub
Tutorial, Wiki
등을 참고해
그러니까…
아아아
아아아
이제 시작!
언리얼은 비싸지 않나
1. 한달만 결재해도 사용 가능(업데이트는 안됨)
2. 한 아이디로 돌려쓰면 더 저렴하…
3. 소스는 github 이용
4. 소스복사도 에픽에서 괜찮다 했음
언리얼3와 4의 차이점
왼쪽이 언리얼3
오른쪽이 언리얼4
3에서 발전한 것이므로 3에 익숙하다면 좀더 편하긴 하다
무겁지 않나
툴 자체는 무거운 느낌이 있지만,
게임 자체는 꽤 빠르게 나온다
사양이 낮으면 에디터설정에서 뷰포트품질을 변경
다만 패키징 같은건 아직 부족한듯
유니티처럼 안쓰는걸 빼거나 하는걸 모르겠다
언리얼4 개발은 뭐로 하나
C++, 블루프린트
Visualstudio2013 이상
Community 버전 설치해서 하면 됨
언리얼 책은 없나요
왼쪽은 버전 4.2에 내용도 부실
오른쪽은 이번주에 나와서 못 봤음
아티스트용 ArcVR이란 책은 건축VR제작 가이드북인데
평이 좋지는 않은듯
언리얼 화면을 보여줘
1.탭바, 메뉴바 6. 씬 아웃라이너
2.툴바 7. 디테일
3.모드
4.콘텐츠 브라우저
5.뷰포트
설치 후 준비할 것들
설치 후 EngineExtras에 가면 유효한 확장들이 있다
UnrealVS, VisualStudioDebugging는 c++ 작업 때
Android는 빌드를 위해 설치
EngineBinariesDotNET에 SwarmAgent를 켜고 네트
워크를 지정해주면 연결된 pc들이 분산빌드헤 더 빠르게
비주얼스튜디오에서 열려는데 프로젝트 파일이
없어요
프로젝트가 있는 폴더의 언리얼프로젝트 파일을 오른쪽 클
릭해보면 Generate Visual Studio project file 메뉴
혹은 프로젝트에 코드 추가를 누르면 메뉴가 생김
클래스 상속
언리얼은 자료형, 라이브러리등이 모두 내장되있다
엔진의 관리를 받고 싶다면 언리얼 클래스를 상속받아야
한다
NONE으로 만들수도 있지만, 엔진의 관리에서 벗어난다
그럴땐 상단을 누르고 Object가 가장 무난
클래스 심플예시
첫줄의 저작권 명시는 포함되야 한다 에러난다
클래스이름.generated.h는 헤더에 명시되야 한다
GENERATED_BODY()도 마찬가지
CLASS이름 다음에 정의된 것은 프로젝트 코드란 것뿐
참고로 저렇게 아무것도 없으면 빌드 안된다
내부 자료형
언리얼 내부에서 재정의해 사용한다
기본 int형은 컴파일러에 따라 크기가 변경될 수 있어 사
용하지 않는다
오브젝트와 클래스
쉽게 말해서
오브젝트는 씬에 포함된거
클래스는 안 포함된거
문자열
문자열에는 stirng, name, text가 있다
String은 가장 자유자재로 쓸 수 있는, string 그거다
Name은 내부 문자열조작을 할 수 없다 대신 가장 빠르고
메모리도 효율적 대소문자 구분을 안 한다, 해시 테이블
Text는 로컬라이징에 쓴다
문자열 변환
name->text 가능, text의 자동현지화 안될 수 있음
string->name 가능, name이 대소문자구별을 안해 위험
string->text 가능, text의 자동현지화 안될 수 있음
Text->string 가능, 손실 위험
Text->name 불가능, text->string->name 식
블루프린트는 무엇인가
노드기반, 3 키즈멧의 발전형
큰 차이는 기존에는 레벨이 변경될 경우
기능이 똑같아도 다시 만들어줘야 했다
블루프린트는 상관없이 쓸수도, 키즈멧처럼 쓸수도 있다
내부에 보면 아직 키즈멧을 인크루드해 쓰고 있다…
블루프린트 변수형
블루프린트에서 사용 가능한 데이터 타입
C++과 블루프린트의 연동은 중요하다
int32, float…
uint32 같은건 안됨
왜 블루프린트를 놔두고 c++?
속도는 c++이 더 빠름
노드가 많아 질수록 관리가 어려워짐
적절한 분배가 중요함
코딩 스탠다드
에픽의 가이드라인은
작성하는 사람보다 읽는 사람을 염두한다
Public이 먼저 선언된다
이름은 명확하게, 서술적으로 한다 축약은 가능한 피한다
‘코딩 표준’ 문서는 읽어보는게 좋다
매크로
함수에는 UFUNCTION,
변수는 UPROPERTY로 지정해줄 수 있다
블루프린트 사용여부, 엔진 디테일패널노출 여부등
옵션들은 다 적을 시간이 없다
싱글턴
싱글턴 클래스는 어떻게 쓸 수 있을까
싱클턴 지정이 있지만 블루프린터용이다
엔진 내부를 보면 그냥 static으로 쓴다
아게 싫다 해서 일반 c++하듯 하다보면
this가 변화하는 심오한 세계
가비지 콜렉션
언리얼 내부에는 가비지 콜렉션이 돈다
주의할 점은 UPROPERTY 레퍼런스를 지정해주지 않으면
가비지가 순삭시켜버린다
Class* SkillObject 이런식하면 날아가버림
TWeakObjectPtr<>로 유효성 검사를 할 수 있음
생성자
C++의 생성자를 주의해야 한다
엔진일 구동될때 포함된 모든 c++클래스의 생성자가 호출
된다
블루프린트를 열때도 마찬가지로 호출된다
게임을 플레이해서 액터가 스폰될 때 호출 된다
AMyActor::AMyActor(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
// Class constructor/initialization code
}
생성자2
C++의 생성자, 블루프린트의 컨스트럭션, beginplay
생성자는 앞서 말한것처럼 수시로
컨스트럭션은 게임이 시작될때.
Beginplay는 액터가 스폰될때 호출된다
순서가 꼬인다는 제보가 있으나 확인되지 않았다
예상
내부에 포함된 모든 요소들을 초기에 콘텐츠 브라우저용으
로 생성해 레퍼런스를 반환해주는식
로컬 static의 경우는 아직 테스트를 제대로 못해봤다
블루프린트와 c++ 이벤트
블루프린터에 이벤트를 날리고 싶다면
BlueprintNativeEvent지정을 해준다
주의할 점은 Implementation을 만들어줘야 한다
근데 어제 preview7 업데이트하고 이거 자꾸 추가가 안돼
망했어…
데이터테이블
엔진 내부에서 블루프린트->구조체를 만들고
임포트로 csv파일을 읽어서 구조체를 지정해줄수 있다
엑셀파일이 변경됐을 경우 마우스 오른쪽버튼을 눌러보면
리임포트 메뉴가 있다
자동으로 변경된걸 읽는다
데이터테이블2
일반값은 맞춰주면 되지만, 오브젝트나 클래스를 테이블에
넣으려면 아리송해진다
데이터 주도형 게임플레이 요소라는 문서로 찾을 수 있다
똑같이 따라하면 클래스나 오브젝트 데이터가 안 들어온다
주소를 제대로 해석하지 못 한다
데이터테이블3
데이터는 TypeName’path’형태로 저장된다
오브젝트형으로 받을 경우는 콘텐츠브라우저에서 레퍼런
스 복사를 하자
클래스형의 경우 블루프린트로 들어가면 클래스타입의 레
퍼런스를 볼수 있다 보통_C가 뒤에 붙는다
데이터테이블4
C++에서 테이블 구조체를 만들때
FTableRowBase
랜더링 특징
물리기반랜더링
메테리얼로 보자면
Specular 관련된게 사라짐
Metallic, Roughness등으로 조작
파티클
파티클 시스템이 좋음
UNITY보다 좋음
단점으로 메뉴가 너무 많아서 짜증난다
라는 의견을 받았다
파티클은 아직 잘 몰라서…
애니매이션 블루프린트, 비헤이비어 트리
블루프린트로 기존의 상태머신 지정을 해줄 수 있음
그러나 조건이 많아질수록 관리하기 힘들어짐
비헤이비어 트리
비헤이비어 트리는 블랙보드에서 값을 가져온다
selector
데코레이터로 조건들을 추가해준다
서비스
task
gamemode
각각의 레벨 한번에 한개
gamestate
pawnclass
hudclass
controller
controler
모든 액터는 콘트롤러 아래
벌써 시간이
다됐어
질문

[15.02.14] 진짜로땜빵하라하시면해야겠지만할시간도없고아무생각도없을때면어쩌면좋지라고소리쳐봤자아무도대답안해줄꺼고어쩔수없이이렇게저렇게어4신입개발자를위한바보같은질문들