전체 글 (688)     블로그 내 검색 검색     글쓰기     관리자 썸네일형 리스트형 How to Rig a Scifi Landing Gear in Blender https://www.youtube.com/watch?v=6BUgz7Lr1IgHow to create a mechanical rig - short Blender tutorial'https://www.youtube.com/watch?v=MvpdGL2eYCUAmature를 추가하고 에디트모드에서 본 3개 추가 마지막 본은 클리어 Parent(ALT-P)포즈모드에서 3번째를 먼저 고르고 2번째를 선택후 SHT-I로 2번째를 IK로 만들어준다 3번째는 컨트롤본이 된다.루트에서 왼쪽으로 3개의 본을 추가한다. 마지막은 겹치이 않게 앞으로 뺀다. ClearParent (ALT-P) 위와 마찬가지고 2번째를 SHT로 선택하 SHT+I로 IK로 만들어준다.이제 에디트 모드에 두번째 IK Control과 Root본을 선.. Constraints ShrinkWrap Blender Tire Spin Simulation https://www.youtube.com/watch?v=81SiXoAWXuU 위 영상은 블렌더의 여러가지 컨스트레인츠에 대해 설명해주는데 마지막 ShirinkWrap부분이 흥미롭다.ShrinkWrap은 모디파이어로만 알고 있어서 따라하다가 잘 안되었는데 다시 보니 Constraints 탭에서 선택해야 한다.일단 타이어를 적당히 만들자. Circle을 만들어F로 면을 채운뒤 Inset로 면을 나누어 휠을 만들고 휠의 에지를 세퍼레이트후 커브로 만들고 지오메트리에서 베벨로 두께감을 준뒤 다시 합쳤다 합치기전 타이어에 쏠리더파이로 두께감을 준뒤 어플라이 해주었다오브젝트 모드에서 큐브를 추가 타이이와 크기를 맞추고 면만 Delete해주자. 타이어를 선택 큐브의 자식으로 만든다 Ctrl-P with transf.. Chain Links Simulation - Rigid Body Physics https://www.youtube.com/watch?v=H-HktU-aEaIBlender Version4.4Add Torusoedit mode에서 가운데를 벌려준다.size는 줄이지 않는데 그래야 리지드바디가 잘 먹는다.피직스탭의 리지드바디를 적용시켜준다.콜리전을 세밀하게 하기 위해 메시로 한다 안그러면 튕겨나간다.복사하고 회전시켜주고 2개씩 복사해서 체인을 만든다. 안겹치게 하자. 바닥에 떨어진 플레인츨 추가한다. 맨위의 체인과 맨 밑의 플레인은 리지드바디 타입을 Passive로 한다. 그럼 위치가 고정된다.플레이 해보면 리지드 바디가 적용된 애니메이션을 볼수 있다. 플레이중 맨위 체인의 패시브 부분을 움직여 보면 빠져나가는데 Animation을 체크하면 된다.씬탭의 RigidBodyWorld의 Sp.. 충돌이벤트와 델리게이트 Delegate 키보드가 눌리면 InputAction과 Binding된 함수가 실행되게 했죠. 이런걸 Deligate라고 합니다.이때는 binding될 함수만 만들어 사용하면 되었지만 나중에 처음부터 만들경우 Deligate 매크로를 사용해 Deligate화 하고 바인딩후 실행해야 합니다. (키보드 처리 로직이 선언, Deleifate화, 실행을 해서 안보일뿐이지만) 델리게이트 장점 예를 들어 설명하자면, 애님인스턴스 클래스에서 캐릭터의 콤보 카운트를 전달받아 해당 몽타주 섹션을 재생하고, NextAttackCheck 노티파이가 발생할 때마다 캐릭터에 이를 전달할 델리게이트를 선언하였다고 가정하자. 노티파이 함수에서 이 델리게이트를 호출해주면 애님 인스턴스는 자신의 델리게이트를 사용하는 객체(캐릭터)가 어떤 것인지 .. Ureal C++ Collision처리 블루프린트 슈팅개발시 했던것처럼 프로젝트세팅 콜리젼에 Player, Enemy, Bullet New Object 채널을 생성합니다. 기본 응답은 Ignore로 합니다.2025.03.10 - [게임프로젝트/슈팅게임 블루프린트] - 충돌처리 Collision 충돌처리 Collision액터들의 충돌처리를 해줍니다.BP_Bullet을 열고 Box Collision을 추가하고 root로 해줍니다. Shape Extent를 조정해 박스를 싸줍니다. BP_Enemy를 열고 역시 BoxCollisoin을 추가하고 루트로 만들고 사이즈롤 설unreal6.tistory.com오브젝트 채널을 블루프린트에서 지정하지 않고 코드에서 구현해보겠습니다.프로젝트 Config폴더안 DefaultEngine.ini을 ECC_로 검색해보.. EnemyActor Factory 생성하기 Spawn EnemyActor Class를 만들어 속성을 정의했지만 누군가 만들어 줘야 합니다.EnemyFactory라는 Class를 만들어 관리하게 하겠습니다.Unreal Editor에서 EnemyFactory Class를 Actor를 부모로 만듭니다.EnemyActor를 생성할 타이머를 만들기 위해 변수2개를 헤더에 만듭니다. UPROPERTY(EditAnywhere) float delayTime = 2.0f;private: float currentTime = 0.0f;EnemyFactory.cpp Tick()에서 타이머를 구현해줍니다.void AEnemyFactory::Tick(float DeltaTime){ Super::Tick(DeltaTime); if (currentTime > delayTime) { .. Unreal Shooting Game C++ EnemyActor Actor 를 부모로 C++ 클래스를 Public으로 만들자header public:부분에 콜라이더와 스태틱매시 컴포넌트 변수 선언public: UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; UPROPERTY(EditAnywhere) class UStaticMeshComponent* meshComp;EnemyActor.cpp에서 헤드파일을 추가하고 생성자에서 박스컴포넌트와, 스태틱메시컴포넌트 오브젝트를 만들어 연결해줍니다.#include "Components/BoxComponent.h"AEnemyActor::AEnemyActor(){ // Set this actor to call Tick() every frame. You can turn this of.. Unreal Shooting Game bullet 총알제작 USoundBase 총알은 입력을 받을 필요가 없으므로 Pawn이 아닌 Actor를 부모로 제작합니다. 이름은 Bullet으로 정합니다.헤더에서 public:밑에 변수를 추가컴포넌트를 생성 연결해줍니다.ABullet::ABullet(){ // Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; boxComp = CreateDefaultSubobject(TEXT("BoxCollider")); SetRootComponent(boxComp); meshComp = CreateDefaultSubobject(TEXT("S.. Unreal C++ 플레이어 제작하기 플레이어 클래스 제작Pawn으로 C++클래스를 만듭니다. public을 선택하고 이름은 PlayerPawn으로 합니다.C++폴더가 있으니 우클릭을 하고 만들어 봅니다.Visual Studio로 이동합니다. 모두 다시 수정을 누릅니다.플레이어에 충돌체 컴포넌트를 추가해 보겠습니다. PlayerPawn.h로 이동하고 Class 맨아래 public:안에 다음 코드를 추가boxComp는 단순히 UBoxComponent의 인스턴스의 주소를 담을 변수입니다. UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; PlayerPawn.cpp로 이동해서 UBoxComponent의 인스턴스를 만들어 연결해 줍니다.헤더도 인클루드 해줍니다. 오타가 없다면 코드의 UBoxComp.. Unreal Shooting C++ 프로젝트, 게임모드, Orthographic 인생언리얼 1권에 있는 슈팅게임 제작을 따라해 보왔다. 일단 블랜크 템플렛을 선택 C++을 선택 ShootingCPP로 이름 지었다. 사실 C++을 선택 안해도 상관없다 하지만 교재를 따라하기 위해서는 ProjectName이 똑같은게 좋다.인생언리얼에 C++을 사용할경우 빌드방법이나 간단한 설명이 잘되어 있다 꼭 읽어보시길 바란다.레벨을 Empty로 만들고 바로 저장하자 Maps 폴더를 만들고 저장하자 교재는 ShootingMap이라는데 난 LV_Shooting이라고 했다.프로젝트세팅을 열고 기본 맵으로 등록하자GameModeBase클래스 만들기 교재는 C++폴더로 들어가 클래스를 만들라고 했는데 안보여서 위쪽 Tools 툴바를 클릭해 만들었다 게임모드베이스를 선택하고꼭 Public을 선택후 이름.. Unreal Shooting Game 패키징하기 우선 프로젝트세팅을 열고 메인 레벨을 지정합니다.Packaging을 선택하고 옵션을 선택합니다. 현재는 Development용으로 가볍게 합니다. 출시용으로는 Shipping 이나, Full Rebuild를 체크해야 합니다.Supported Platforms 카테고리에서 필요한 플랫폼을 체크합니다.프로젝트세팅을 닫고 에디터 가운데 위를 보면 Platforms를 열어 PakageProject를 선택하면 폴더창이 뜨고 폴더를 선택해주면 됩니다.에디터 오른쪽 아래 팜업창이 뜨고 진행됩니다.전 다음과 같은 에러가 나네요LogCook: Error: GlobalDefaultGameMode contains a redirected reference '/Game/Shooting/GM_Shooting'.GM_Shoot.. 베타타입 버전 Shooting Game, SaveGame, Score 최고점수를 기록하고 불러오는 로직을 작성해 보겠습니다. WBP_Main을 열고 HoriozontalBox를 선택하고 Ctrl-D를 누르면 자식까지 복사됩니다. 텍스트를 변경합니다.최고점수 갱신하기점수를 획득할때 마다 최고 점수와 비교해 큰 경우 Best를 갱신해 줍니다.점수는 게임모드에서 저장하고 있으니 게임모드GM_Shooting 에서 갱신하겠습니다. 점수의 갱신은 BP_Bullet에서 적과 충돌할때 게임모드의 AddScore함수를 Call 했으므로 게임모드내 AddScore함수를 변경하면 됩니다.GM_Score 변수에 최고 점수를 담을 BestScore변수를 Integer로 마련합니다.AddScore 함수안에 CurrentScore를 저장후 다음 노드를 추가해 줍니다. Current가 Best보다 크.. 이전 1 2 3 4 5 ··· 58 다음