차이

이 문서의 선택한 이전 버전과 현재 버전 사이의 차이를 보여줍니다.

차이 보기로 연결

gearsofwar2:고어적표현 [2011/01/11 21:19]
z3moon
gearsofwar2:고어적표현 [2012/03/02 22:53] (현재)
z3moon
줄 1: 줄 1:
-====== 개요 ======+====== 고어적 표현 ======
 GoW2 의 큰 특징중 하나는 '잔혹한 표현' 이다. GoW2 의 큰 특징중 하나는 '잔혹한 표현' 이다.
  
 GoW 아이콘중 하나인 체인소우 (일명 랜서) 에는 전기톱이 달려있고, 이것을 이용하여 적의 사지를 절단하는 액션은 이 게임의 백미라 할 수 있다. GoW 아이콘중 하나인 체인소우 (일명 랜서) 에는 전기톱이 달려있고, 이것을 이용하여 적의 사지를 절단하는 액션은 이 게임의 백미라 할 수 있다.
  
-====== 사지 절단 ======+===== 사지 절단 =====
 {{http://farm6.static.flickr.com/5201/5226340582_d1f49f878d.jpg}} {{http://farm6.static.flickr.com/5201/5226340582_d1f49f878d.jpg}}
  
줄 11: 줄 11:
 이를 구현하기 위해서는 다음과 같은 것들이 필요하다. 이를 구현하기 위해서는 다음과 같은 것들이 필요하다.
  
-===== 리소스 =====+==== 리소스 ====
 | {{http://farm6.static.flickr.com/5282/5225797424_3610fd357a.jpg}} | {{http://farm6.static.flickr.com/5048/5302620621_89c79a9f1c.jpg}} | | {{http://farm6.static.flickr.com/5282/5225797424_3610fd357a.jpg}} | {{http://farm6.static.flickr.com/5048/5302620621_89c79a9f1c.jpg}} |
 | 이미지1 | 이미지2 | | 이미지1 | 이미지2 |
줄 35: 줄 35:
   - 이미지2와 같이, 바로 전에 사용된 조각들을 서로 꿰매서 soft weighted 된 SkeletalMesh 제작. (**이하 GoreMesh_SoftWeighted**) 단, 절단부위 vertex 들은 위, 아래 bone 모두에게 weight 영향을 받도록 할 것.   - 이미지2와 같이, 바로 전에 사용된 조각들을 서로 꿰매서 soft weighted 된 SkeletalMesh 제작. (**이하 GoreMesh_SoftWeighted**) 단, 절단부위 vertex 들은 위, 아래 bone 모두에게 weight 영향을 받도록 할 것.
  
-===== 엔진 임포트 및 절단부위를 위한 후처리 작업 =====+==== 엔진 임포트 및 절단부위를 위한 후처리 작업 ====
 이제 위에서 제작된 GoreSkeletalMesh 들을 에디터에서 불러들이고 사용할 수 있게끔 가공해야 한다. 여기서 가공한다는 뜻은 In-Game 에서 특정 이벤트 (썰기,터뜨리기 등 고어적 표현이 필요한 이벤트) 발생 시, GoreMesh_SoftWeighted -> GoreMesh 로 weight 값을 변경할 vertex 들을 추려내어((모든 vertex 의 weight 값을 교체하면 모든 절단부위가 동시에 떨어져 나가는 효과일 것이다. 하지만 보통은 이것을 기대하지 않을 것이다. 원하는 절단부위의 vertex weight 만을 교체하여 팔,다리만 떨어져 나가는 효과를 원할 것이다. 이러기 위해서는 절단부위의 vertex 만을 추려내어 부위별로 분류해둘 필요가 있다.)) metadata 로 저장해 놓는 것을 말한다. 이제 위에서 제작된 GoreSkeletalMesh 들을 에디터에서 불러들이고 사용할 수 있게끔 가공해야 한다. 여기서 가공한다는 뜻은 In-Game 에서 특정 이벤트 (썰기,터뜨리기 등 고어적 표현이 필요한 이벤트) 발생 시, GoreMesh_SoftWeighted -> GoreMesh 로 weight 값을 변경할 vertex 들을 추려내어((모든 vertex 의 weight 값을 교체하면 모든 절단부위가 동시에 떨어져 나가는 효과일 것이다. 하지만 보통은 이것을 기대하지 않을 것이다. 원하는 절단부위의 vertex weight 만을 교체하여 팔,다리만 떨어져 나가는 효과를 원할 것이다. 이러기 위해서는 절단부위의 vertex 만을 추려내어 부위별로 분류해둘 필요가 있다.)) metadata 로 저장해 놓는 것을 말한다.
  
줄 57: 줄 57:
     - 저장     - 저장
  
-===== 변수 =====+==== 변수 ====
   * 직접적인 변수<code cpp>   * 직접적인 변수<code cpp>
 // GearPawn.uc // GearPawn.uc
줄 98: 줄 98:
 </code> </code>
  
-===== 함수 =====+==== 함수 ====
 <code cpp> <code cpp>
 // SkeletalMeshComponent.uc // SkeletalMeshComponent.uc
줄 131: 줄 131:
 </code> </code>
  
-===== 코드 플로우 =====+==== 코드 플로우 ====
 로커스트 그런트를 예로 설명 로커스트 그런트를 예로 설명
  
-==== 사전작업 ====+=== 사전작업 ===
   - AnimSetViewer -> SkeletonTree -> 절단할 노드에서 마우스 우클릭 후 Calculate Bone Break Vert Weightings<code cpp>   - AnimSetViewer -> SkeletonTree -> 절단할 노드에서 마우스 우클릭 후 Calculate Bone Break Vert Weightings<code cpp>
 // AnimSetViewerTools.cpp // AnimSetViewerTools.cpp
줄 163: 줄 163:
 </code> </code>
  
-==== 초기화 ====+=== 초기화 ===
 <code cpp> <code cpp>
 // GearPawn_LocustDroneBase.uc // GearPawn_LocustDroneBase.uc
줄 178: 줄 178:
 </code> </code>
  
-==== 톱질 ====+=== 톱질 ===
   - 죽음 발동<code cpp>   - 죽음 발동<code cpp>
 // 죽으면 호출되는 이벤트 함수 // 죽으면 호출되는 이벤트 함수
줄 372: 줄 372:
 </code> </code>
  
-====== 피 ======+===== 피 =====
 {{http://farm4.static.flickr.com/3458/3215812168_36d1b754c5_o.jpg}} {{http://farm4.static.flickr.com/3458/3215812168_36d1b754c5_o.jpg}}
  
줄 383: 줄 383:
 기본적으로는 엔진이 지원하는 Emitter 와 Decal 을 사용하지만 GoW2 에서는 좀 더 최적화된 모습으로 이들을 처리하고 있다. 기본적으로는 엔진이 지원하는 Emitter 와 Decal 을 사용하지만 GoW2 에서는 좀 더 최적화된 모습으로 이들을 처리하고 있다.
  
-===== GearPawnFX =====+==== GearPawnFX ====
 GearPawnFX 는 **고어적 표현에 사용되는 피<sub>blood</sub>를 편하고 효과적이고 최적화된 방법으로 남기기 위해 고안된 클래스** 이다. GearPawnFX 는 **고어적 표현에 사용되는 피<sub>blood</sub>를 편하고 효과적이고 최적화된 방법으로 남기기 위해 고안된 클래스** 이다.
  
 게임 내에서 사용되는 모든 핏자국은 이것을 통하여 남는다고 봐도 된다. 게임 내에서 사용되는 모든 핏자국은 이것을 통하여 남는다고 봐도 된다.
  
-==== 함수 ====+=== 함수 ===
   * 데칼을 남기는 핵심 함수<code cpp>   * 데칼을 남기는 핵심 함수<code cpp>
 // GearPawnFX.uc // GearPawnFX.uc
줄 520: 줄 520:
 </code> </code>
  
-==== 코드 플로우 ====+=== 코드 플로우 ===
 GearPawnFX 를 사용하는 주체에 특별한 제약은 없지만 보통 GearPawn 에 의해 함수가 호출이 된다. GearPawnFX 는 within GearPawn 키워드로 감싸져 있어 GearPawn 내부에서 사용되는 것이 의도되어 있다. GearPawnFX 를 사용하는 주체에 특별한 제약은 없지만 보통 GearPawn 에 의해 함수가 호출이 된다. GearPawnFX 는 within GearPawn 키워드로 감싸져 있어 GearPawn 내부에서 사용되는 것이 의도되어 있다.
  
줄 534: 줄 534:
 [[http://farm6.static.flickr.com/5165/5345756208_17196d8ab6_o.jpg|{{http://farm6.static.flickr.com/5165/5345756208_c08f0eea8b_b.jpg}}]] [[http://farm6.static.flickr.com/5165/5345756208_17196d8ab6_o.jpg|{{http://farm6.static.flickr.com/5165/5345756208_c08f0eea8b_b.jpg}}]]
  
-====== 참조 ======+===== 참조 =====
 GoW2 소스 GoW2 소스
  
 {{tag>개발 프로그래밍 엔진 언리얼엔진 잔혹}} {{tag>개발 프로그래밍 엔진 언리얼엔진 잔혹}}