warning CS0618: `UnityEditor.EditorGUILayout.ObjectField(string, UnityEngine.Object, System.Type, params UnityEngine.GUILayoutOption[])' is obsolete: `Check the docs for the usage of the new parameter 'allowSceneObjects'.'
에러 로그가 발생하지 않으려면 마지막에 Bool 값을 넣어서 아래와 같이 입력해줘야 에러가 발생하지 않는다.
UnityEngineInternal.APIUpdaterRuntimeServices를 사용하면 아래와 같은 Warning Log 가 발생한다.
warning CS0618: `UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(UnityEngine.GameObject, string, string)' is obsolete: `AddComponent(string) has been deprecated. Use GameObject.AddComponent<T>() / GameObject.AddComponent(Type) instead.
이 로그가 발생하지 않도록 하기 위해서는 툴을 거쳐서 스크립트를 집어넣도록 설정했던것을 해당 스크립트로 바로 불러오도록 값을 수정해 주면 에러로그가 발생하지 않는다.
// 새로운 컴포넌트를 넣어주는 명령어 UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(Target,"Assets/Scripts/Editor/Art/AnimateDeathChange.cs",strScript);
SerchObjectsInChild(Target.transform);
// 기존 컴포넌트를 제거해주는 명령어 GameObject.DestroyImmediate(Target.GetComponentInChildren<Animated_Death>()); GameObject.DestroyImmediate(Target.GetComponentInChildren<Animated_Death>()); GameObject.DestroyImmediate(Target.GetComponentInChildren<Animated_Death>());
회사에서 캐릭터 선택창에서 사용될 카메라 회전 구조를 정리하면서 짠 초기 코드지만, 나름 유니티 스크립트 개념을 깨워준 코딩임..ㅋㅋ
using UnityEngine; using System.Collections;
public class FollowCam : MonoBehaviour {
public Transform target; //추적할 타겟 게임 오브젝트의 Transform 변수 public float dist = 10.0f; // 카메라와의 일정 거리 public float height = 5.0f; // 카메라의 높이 설정 public float dampRotate = 5.0f; // 부드러운 회전을 위한 변수 public float TurnSpeed; public float camPos;
Vector3 V3;
private Transform tr; // Use this for initialization void Start () { //카메라 자신의 transform 컴포넌트를 tr에 할당 tr = GetComponent<Transform> (); TurnSpeed = 2f; camPos = 2f; }
void Update() { Vector3 PositionInfo = tr.position - target.position; // 주인공과 카메라 사이의 백터정보 PositionInfo = Vector3.Normalize (PositionInfo); // 화면 확대가 너무 급격히 일어나지 않도록 정규화~
모프타겟을 사용하여 마티네에서 표정애니를 추가할 수 있는 것을 확인했고, 모바일에서도 작동됨을 확인했씁니다.
이 작업이 들어가기전에 선행되어야할 중요한 사항.
- 모프타겟은 버텍스 애니라 연산부하가 있어 표정애니 넣을 부분만 파츠로 나눠서 적용한다. - 얼굴만 따로 분리하니까 2400 poly 정도 됩니다. 몸 전체는 15000개 이상이라 그냥은 절대 넣을수 없음.PC에서도.. 퍼포먼스 테스트를 거친후 무리가 없다고 판단될때 게임에 적용.
작업 공정 가이드
1. Max 에서의 작업
맥스의 모퍼 기능을 활용해 필요한 표정들을 셋팅해 준다. 여기서는 테스트로 5가지만 넣었음. 모퍼의 장점은 모델러들에게 부탁해 원하는 표정을 버텍스를 이용하여 퀄리티 있게 마음껏 만들어 사용할 수 있다.
(1) 원본 모델 소스를 여러개로 복사해 원하는 표정의 모델링을 한다.
(2) 원본 모델 소스에 복사된 캐릭터들의 표정 데이터를 모퍼에 추가해 준다.
- 0~100의 수치를 조절하여 표정을 다양하게 꾸밀 수 있다.
(3) 맥스에서 익스포트시 체크사항
익스포트 스크립트를 사용하시면 안되고, 아래 사항을 체크하셔서 수동으로 익스포트 하셔야 합니다.
2. 언리얼에서 작업
(1) 임포트시 체크사항
- 모프타겟 체크
(2) 메쉬창에 모퍼 리스트가 뜨는지 확인
-맥스에서 지정한 모핑 리스트가 그대로 넘어왔는지 수치를 조절하며 테스트
(3) 페이셜을 추가할 시퀀스에 표정애니를 추가해줍니다.
- 모핑할 시퀀스를 추가 -> 변수 추가 -> 모퍼네임설정(수동으로 적으면 인덱스로 불러옴) -> 커브 추가로 애니 추가