본문 바로가기

스크립트

유니티 스크립트 - 메터리얼 텍스쳐 정보 사용하기 유니티 스크립트에서는 메터리얼에 담겨 있는 텍스쳐의 다양한 정보를 편집해서 사용할 수 있다. MainTexture는 maintexture / mainTextureOffset / mainTextureScale 등을 활용하여 크기나 좌표를 편집할 수 있고, SubTexture들은 String 값을 참조하여 편집할 수 있다. 아래의 코드를 참고하자. m_Renderer.material.mainTextureOffset = new Vector2(offset.x - ((int)offset.x), offset.y - ((int)offset.y)); m_Renderer.material.SetTextureOffset("_Alpha", offset); //_Alpha 에 담겨 있는 텍스쳐의 좌표를 편집할 수 있다. m_R.. 더보기
타임 스케일 사용시 파티클 잘못 출력되는 문제를 해결하기 위해.. 유니티의 타임 스케일을 사용할 경우 파티클 애니메이션이 터지는 문제가 종종 발생한다. 이 문제를 해결하기 위해 Time.unscaledDeltaTime 함수를 사용하면 문제를 해결할 수 있다. 타임 스케일을 무시하고 출력되도록 하는 함수다. public class UnscaledTimeParticle : MonoBehaviour { // Update is called once per frame void Update() { if (Time.timeScale 더보기
셰이더 일괄 교체 스크립트 제작 프로젝트를 진행하면서 파티클 빌트인 셰이더들이 문제를 일으켜 일괄 변환해 줘야 하는 상황이 발생했습니다. 일일이 바꾸는 번거러움을 덜고자 제작한 스크립트 입니다. 1. 모바일 엔진 셰이더(바뀌어야할 셰이더 선택) 2. 바뀔 셰이더 선택 3. 대상 메터리얼들 선택(폴더 / 파일) 4. 대상 메터리얼중 1번과 동일 셰이더를 찾아 2번으로 바꿔줌~ 일괄 교체~ using UnityEngine; using UnityEditor; using System.Collections; using System.Collections.Generic; using System.IO; public class MaterialControl : EditorWindow { public Shader shader1 = null; public .. 더보기
카메라에 사용된 후처리(Image Effect)를 애니메이션으로 제어하기 카메라에 사용된 후처리(Post Processor / Image Effect)를 키로 제어할 수 있게 되면 다양하게 활용이 가능합니다. 캐릭터가 강력한 스킬을 쓸때에 블룸효과를 강하게 준다던지, 컷씬을 제작할때 순간적으로 화면을 어둡게 한다던지. 막타연출에서 모션블러나 라디알 효과등을 원하는 타이밍에 쓰기 위해서 애니메이션으로 후처리를 제어하는 방식이 가장 편하고 좋습니다. 또한 씬 전환 트랜지션상황에서도 유용하게 사용이 가능합니다. 1. 카메라에 다양한 후처리 적용하기 - 먼저 카메라에 사용될 다양한 후처리들을 적용하고, 비활성화 시킵니다. - 라디알블러, 비네팅, 블룸등을 적용시켰습니다. 2. 스크립트 제작하기 - 카메라에 적용된 후처리들을 파싱하여 사용할 수 있도록 스크립트를 제작합니다. - 사용된.. 더보기
Unity Script 기초 공부 - 카메라 제어하기(확대, 축소, 오브젝트 회전, 모바일터치) 스크립트 공부중.. 회사에서 캐릭터 선택창에서 사용될 카메라 회전 구조를 정리하면서 짠 초기 코드지만, 나름 유니티 스크립트 개념을 깨워준 코딩임..ㅋㅋ 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.. 더보기
캐릭터 셋업 책 정독 및 정리 - 2차 스크립트와 함수(Script & Function) 제2강 - Expression 과 Script *Expression 1. Expression란? - 수학적 표현을 통해서 오브젝트의 파라미터나 애니메이션을 컨트롤하는 방법이다. - 수학을 써야 한다니 겁을 먹을수도 있지만, 일반적인 수준에서의 캐릭터 셋업은 상식적 산수만 알아도 Expression Controller의 강력한 기능을 사용하는 데에는 큰 문제 없다. - Scrpit Controller와 상대적으로 비슷하지만, 기능은 더 적다. 하지만, 속도가 빠르다는 장점때문에 많이 이용된다. 2. 변수와 상수 - 예약 변수 1) T : ticks, 맥스에서 시간은 1초에 4800틱의 해상도를 가지고 있다. 즉, 초당 1/4800 만큼의 정밀도로 시간이 계산된다. 1초가 30프레임으로 되어 있는데 1프레임.. 더보기
모델링 라이브러리(Modeling Library) 회사 모델러들의 요청으로 모델링 관리를 펴하게 해주는 툴을 제작해 봤습니다. 이 툴에서 사용할 수 있는 기능들 간단 요약 1. 파일 서치 기능 2. 맥스파일을 열어보지 않고 고퀄의 프리뷰와 다양한 파일 정보(갯수, 크기, 버텍수등..) 로 미리 확인 가능 3. 다중 파일을 지정된 폴더에 동시 익스포트 가능 4. 다중 선택 파일을 지정한 폴더에 자동으로 익스포트 가능 5. FBX를 맥스로 맥스를 FBX로 변환이 매우 간단함(여러파일 동시에도 가능) 6. 대규모 파일관리와 여러 프로젝트를 동시에 관리하게 용이함 * 간단한 기능 설명 제일 먼저 대표로 사용될 폴더를 지정해 줍니다. 모델링 라이브러리 SVN 폴더를 지정하시면 됩니다. (1) 간단한 익스포트 -단일 파일 익스포트 방식 익스포트 폴더를 지정하시고 .. 더보기
Max Script 에서 Json 데이터 파싱하기 1. 먼저 Newtonsoft.dll 파일을 구해서 원하는 폴더에 넣어 놓습니다. Dll 이 있어야 편하게 파싱이 가능합니다. - 처음에 DLL이 없다보니까 텍스트의 라인과 위치까지 세면서 코드를 짜느라 굉장히 애먹었는데, DLL로 파싱하니 굉장히 간단하게 코드가 마무리되었습니다. 구글에 치시면 금방 찾으실 수 있습니다. 2. 사용될 스크립트 코드에 DLL 을 로드 하는 구문을 넣어 줍니다. 위 경로에 DLL을 넣고 아래 코드를 넣어주면 DLL을 로드해 옵니다. 3. JSON이 사용될 부분에서 파싱한다는 코드를 넣어줍니다. local data ="" if filePath == undefined then return 0 fs=openFile filePath mode:"r" while not eof fs d.. 더보기
맥스에서 엔진 버텍스 보여주는 스크립트(Engine Vertex Viewer) 회사 모델러들이 맥스에서 엔진 버텍스를 바로 보고 싶다는 의견이 있어 혼자서 고민하며 만들어봤습니다. 여러가지 이유로 엔진과 동일한 수는 얻어 올 수 있지만, 아래와 같은 방법으로 비슷한 수치는 얻어 올 수 있었습니다. 첨부파일을 받으시면 사용하실 수 있습니다. 1. 모델링 버텍스가 아닌 언렙 버텍스를 계산하라! 언렙을 사용하면 한 버텍스에 두개의 UV정보를 가지게 되는 경우가 생기므로 이 때 버텍스가 증가하게 됩니다. 따라서 6200개의 버텍스의 모델링이 언렙된 버텍스의 수를 계산하면 8500여개가 됩니다. 따라서 언렙전과 언렙후에 엔진에서는 버텍스수가 달라지게 됩니다. 스크립트를 사용할 때도 반드시 언렙후에 사용해야 좀더 정확한 수치를 알게 됩니다. 2. 연속성이 떨어지는 메쉬를 재 연산하라. 엔진에.. 더보기
매인 메뉴에 스크립트 등록하기 제작한 스크립트를 메뉴에 등록하지 않으면 실 작업자들이 실제로 사용하는데 많은 제약이 따릅니다. 그런 문제가 없기 위해 제작한 스크립트는 반드시 메뉴에 등록을 해줘야하는데, 그 방법에 대한 가이드입니다. 맥스 스크립트 메뉴 등록 가이드 1. 맥스 스크립트 상단메뉴에 들어가려면 반드시 메크로 스크립트로 등록된 스크립트만 사용이 가능 합니다. 현재 사내 매크로 스크립트는 맥스 설치폴더\\MacroSciprs\\Nlabs 폴더에 모여 있습니다. 스크립트는 MacroScript 폴더에 모여있는 매크로 스크립트와 Script 폴더에 모여있는 보통 스크립트로 나뉘어 집니다.. 두 개의 차이점 : (1) 매크로는 간단하게 실행가능한 원클릭 스크립트에 대부분 사용된다. 매크로는 맥스가 실행될께 함께 실행 되기 때문에 .. 더보기