2Bbear's knowledge workshop

caution!

this document made in 3D Max 2017

----------------------------------------------------------------------------------------------------------------------------------


3d max를 켭니다. 

상자도 하나 만들어 줍니다.



오브젝트에 오른쪽 클릭 후 맨 밑의 Convert to : -> Convert to editable Poly 를 누릅니다.



그뒤 화면을 키우고 , 오른쪽 command window에 새로운 파라미터들이 생겨났습니다.



일단은 선이 보이지 않으니 F4버튼을 눌러서 선을 보이게 합니다.


--------------------------------------------------------------------------------------------------------------------------------

-vertex-


Selection 파라메터에서 vertex를 선택합니다.

그럼 그 후 오브젝트에 점들이 생겨납니다.


마우스로 클릭해서 누를 수 있고 ctrl을 누르고 다른 점들을 누르면



추가로 점들을 선택할 수 있습니다.



Edit Vertices 파라메터의 Remove를 누르면 



점이 사라집니다.



점 하나를 길게 빼봅니다.



Edit Vertices - Break를 누르면 점들이 분할 됩니다.



심심하니 Extrude도 눌러서 점들을 벌려봅니다.

extrude는 점들을 튀어나오게 합니다.



저기 가운데에 멀쩡히 있는 점들 중 한 개를 선택해 Chamfer를 누르고 드래그하면



저렇게 점이 늘어납니다.



점이 너무 늘어났으니 Target Weld로 이어 주고 싶은 점들을 연결해 줍니다.




------------------------------------------------------------------------------------------------------------------------------












































































































































caution!


this document is made in 3D max 2017

-----------------------------------------------------------------------------------------------------------

설치는 너무나 쉬움(?)

install is so easy(?) , find the internet

-----------------------------------------------------------------------------------------------------------



3D Max를 키면 이렇게 화면 구성이 됩니다.

 


먼저 프로그램 속 모든 단위를 자신이 원하는 단위로 변경합니다.


방법은 상단의 Customize - Units Setup 을 눌러줍니다.

please touch the Customize-> Units Setup



누르셨다면 ,이런 창이 뜹니다. 

if you touch that, pop up this window.


그리고 Display Unit Scale 상자의 Metric의 상자를 클릭 후 , 센치미터로 바꿔줍니다.

and touch Metric Box in Display Unit Scale Box after that, Change to 'Centimeters'.




그 다음에 맨 위 상단의 System Unit Setup을 눌러줍니다.

then , touch the top button 'System Unit Setup'



누르셨다면 ,이런 창이 뜹니다. 

if you touch that, pop up this window.




이렇게 변경 해주세요

change this to this picture.


---------------------------------------------------------------------------------------------------------------------------------

이제 부터 화면 전환에 대해 설명합니다.

now , i explain the Change the Main View window



[화면 이동]           :: 휠 버튼 클릭 후 드래그

move to window   :: touch wheel button + drag


[화면 회전]           :: Alt + 휠버튼 드래그

rotation window    :: Alt + wheel button drag


[줌 인,아웃]          :: 휠 굴리기

zoom in/out         :: rolling the wheel key


[세밀 줌인 아웃]    :: Ctrl + Alt + 휠 앞 뒤 드래그

detailed zoom in/out :: Ctrl + Alt + Wheel drag


[원점으로 돌아가기] :: z 누르기

Back to the starting point  :: touch the 'z' key


[Main 화면 키우기] :: Alt + W 

(이 버튼은 현재 보고 있는 화면을 확장합니다.)

increase Main Window size  :: Alt + W 

(this shortcut key is increase the now looking thing)



-------------------------------------------------------------------------------------------------------------------------------

이제 부터 기본적인 short cut key를 설명합니다.

and now, i explain the basic shortcut key.


w키는 이 물체의 x,y,z 위치를 설정할 수 있습니다.

w key is can the set x,y,z Location this Object



e 키는 이 물체의 회전을 설정할 수 있습니다.

e key is can the set rotation this object



r 키는 이 물체의 크기를 설정할 수 있습니다.

