서울게임아카데미 교육과정 6개월 국비과정 113
-
Heal을 사용하기 위해 객체를 만들어보자. BP_Wizard BP_Wizard에 BP_Wizard_Skill형태의 객체를 만들어서 Skill을 관리하게 한다. Heal이 될 수 도 있고, 다른 마법이 될 수 도 있다. 아예 배열형태로 구현, 관리하여 얻은 순서대로 마법을 바꾸고 시연할 수 도 있을 것이다. 변수로 각 해당되는 Skill을 객체로 받고, Skill에 현재 플레이어가 들 고 있는 마법을 기입하고, 해당 마법을 플레이어가 사용하게 되는 것 이다. 모든 Skill은 각자의 Attack이벤트를 가지고 있으며, 이러한 Attack이벤트를 오버라이딩하여, 자식객체에 해당하는 이벤트를 실행하는 원리이다. Weapon Change 정리 무기를 바꿔끼는 이벤트를 다음과 같이 정리해준다. Off Selec..
-
마법 이펙트와 스킬여부를 분리하여 관리해본다. 상속관계 정리 마법은 위와같이 관리한다. Wizard_Skill을 통해 Skill을 관리하고, Wizard를 상속받는다. Heal은 Wizard_Skill을 상속받아 이펙트나 효과를 관리한다. 즉, Wizard->Wizard_Skill->Heal 순으로 마법이 관리된다. BP_Wizard_Skill 오버라이딩할 함수들을 정의해놓는다. 위의 함수들을 바탕으로 재구현할 것 이다. BP_Heal Heal스킬의 바탕은 위와같다. 소유자를 확인하고, 해당 소유자가 유효할 경우, 소유자의 오너->소유자의 오너 = 플레이어 에게 힐 애니메이션을 출력하게 하면 된다.
-
이전에 하였던 인터페이스 정리를 이번에는 다른 무기 또한 정렬해서 사용하도록 해보자. 항목별 정리 각 항목을 콘텐츠-> 폴더생성 을 통해 항목당 어울리는 폴더로 이동시켜 정리한다. BP_HandFIreball BP_Player에서 사용했던 interface와 BP_Weapon, BP_HandFireball을 사용하여 Wizard를 정리할 것 이다. 우선, 공격시 사용할 무기를 전환해야 함으로, 파이어볼 과 Sword는 같은 BP_Weapon을 상속받아 사용해야 한다. 정의된 파이어볼의 상속부모를 BP_Weapon으로 설정해주고 이름을 바꾸어주자. HandFireball에는 이제 이펙트를 정의하지 않고, 무기 라는 개념을 가지는 Sword와 같은 개념으로 사용한다. 커스텀 이벤트로, OnSelelcted를..
-
객체 인터페이스를 사용해서 좀 더 직관적이고, 객체지향적으로 정리하자. 전에 설게했던 대로, BP_Weapon 에서 BP_Combo로 상속이 이어지고, 그 후에 BP_Combo또는 BP_Sword으로 상속된다. ( 콤보가 없는 것은 바로 해당 무기로, 있다면, Combo로 상속된 후 임의의 무기로 이어진다.) 연결지어보자. BP_Weapon BP_Weapon이다. 인터페이스 처럼 상속 후 상속된 함수를 사용하게 할 것이다. 그럼으로 Get, Set등을 전부 정의해준다. 위 함수에서 TurnOnCollision, TurnOffCollision은 무기객체에서 활성화 하게 됨으로 비워놓는다. 함수의 내부는 대부분 위와 비슷하게 이루어진다. Owner를 찾아서, 해당 Owner의 interface에 접속, 인터..
-
지금까지 구현하였던, 케릭터를 바탕으로 인터페이스 형태로 재구축하여, 무기를 기준으로 설계를 다시해보자. 무기를 든 Character는 항상 그 무기의 공격모션 을 사용할 수 있어야 한다. 그럼으로, 무기와 케릭터를 인터페이스로 정의하고, 해당 인터페이스를 구현하여 각 캐릭터당 공격모션을 자유롭게 사용할 수 있도록 공통사항을 주어야 할 것 이다. ICharacter , IWeapon으로 구성된 인터페이스를 상속받는 각 무기와 Character를 생성한다. 여기서, 캐릭터는 지금까지 만들었던 player와 Enemy, 무기는 만들었던 Sword와 FireBall이다. 인터페이스 구축하기 언리얼에서는 간단하게 인터페이스를 구현할 수 있도록 지원해주고 있다. 위와 같이, 블루프린트 인터페이스를 생성해준다. 인..
-
이제 마법에 관한 애니메이션을 전부 적용하였으니, 공격을 하였을 때, 마법이 발사되고, 마법이 충돌하면 폭발하는 과정을 전부 블루프린트로 구현해보자. Wizard FireBall 만들기 우선, 공격시에 손에 들 고 있던 마법을 발사해야 한다. 이런경우 손에 있는 객체를 발사하는 것 보다는. 그 객체를 꺼버리고 그 위치에서 발사체 객체를 생성하고 발사하는것 이 더 효율적이고 코드도 쉽게 작성된다. 손에있는걸 던졌을 때 는 손에 있는 객체를 꺼버린 뒤에, 새로 생성하면 눈으로 볼 때는 그 손에 있는 객체가 발사된것 처럼 보일 것 이다. Actor로 새로운 객체를 생성해보자. 손에 있던 FireBall 과는 다른 객체를 생성한다. 이 블루프린트는 생성된 뒤에 정면으로 발사되게 만들 것 이다. FIreBall은..