(역주 : 고속으로 대충 의역했으니 틀린 부분 있으면 거리낌없이 수정해주세요.)
프로젝트를 만들때에는 언제나 멀리 계획을 해두는 것이 좋고, 또한 언제 패밀리(Family) 가 필요할지 정해놓는 것이 말할 필요도 없이 중요합니다. 하지만, 패밀리를 만드는 작업은 까먹기 쉽고, 그래서 패밀리(Family) 로 만들때에 비해서 수도없이 많은, 특정한 객체로 만든 이벤트들을 만들기 일수입니다. 이 글에서는 어떻게 이렇게 수많은 이벤트들, 그러니까 그 객체의 이벤트 중 인스턴스 변수(instance variable) 이나 비헤비어(Behavior, 움직임) 들을 기준으로 만든(reference) 이벤트들을 패밀리(Familiy) 로 다시 몽땅 만들지 않고도 유지하면서 변환하는 방법을 보여드립니다.
예시 상황
괴물(원문 Monster) 이라는 이름의 객체가 있고, 적 (원분에서는 Enemies) 이라는 이름의 패밀리(Family) 가 있다고 해봅시다. 이렇게하면 다른 종류의 적들을 쉽게 추가할 수 있을겁니다... 하지만 이미 괴물로 된 이벤트(Event)가 100개나 있는걸요! 이런 것들을 패밀리(Family) 로 업그레이드하는 방법을 알아봅시다.
백업 (Back up)
이 튜토리얼은 여러분의 프로젝트의 많은 부분을 바꾸는 걸 포함합니다. 만약 실수하시는 경우, 꽤나 난장판으로 끝날수도 있습니다. 그러므로 프로젝트를 일단 백업(Backup) 해두시길 바랍니다. 아직 백업하지 않으셨다면, Construct 2의 자동 백업기능을 켜두셔야 합니다.
과정
먼저, 일단 바꿀 패밀리(Family) 를 만들어야 합니다. 기능상 비어있는 패밀리(Family)를 만들수는 없으므로, 사실 먼저 임시로 쓸 빈 객체(object) 를 만들어야 합니다. 이번 경우에는, 새 스프라이트(Sprite) 를 레이아웃(Layout) 에 추가하겠습니다. (나중에 지울거니까, 스프라이트의 이미지는 걱정하실 필요 없습니다.) 만약 Text 객체나 Tiled Background 같은 다른 종류의 객체(Object) 를 바꾸시려면, 대신 그걸 만들어주세요.
다음으로, 패밀리(Family) 를 만드세요. 이 경우에는 적(원문 Enemy)이라고 이름지을겁니다. 객체 삽입창이 뜨면 (패밀리(Family) 는 비어있을 수 없기때문에), 방금 만든 빈 객체(Object) 를 넣고, OK(확인)를 누르세요.
이제 원래 객체(괴물) 에 있던 인스턴스 변수(Instance variable) 들, 비헤비어(Behaviors, 움직임) 들, 효과(이펙트, Effect) 들이랑 동일한 걸 패밀리(Family) 에 추가해주세요. 객체(Object)들은 똑같은 인스턴스 변수(Instance Variable) 들, 비헤비어(Behavior, 움직임) 들, 효과(Effect) 들을 가지고있는 객체(Object) 나 패밀리(Family) 와만 교체할 수 있습니다. 예를 들자면, 괴물이 체력과 속도라는 인스턴스 변수(Instance Variable) 들을 가지고있고, 이름이 총알인 Bullet 비헤비어가 추가되어있다면, 반드시 적 패밀리(Family) 에 체력과 속도라는 변수를 넣어야 합니다. 물론 총알 비헤비어(Behavior, 움직임) 도요.
이제 이벤트(Event) 들을 아까 만든 패밀리를 쓰도록 바꿀 수 있습니다! 이벤트 시트(Event Sheet) 로 가셔서, 모두 선택(Ctrl+A) 하시고 (객체(Object) 바꾸기 단축키인) R 키를 누르세요. 먼저 바꾸고싶은 객체를 고르고 (이 경우에는 괴물이죠.), 다음엔 아까 만든 새 패밀리(Family) 를 선택해서 바꿀 수 있습니다. 만약 아까만든 패밀리(Family) 가 보이지 않거나, there are no objectgs that it can be replaced with (바꿀 수 있는 객체가 없습니다.) 라는 메시지가 나온다면, 패밀리(Family) 에 이전의 괴물 객체랑 똑같은 인스턴스 변수(Instance variable) 들, 비헤비어(Behaviors, 움직임), 이펙트들이 똑같은 이름과 타입(Type) 으로 들어있는지 확인하세요. 만약 그 객체, 그러니까 괴물을 쓰고있는(referring) 이벤트가 있는 이벤트시트(Event Sheet) 가 여러개 있다면, 이 과정 (몽땅 선택하고 그 패밀리(Familiy) 로 대체하는 것) 을 각 이벤트 시트(Event Sheet) 에서 반복하셔야 합니다.
이제 바꾼 이벤트들이 적 패밀리(Family)를 쓰는 걸로 바뀌었습니다! 하지만 기존의 객체(Object), 그러니까 괴물 은 그 패밀리(Family) 에 안 들어있네요. 패밀리(Family) 의 인스턴스 변수(Instance Variable) 와 비헤비어(Behavior) 가 겹치기 때문에 아직 패밀리(Family)에 추가할 수 없습니다.
이제 원래 객체의 모든 인스턴스 변수(Instance variable) 와 모든 비헤비어(Behavior) 들, 모든 효과(Effect)들을 지웁시다. 너무 걱정하지 마세요 - 아까 모든 이벤트를 패밀리(Family)를 쓰도록 바꿔서 이제는 그 객체를 참조하는 이벤트가 없으니까요. (그리고 아까 위에서 백업도... 하셨...잖아요?)
프로젝트 막대(Project Bar) 에서, 이번 글에서 만들었던 패밀리(Family)를 편집해서 그 객체(Object)를 넣으세요. 이 경우에 괴물 객체를 적 패밀리(Family) 에 넣는 게 되겠네요. 또한 더 이상 임시 객체(object) 가 필요하지 않으니까, 임시 객체를 패밀리(Family)에서 제거하고, 다시 프로젝트 막대(Project Bar) 로 가서 프로젝트(Project) 에서 임시 객체(Object) 를 완전히 지워버리세요.
결과
이제 모든 이벤트가 그 객체 대신에 패밀리를 쓰고(refer), 그 객체가 이전과 똑같은 인스턴스 변수(instance variable) 들과 비헤비어(Behavior)들, 효과(Effect) 들을 포함하고 있습니다. 그래서 이전과 똑같이 작동하지만, 이제 다른 객체를 패밀리(Family) 에 추가할 수 있습니다. 패밀리의 잇점을 다른 객체 종류에게까지 적용할 수 있는거죠. 운 좋게도 어떤 면에서는 이런 게 편할겁니다!