r key is can the set scale this object



-----------------------------------------------------------------------------------------------------------------------------------


추가 상식



각 w,e,r 키를 누를 때 저 붉은 동그라미 안에 수치가 변하는데 저기의 수치를 바꿔서 물체를 조정합니다.

마우스로 할 경우 소수점 이하의 물체로 조정되어지며

설계대로 만들어 지지 않는 결과물을 보게 됩니다.



box를 만들때는


오른쪽 윈도우의 box를 클릭 후 , 나오는 Keyboard Entry의 수치들을 조정 후 

create 버튼을 눌러서 생성합니다.





































































































이 포스팅들은 단순히 앞으로 언리얼을 해 나아가면서 하루 일기를 쓰듯이 써 나갑니다

덤으로 영어 공부도 해볼겸 영어로도 번역 해보니 허접하다 싶으면 댓글로 지적해주세요



caution!!

this document is made in Unreal Ver 4.14

--------------------------------------------------------------------------------------------------------------------------------


언리얼 내부에서 새로운 클래스를 만드려면 file -> 새로운 c++클래스를 눌러야합니다.

if you made New Class for c++, you must touch [File]->make New C++ Class



그 후 부모 클래스를 선택하게 되는데 

부모 클래스라 함은 앞으로 만들 클래스가 상속받을 클래스를 말합니다.

after that must choose parents class in this window

parents class is base class ,now made this class


자신이 만든 클래스 또한 이와 같이 상속을 받을 수 있습니다. 부모 클래스 선택창의 우측 상단에 있는 모든 클래스 표시를 체크 후 자신의 클래스를 찾아 상속을 받을 수 있습니다.

also made class use as a parents class. you can check this [All Class Show] box . and you found you made class   


Actor 클래스 상속 -> 월드에 배치 또는 스폰시킬때 사용하는 클래스입니다.

Actor class inherit -> this parent class is use when world spawn, placement.

Pawn 클래스 상속 -> '빙의'(카메라의 시점이 변경 되거나, 컨트롤러의 주도권이 변경되거나)하여 컨트롤러에서 

입력을 받으려고 할 때 사용하는 클래스입니다.

Pawn class inherit -> this parent class is use when you possession in game object

Character클래스 상속-> World 내에서 돌아다니는 물리법칙을 적용시키거나 움직임을 표현하려 할때 쓰입니다.

Character class inherit -> this parent class is use when you show Character motion or law of physical 




상속이 가능한 다양한 클래스들이 존재합니다만, 그중 Actor 클래스를 선택하고 Next를 누릅니다.

choose Actor class and touch the Next button.



이제 경로와 이름을 설정합니다.

다른 버튼들은 건드리지 않습니다. 그 버튼들은 아직 자세히 모릅니다.

and now write the name , file address

and do not touch another button. i don't know how to work that 


(위 사진은 Actor를 상속 받은 다른 클래스입니다.)

(this picture is Something different class that inherit Actor )


클래스를 만들면 VS(비쥬얼 스튜디오)에 


UCLASS()

class 만든 프로젝트 A클래스명 : public AActor

{

 GENERATED_BODY()


 A클래스명 //constructor 생성자


 virtual BeginPlay() override //가상함수 BeginPlay() 오버라이드


 virtual Tick()override//가상함수 Tick() 오버라이드

}


이런식으로 구성이 되어 있습니다.


When you create a class in unreal . must show up this things in VS(Visual Studio)


생성자의 경우 오버로드가 불가능합니다.(왜 인지는 모르겠습니다.)

또한 오버라이딩도 불가능합니다.(왜 인지는 모르겠습니다.)

constructor be unalbe to do overload ( i don't know why that unable)

also constructor be unalbe to do overriding


BeginePlay()는 해당 Class가 World에 출연할때 한 번만 불려지는 메소드입니다.

Tick()은 매 프레임마다 호출되어지는 메소드입니다.

BeginePlay() is when this class spawn in World , this method is calling once

Tick() is calling every frame


두 메소드 역시 오버로드가 불가능하다고 생각합니다.

그러나 오버라이딩은 가능합니다.

i'm think that these method is also unalble to do overload

but these method is can be overriding


--------------------------------------------------

생성자constructor


생성자의 내부에 보시면 PrimaryActorTick.bCanEverTick = true; 라는 문장이 있는데

이 문장은 Tick메소드가 매 프레임마다 호출되는걸 결정하는 문구입니다.

false로 두면 Tick메스드가 호출되지 않습니다.

if you see the inside of constructor. you can find [PrimaryActorTick.bCanEverTick = true; ] sentence.

this sentence is set the call Tick method each flame .

set false is not working Tick method

set true is working Tick method each flame.


생성자는 주로 Component를 이용 할 때 사용합니다.

연결시에 생성자를 이용해서 연결합니다.

constructor is use, to linking the Component



--------------------------------------------------


--------------------------------------------------

BeginPlay


BeginPlay 내부에는 Super::BeginPlay(); 라는 문구가 있습니다.

이 뜻은 현재 클래스의 부모클래스에 있는 BeginPlay() 메소드를 실행시켜라 라는 의미입니다.

결론적으로 저 문구는 AActor 클래스의 BeginPlay메소드를 실행시키게 됩니다.


보통 BeginPlay 는 현재 클래스의 초기화 작업에 이용되어집니다.

--------------------------------------------------


---------------------------------------------------

Tick


Tick의 내부에도 Super::Tick()라는 문구가 있습니다.

역시 현재 클래스의 부모 클래스인 AActor의 Tick메소드를 실행시키라는 의미입니다.


Tick은 주로 이 오브젝트의 구동에 이용되어집니다.

연산은 되도록이면 하지 않도록 합니다.

많은 시스템 자원을 잡아 먹게 됩니다.

---------------------------------------------------














































































caution

this document is made in Unreal Ver 4.14

----------------------------------------------------------------------------------------------------------------------------

나는 언리얼 안에서 c++클래스를 만들었다.

그 후 변수를 만들었다.

i made C++class in Unreal Engine.

and  make variable.


불 형태의 변수 (BOOL이라고 치면 컴파일 안된다.)

bool for boolean values (NEVER assume the size of bool). BOOL will not compile.


TCHAR형태의 캐릭터 변수

TCHAR for a character (NEVER assume the size of TCHAR).


unit8의 변수, 이건 언사인드 바이트를 위해 만들어졌다.

uint8 for unsigned bytes (1 byte).


int8의 변수는 일반적인 byte를 위해 만들어졌다.(1byte의 크기를 가졌다.)

int8 for signed bytes (1 byte).


unit16의 변수는 언사인드 shorts를 위해 만들어졌다.(2byte의 크기를 가졌다.)

uint16 for unsigned "shorts" (2 bytes).


int16의 변수는 shorts를 위해 만들어졌다.(2byte의 크기를 가졌다.)

int16 for signed "shorts" (2 bytes).


unit32의 변수는 언사인드 int를 위해 만들어졌다.(4byte의 크기를 가졌다.)

uint32 for unsigned ints (4 bytes).


int32는 일반적인 int를 표현하기 위해 만들어졌다.(4byte의 크기를 가졌다.) 이건 평소 다른 언어에 쓰던 Int와 똑같다.

int32 for signed ints (4 bytes).


uint64는 언사인드 quad word를 다루기 위해 만들어졌다.(8byte)

uint64 for unsigned "quad words" (8 bytes).


int64는 quad word를 다루기 위해 만들어졌다.(8byte)

int64 for signed "quad words" (8 bytes).


float은 기존의 float과 같다

float for single precision floating point (4 bytes).


double도 역시 기존의 double과 같다.

double for double precision floating point (8 bytes).


PTRINT는 int형태의 포인터를 잡기 위해 만들어졌다.

PTRINT for an integer that may hold a pointer (NEVER assume the size of PTRINT).


-source by Unreal Donument https://docs.unrealengine.com/latest/INT/Programming/Development/CodingStandard/#portablealiasesforbasicc++types



---------------------------------------------------------------------------------------------------------------