'Work'에 해당되는 글 183건

  1. 2016.12.02 [언리얼4_블루프린트] for문을 활용한 벽 생성기
  2. 2016.12.02 [언리얼4_블루프린트] For Loop
  3. 2016.12.02 Unity c# for designer - 5강 보충 수업
  4. 2016.11.30 [언리얼4_블루프린트] 배열 다루기 테스트 (랜덤 회전)
  5. 2016.11.30 [언리얼4_블루프린트] 실시간 메터리얼 교체 테스트
  6. 2016.11.28 Unity c# for designer - 5강 (미니게임 만들며 Script 배우기)
  7. 2016.11.28 Unity c# for designer 4강 / 클래스
  8. 2016.11.18 3Dmax Script PPT 자료
  9. 2016.11.17 자주쓰는 코드 정리(작성중)
  10. 2016.11.09 3DMax MCG 설치방법
  11. 2016.11.09 MCG 3VectorClone 1.0 수정및 배포
  12. 2016.11.08 [MapMagic] World Generator 메뉴얼 작성
  13. 2016.11.04 [섭디] 나무 재질 제작
  14. 2016.11.04 [3DMAX]Iray 기본 메뉴얼 작성했습니다.
  15. 2016.10.07 [섭디] 첫 사용
  16. 2016.10.06 [3D MAX] IRAY 테스트
  17. 2016.08.19 Unity c# for designer 3강 / 제어문
  18. 2016.08.01 Unity c# for designer 2강 / 연산자
  19. 2016.07.17 [손맵연습]오버워치 디바 헤드 습작
  20. 2016.07.13 Unity c# for designer 1강 / 기본적인 프로그램
  21. 2016.07.01 SP/Quixel - 15 Free sci fi alpha/height panels
  22. 2016.07.01 Orb-brushes Pack for Zbrush
  23. 2016.07.01 지브러쉬 스킨 팩
  24. 2016.07.01 남자 캐릭터 전신 모델링
  25. 2016.07.01 라이팅 씬 (멘탈레이, 브이레이)
  26. 2016.06.13 [지브러쉬 연습]헤드 스컬핑 연습
  27. 2016.06.07 [3DMAX]하드서페이스 모델링 연습
  28. 2016.05.31 [지브러쉬 연습]회사 스터디 대갈치기 연습
  29. 2016.05.15 쿼터뷰 SF 캐릭터 2015년 연습작
  30. 2016.04.05 캐릭터 모델링 작업
TA/Unreal42016. 12. 2. 15:26

언리얼4 for문을 활용한 벽 생성기





Posted by 프리랜서 디자이너
TA/Unreal42016. 12. 2. 09:53


For Loop







Posted by 프리랜서 디자이너

Unity c# for designer - 5강 보충 수업


scripting API

https://docs.unity3d.com/ScriptReference/index.html


Gameobject

Find()

transform.position

transform.Rotate

transform.localScale

ngui Button




using UnityEngine;

using System.Collections;


public class findobj : MonoBehaviour {


public GameObject obj001;

public Transform obj002;

public GameObject obj003;

public float RotateSpeed = 1;


// Use this for initialization

void Start () {

obj001 = GameObject.Find("001");

obj002 = GameObject.Find ("002").transform;

obj003 = GameObject.Find("003");


Move001 ();

}

// Update is called once per frame

void Update () {

TranslateObj ();

RotateObj ();

}


public void Move001(){

obj001.transform.position = new Vector3 (0,0,0);

}


public void TranslateObj(){

obj002.transform.Translate (Vector3.forward * Time.deltaTime);

}


public void RotateObj(){

obj003.transform.Rotate (Vector3.right * Time.deltaTime * RotateSpeed);

}


public void ScaleObj(){

obj003.transform.localScale += new Vector3 (2,2,2);

}

}












Posted by 프리랜서 디자이너
TA/Unreal42016. 11. 30. 10:38

배열 다루기 테스트 (랜덤 회전)





Posted by 프리랜서 디자이너
TA/Unreal42016. 11. 30. 10:36

실시간 메터리얼 교체 테스트





Posted by 프리랜서 디자이너

Unity c# for designer - 5강 (미니게임 만들며 Script 배우기)



NGUI를 이용한 캐릭터 이동

원활한 수업을 위해 예제 리소스들을 미리 배치해 두었습니다.(무료어셋)


오늘은 캐릭터를 정해진 값 만큼 부드럽게 이동하는 코드와 캐릭터를 부드럽게

따라가는 스크립트를 작성하겠습니다.



캐릭터 이동 스크립트



using UnityEngine;

using System.Collections;


public class CharMove : MonoBehaviour {


public GameObject Target;

private bool OnForward = false;

private float TargetPosition;

private float TargetSetPosition;


public float MovePower = 50.0f;




// Use this for initialization

void Start () {


}

// Update is called once per frame

void Update () {

if(OnForward){

Target.gameObject.transform.position += new Vector3(MovePower,0,0)*Time.deltaTime;

TargetPosition = Target.gameObject.transform.position.x;


if(TargetPosition >= TargetSetPosition){

OnForward = false;

}


}

}



public void CharForwardMove(){

Debug.Log ("Forward!");

TargetSetPosition = Target.gameObject.transform.position.x + MovePower;

OnForward = true;

}


public void CharRightMove(){

Debug.Log ("Right!");

}


public void CharLeftMove(){

Debug.Log ("Left!");

}



}





부드럽게 따라가는 카메라 이동 스크립트



using UnityEngine;

using System.Collections;


public class Cam : MonoBehaviour {


public Transform Target;

public Transform Camera;

private Vector3 CamPos;

public float CamX;

public float CamY;

public float CamSpeed;


// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {

CamPos = new Vector3 (Target.position.x + CamX , CamY, Target.transform.position.z);

Camera.transform.position = Vector3.Lerp (Camera.transform.position, CamPos, Time.smoothDeltaTime * CamSpeed);

}

}






플레이 영상




과제

외쪽이동, 오른쪽 이동코드를 작성해 오세요.~ (캐릭터 회전은 다음시간에 알려드립니다.)

Posted by 프리랜서 디자이너

Unity c# for designer 4강 / 클래스

C#이 보이는 그림책을 참고로 작성했습니다.

강의용 자료로 만들었기 때문에 구체적인 설명은 없습니다.



  • 객체지향?

  • 객체?

  • 클래스?

  • 인스턴스?

  • 메소드?

  • 필드?



A


using UnityEngine;

using System.Collections;


public class method_01{


   void Start () {


   }

   public int Add(int a){

      return a;

   }

   public string Add(string z, string w) {

      return z + w;

   }


}






B


using UnityEngine;

using System.Collections;


public class method_02 : MonoBehaviour {


   // Use this for initialization

   void Start () {


method_01 myclass = new method_01 ();


       myclass.Add(10);

Debug.Log (myclass.Add(10));


myclass.Add("methodA", "methodB");

Debug.Log (myclass.Add("methodA", "methodB"));

   }


}








과제

복습~

Posted by 프리랜서 디자이너
TA/3Dmax Script 자료2016. 11. 18. 01:03
Posted by 프리랜서 디자이너

A

 

모디파이어 추가

 

modPanel.addModToSelection ( 모디파이어 이름 ()) ui:on


예)

modPanel.addModToSelection (Twist ()) ui:on

modPanel.addModToSelection (Displace ()) ui:on




모디파이어 속성 알아내기(리스너 실행)

show $.modifiers[#Displace]


결과는 아래 출력


  .axis : integer

  .bitmap : bitmap

  .blur : float

  .height : float

  .length : float

  .map : texturemap

  .width : float

  .cap : boolean

  .U_Tile : float

 .

 .

 .

 .





Editable poly 속성 링크(맥스 스크립트 레퍼런스)


http://help.autodesk.com/view/3DSMAX/2015/ENU/?guid=__files_GUID_0196A023_116F_47F8_99E9_AF3CB52F302C_htm


 

 

 

object type 대입 (리스너 테스트)

 

b = $ -- 선택은 오브젝트를 b에 대입
$Box:Box002 @ [0.000000,0.000000,0.000000]
ffd_mod = ffdBox() -- ffd4 모디파이어를 ffd_mod에 대입
FFDBox:FFD(box) 4x4x4
addmodifier b ffd_mod -- addmodifier 함수를 사용해 b에 ffd_mod를 추가함
OK
showproperties b
  .height : float
  .length : float
  .lengthsegs : integer
  .width : float
  .widthsegs : integer
  .mapcoords : boolean
  .heightsegs : integer
  .realWorldMapSize : boolean
false
showproperties ffd_mod -- 프로퍼티 확인
  .dispLattice (Lattice) : boolean
  .dispSource (Source_Volume) : boolean
  .deformType : integer
  .falloff : float
  .tension : float
  .continuity : float
  .inPoints (Inside_Points) : boolean
  .outPoints (Outside_Points) : boolean
  .offset : float
  .Lattice_Transform : transform
false

 

 

** 사실 왜 b가 아닌 ffd_mod에서 프로퍼티가 접근해야하는지 이해가 안가지만

위 절차대로 해야 모디파이어 프로퍼티에 접근 할 수 있습니다.

 


 

UI 체크박스 예제

 

checkbox 'AAA' "Smoothing Groups" pos:[12,141] width:132 height:21 checked:true align:#left

 

on AAA changed theState do
 (
  taget . smoothResult = AAA.checked
 )

 

 

 

 

 

if 문

a = 1

if a == 1 then messageBox "hello"

 

if a == 1 do messageBox "hello"

 

if a == 1 then (

 messageBox "hello1"

)

else(

 messageBox "hello2"

)

 

(ex)

if null != select do (messagebox ("Select Object!! "))

 

 

 

 Projection Pick Object


addPModObjects #($적용할 오브젝트 이름) false false objList:#($선택할 대상 오브젝트 이름)


또는


theProj.addObjectNode highpoly

 



Projection Export Cage


$.modifiers[#Projection].exportCage "생성될 오브젝트 이름"

 



이름으로 오브젝트 선택하기


select $objName

 



Editable poly 스무스 그룹


페이스 선택

subobjectLevel = 4


모든 페이스 선택

max select all


스무스 그룹 Clear All

polyop.setFaceSmoothGroup $ #all 0


스무스 그룹 넘버 선택

polyop.setFaceSmoothGroup $ #all 1


오토 스무스

$.EditablePoly.autosmooth ()



 




Assign Renderer


랜더러 선택

renderers.current = RendererClass.classes[1]()


메터리얼 잠김 풀기

renderers.medit_locked = false


메터리얼 바꾸기

renderers.medit = mental_ray_renderer()


엑티브 쉐이드 바꾸기

renderers.activeShade = iray_Renderer()






Color


local WGray = color 200 200 200

 



스켄라인 랜더러 안티얼라이싱 필터 클래스


showClass"*:filter*"


Area : filter {77912301,0}

Quadratic : filter {77912304,0}

cubic : filter {77912305,0}

Catmull_Rom : filter {77912306,0}

Blackman : filter {77912313,0}

Sharp_Quadratic : filter {77912314,0}

Video : filter {77912319,0}

Plate_Match_MAX_R2 : filter {7791231b,0}

Cook_Variable : filter {77912330,0}

Soften : filter {77912331,0}

Mitchell_Netravali : filter {77912350,0}

Blendfilter : filter {77912352,0}

Filter_kernel_plug_in_not_found : filter {ffffffff,0}

OK


 


사용 예시

renderers.production.antiAliasFilter =Mitchell_Netravali()






스켄라인 랜더러 다이얼로그 클래스


show renderers.production


  .mapping : boolean

  .shadows : boolean

  .autoReflect : boolean

  .forceWireframe : boolean

  .antiAliasing : boolean

  .filterMaps : boolean

  .objectMotionBlur : boolean

  .imageMotionBlur : boolean

  .imageBlurEnv : boolean

  .imageBlurTrans : boolean

  .conserveMemory : boolean

  .enablePixelSampler : boolean

  .enableSSE : boolean

  .wireThickness : float

  .objectBlurDuration : float

  .imageBlurDuration : float

  .antiAliasFilterSize : float

  .objectBlurSamples : integer

  .objectBlurSubdivisions : integer

  .autoReflectLevels : integer

  .colorClampType : integer

  .antiAliasFilter : maxObject

  .globalSamplerEnabled : boolean

  .globalSamplerClassByName : TSTR by value

  .globalSamplerSampleMaps : boolean

  .globalSamplerQuality : float

  .globalSamplerAdaptive : boolean

  .globalSamplerAdaptiveThresh : float

false

 




드롭다운 UI 사용법(string)


local formatSel 


on Format_Texture selected sel do

(

formatSel =  Format_Texture.selected 

)

 



 

 엠비언트 오클루전 베이크 프로퍼티


be = Ambient_Occlusion()


show be

  .enabled : boolean

  .filterOn (FilteringOn) : boolean

  .outputSzX (output_width) : integer

  .outputSzY (output_height) : integer

  .autoSzOn (Auto_Size_On) : boolean

  .fileName : filename

  .filenameUnique (Filename_Unique) : boolean

  .fileType : filename

  .elementName : string

  .bitmap : bitmap

  .backgroundColor (Background_Color) : fRGBA color

  .targetMapSlotName : string

  .samples : integer

  .bright : fRGBA color

  .dark : fRGBA color

  .spread : float

  .maxDistance (Max_Dist) : float

  .falloff : float

false

 


 

 다이얼로그 켜고 끄기


해당 매크로 스크립트를 열고 명령어를 찾아보면 됨

macros.run "Render" "BakeDialog"

destroydialog gTextureBakeDialog


 


 

 


 

Posted by 프리랜서 디자이너
TA/3Dmax Script Work2016. 11. 9. 14:58

3DMax MCG 설치방법



설치 파일


설치 경로

C:\Program Files\Autodesk\3ds Max 2016\MaxCreationGraph\Tools



설치방법

맥스를 재실행해야 자동으로 설치가 됩니다.



'TA > 3Dmax Script Work' 카테고리의 다른 글

RTT 스크립트 제작(업무용)  (0) 2017.01.05
반(?)자동 암벽 제작 스크립트 제작  (0) 2016.12.16
MCG 3VectorClone 1.0 수정및 배포  (0) 2016.11.09
MCG 3VectorClone 1.0 제작 완료  (0) 2016.04.02
Max Creation graph help  (0) 2016.03.22
Posted by 프리랜서 디자이너
TA/3Dmax Script Work2016. 11. 9. 14:57

MCG_3VectorClone 사용 방법


같은 형태의 반복적인 오브젝트를 빠르고 편하게 제작할 수 있도록 돕는

MCG 스크립트를 제작했습니다.


(이미 거의 동일한 MCG가 Script 사이트에 있지만 새로 제작해봤습니다.)


작업 예시

3VectorClone + pathDeform을 활용한 쇠사슬 제작


3VectorClone + Band를 활용한 쇠사슬 제작


3VectorClone을 활용해 제작한 지브러쉬용 나노브러쉬 체인메일 제작


3VectorClone을 활용해 반복적인 기둥 모델링 활용




장점

- Modifier 로 제작되어서 원본의 손실 없이 수정이 용이합니다.

- max의 다른 스크립트와 같이 사용하면 활용도가 높아집니다.



메뉴 설명


Clone : xyz 축 방향으로 오브젝트를 복사합니다.

distance는 오브젝트와의 간격을 조절합니다.

Rotation : 오브젝트 각각의 로컬축 회전을 조절합니다.

MCG_3VectorClone.zip



Scale : 오브젝트의 크기를 점차 크게 또는 작게 조절합니다.




설치방법


http://usroom.tistory.com/entry/3DMax-MCG-%EC%84%A4%EC%B9%98%EB%B0%A9%EB%B2%95


'TA > 3Dmax Script Work' 카테고리의 다른 글

반(?)자동 암벽 제작 스크립트 제작  (0) 2016.12.16
3DMax MCG 설치방법  (0) 2016.11.09
MCG 3VectorClone 1.0 제작 완료  (0) 2016.04.02
Max Creation graph help  (0) 2016.03.22
SCRIPTSPOT / MCG  (0) 2016.03.22
Posted by 프리랜서 디자이너

MMW 특징

1- 손으로 직접 제작하지않고 노드로 손쉽게 맵을 제작합니다.

2- 한번 만든 노드는 재사용이 가능해 빠르게 맵 제작이 가능합니다.

3- 하이트맵을 지원하기 때문에 원하는 지형을 빠르게 제작합니다.

4- RTP 터레인 쉐이더를 지원해 AAA급 테레인 제작이 가능합니다.

5- Unity 에서 작업합니다.

6- 먼저 제작된 맵을 통째로 섞어 쉽게 새로운 맵을 만들수있습니다.


*예제를 따라해본 작업 이미지입니다.






아래는 메뉴얼 작성했습니다. 힘드네요.. 후어


MMW 노드 메뉴얼

Create : 터레인 제작의 세부메뉴가 들어있습니다.

Export : 노드를 그룹단위로 저장합니다.

Import : 저장한 노드를 불러옵니다.

Duplicate : 노드를 복사합니다.

Remove : 노드를 삭제합니다.

Reset : 값이 초기화되어야 하는데 현재는 노드가 삭제 됩니다.

Preview : 컬러 값으로 아웃풋을 미리 보여줍니다.


Preview 본 모습으로 컬러를 통해 적용 부위를 표시하고 있습니다.




Create 메뉴

Map : 터레인 제작에 관련된 기능들이 들어습니다.

Objects : 오브젝트 관련 기능들이 들어습니다.

Portal : 특정값을 여러곳에서 사용할수있도록 해줍니다.

Group : 노드를 그룹지어 관리합니다.

Biome : 이미 완성된 MMW를 통째로 불러옵니다.




Create > Potal

결과 값과 결과값을 글로벌로 지정해 통신할수있게 합니다.



Create > Map

Constant : 단순 숫자 입력입니다.

하이트맵에 연결하고 1을 지정했기 때문에 터레인이 1만큼 높아집니다.



Noise : 랜덤하게 노이즈를 만들어 줍니다.



Voronoi : 기본 도형 형태의 여러가지 지형을 만들어 줍니다.



Simple Form : 콘 형태의 기본 형태를 만들어 줍니다.

몇가지 옵션을 제공합니다.



Raw Input : 하이트맵을 적용할수있습니다.



Texture Input : 텍스쳐를 불러와 사용합니다.

텍스쳐 설정에 Read/Write Enabled 가 체크되어있어야 합니다.



Intensity / Bias : 강도와 편향을 조절합니다.



Invert : 값을 반전시켜줍니다.



Curve : 커브 그래프로 값을 조절합니다.



Blend : 두가지 값을 섞어 줍니다.



Normalize : 값을 정규화 하여 조절합니다.



Blur : 부드럽게 만들어 줍니다.



Cavity : Cavity 효과를 줍니다.



Slope : 경사면을 구합니다. 주로 텍스쳐 작업에 사용됩니다.



Terrace : 지층을 만들어 줍니다.



Erosion : 침식 작용을 표현해 줍니다.



Shore : 호수가나 해안가를 표현해 줍니다.





Objects 메뉴

Scatter : 오브젝트를 터레인에 뿌립니다. 텍스쳐를 뿌릴수도 있습니다.



Adjust : 오브젝트의 높이,회전,크기, 랜덤값 등을 조절합니다.



Clean Up : 지정한 곳 외에 오브젝트는 삭제합니다.



Split : 오브젝트를 레이어단위로 관리합니다.



Subtract : 특정 오브젝트와 겹치지 않게 제거합니다.



Combine : 여러개로 나뉘어진 오브젝트를 하나의 메쉬로 합쳐줍니다.

** Combine mash는 메모리 증가 이슈가 있으니 주의해 사용해야합**



Propagate : 부모 오브젝트 주변으로 자식 오브젝트를 생성합니다.



Stamp : 맵위에 오브젝트를 찍어줍니다.



Blob : 얼룩 형태로 맵을 섞어 줍니다.



Flatten : 오브젝트를 기준으로 테레인은 침체 시켜줍니다.

사막같은 모래 표현에 사용하면 될것 같습니다.



Forest : 밀집된 숲을 만들어 줍니다.



Slide : 경사면에 의한 흘러내림을 조절합니다.





Create > Output

Height : 최종 하이트 맵을 출력합니다.

Textures : 터레인의 텍스쳐를 출력합니다.

Objects : 터레인에 오브젝트를 뿌립니다.

Trees : 나무를 생성하고 관리합니다.

Grass : 풀을 생성하고 관리합니다.

모두 유니티의 터레인 기능과 연동됩니다.






텍스쳐 노드 샘플 작업 공유합니다.








기타

영문 메뉴얼 링크

http://www.denispahunov.ru/MapMagic/Manual.html


어셋스토어 링크(예제영상있습니다.)

https://www.assetstore.unity3d.com/kr/#!/content/56762

Posted by 프리랜서 디자이너

섭스터스디자이너 나무 재질 제작해 봤습니다.

회사 테스트 업무겸 겸사 겸사~ ㅎㅎ


노드를 공개하고 싶은데 방법을 모르겠네요.... 쉐이더 포지는 노드 스샷 기능이 있는데..

요넘은 안보이네요...




작성한 노드입니다.

재질에 많은 변화를 주려고 했습니다.

그렇다보니 많이 무거워 졌습니다.

실제로 게임에 사용할때는 기능을 분할해 작업하는것이 맞을것 같습니다.





외부에서 조절 가능하도록 인풋 항목을 많이 뺐습니다.






조절한 스샷들 입니다.









나중에 시간될때 깊이 있게 공부해볼 생각입니다.

재미있네요. ^^


Posted by 프리랜서 디자이너

Iray 기본 메뉴얼 작성했습니다.




IRAY 의 특징


- 기존 라이팅과는 비교도 안되는 빠른 속도로 랜더링하기 때문에 작업

효율이 비약적으로 상승합니다. (5~7초 안에 랜더링 확인 가능)


- 기존 라이트는 썬라이트와 스카이 라이트 두 가지가 필요했지만

IRY는 한 가지 라이트만 사용해도 됩니다.


- 라이트와 물체의 거리가 중요하기 때문에 초기 설정된 라이트의 거리를

변경하는 것 보다는 물체의 크기를 조절하는 것이 바람직합니다.


- 산란 광 표현과 그림자 감쇠 효과가 우수합니다.


- 멘탈레이 메터리얼을 사용할 수 있습니다. 멘탈레이 메터리얼에 재질별

프리셋이 있어 사용하기 편리합니다.


- 멘탈레이는 러프니스와 같은 거칠기를 조절할 수 있어 PBR 대응이 가능합니다.





기본 라이트 설정


1 랜더링 셋업을 아래와 같이 합니다.




2 라이트는 포토메트릭스에 타겟 라이팅을 사용합니다.


라이트는 타겟라이트 하나만 사용하지만 용도 별로 배치해서 사용합니다.


주 광인 썬 라이트만 그림자를 켭니다.






3 라이트 세부 설정은 아래 이미지와 같게 맞춥니다.




4 메터리얼은 멘타레이를 사용했습니다.

스텐다드를 사용해도 무관하나 멘탈레이를 추천합니다.




5 엠비언트 창을 켜고 아래와 같이 설정해 줍니다.




6 원하는 아웃풋이 나오도록 세부 값을 조정해 밝기, 그림자 패도 등 조절합니다.

라이트는 변경없이 사용하고 세부 조정은 이것으로 하는 것을 권장합니다.





7 랜더링 해 작업물을 확인합니다. (이미지 저작권 (주)엔드림)




Active Shade 사용법

아주 간단합니다.

아래 항목으로 변경 후 랜더링 버튼을 클릭하세요.


그럼 실시간으로 작업물 확인이 가능합니다.









'그래픽 작업 > 그래픽 공부' 카테고리의 다른 글

[MapMagic] World Generator 메뉴얼 작성  (0) 2016.11.08
[섭디] 나무 재질 제작  (0) 2016.11.04
[섭디] 첫 사용  (0) 2016.10.07
[3D MAX] IRAY 테스트  (0) 2016.10.06
[손맵연습]오버워치 디바 헤드 습작  (0) 2016.07.17
Posted by 프리랜서 디자이너

뒤늦게 섭스터스디자이너 첫 사용해봤습니다.


노드기반 쉐이더 에디터와 포토샵의 기능을 섞어놓은듯 재미있더군요.


그런데 이미 좋은 소스들이 많이있고해서 너무 깊게 파고들 필요는 없는툴인것 같네요.


궂이 내가 노드를 하나하나 짜서 제작할 필요를 못느낀다는게 가장 큰 이유가 될것 같네요.


여전히 사진기반의 텍스쳐가 멋진경우가 많고, 최근 메가 스켄같은 포토스켄 기반 소스들이 등장해

덜 시선이 가기도 합니다.


그래도 공부는 게속 해야겠네요. 결국 또 좋아질테니....



노드




랜더링




Posted by 프리랜서 디자이너

IRay 랜더링 테스트

Iray가 좋다는 소문이 있어 회사 업무에 적용할 목적으로 테스트 해 봤습니다.




스켄라인 랜더링




Iray 랜더링





랜더링 테스트 결과

- 퀄리티 면에서 훨씬 우수합니다.(멘탈레이 메터리얼 빨도 커요.)

- 간접광 효현이 월등하고 멘탈레이 메터리얼을 사용했습니다.

- 텍스쳐는 섭스턴스 예제 텍스쳐를 사용해 봤습니다.






랜더링 속도체크

속도 체크를 위해 300만 폴리곤 이상 오브젝트 생성 후 테스트 했습니다.


 스켄라인

20초 이상..... 너무 느려서 꺼버렸음 ;;

 Iray

5초 이후 부터 결과물 확인가능함 



iray 10초뒤 랜더링 이미지 (랜더링 중 캡쳐한 이미지입니다.)


엄청난 속도로 랜더링 해주고 있습니다. 하악 하악~








뽀나스로 실시간 랜더링도 테스트 해봤습니다.(Active shade)




 장점

- 기존 랜더러보다 더 좋은 퀄리티의 랜더링 가능


- 엄청난 랜더링 속도


- 실시간 확인 가능한 엑티브 쉐이드 기능 사용가능

(스켄라인도 가능한듯하나 엄청나게 느린것 같습니다.)


-비교적 간단한 라이트 설치


 단점

 없음.!! ㅎㅎ




검색해봐도 제대로된 자료가 없더군요.

조만간 메뉴얼 작성할 생각입니다.


Posted by 프리랜서 디자이너

Unity c# for designer 3강 / 제어문

C#이 보이는 그림책을 참고로 작성했습니다.

강의용 자료로 만들었기 때문에 구체적인 설명은 없습니다.



오늘은 다양한 조건문을 배우고 유니티 API를 이용해

오브젝트를 간단히 움직여 보겠습니다.

NGUI도 간단히 사용해 보겠습니다.




유니티 스크립트를 시작하는데 꼭 필요한 자료 입니다.

즐찾 하세요.~ ^^


Unity 스크립트 자습서

http://unity3d.com/kr/learn/tutorials/topics/scripting




Unity Script API

https://docs.unity3d.com/ScriptReference/30_search.html?q=Translate




1. if 문을 이용한 오브젝트 이동과 UI Label

using UnityEngine;

using System.Collections;


public class if001 : MonoBehaviour {


public bool go;

public UILabel uiText;

public float speed;


void Start () {

}

void Update () {

if (go == true) {

this.gameObject.transform.Translate (Vector3.right * Time.deltaTime * speed);

uiText.GetComponent<UILabel>().text = "right!";

} else {

this.gameObject.transform.Translate (Vector3.left * Time.deltaTime * speed);

uiText.GetComponent<UILabel>().text = "left!";

}

}

}





2. for문을 이용한 연산과 UI Label



using UnityEngine;

using System.Collections;


public class for001 : MonoBehaviour {


public UILabel uiText;

public int count;


void Start () {

for(int i = 0; i <= count; i++){

Debug.Log ("i = "+i);

Debug.Log ("count = "+count);


if(i == 10){

uiText.GetComponent<UILabel> ().text = "finish!!";

}

}

}

void Update () {

}

}






3. foreach문을 이용한 UI Label 문자 바꾸기



using UnityEngine;

using System.Collections;


public class foreach001 : MonoBehaviour {


public UILabel[] TT = new UILabel[3];

public string text = "Oh!!";



// Use this for initialization

void Start () {


TT [0] = GameObject.Find ("Label_1").GetComponent<UILabel>();

TT [1] = GameObject.Find ("Label_2").GetComponent<UILabel>();

TT [2] = GameObject.Find ("Label_3").GetComponent<UILabel>();


foreach( UILabel result in TT){

result.text = text;

}

}

// Update is called once per frame

void Update () {

}

}






4. while문을 이용한 UI Label 문자 바꾸기



using UnityEngine;

using System.Collections;


public class while001 : MonoBehaviour {


public int count;

public int whileCount;

public UILabel uiText;


void Start () {


while(whileCount < count){

Debug.Log (whileCount);

whileCount++;

}


uiText.GetComponent<UILabel> ().text = whileCount.ToString ();

}

void Update () {

}

}





5. switch문으로 오브젝트 제어하기


using UnityEngine;

using System.Collections;


public class swirch001 : MonoBehaviour {


public Move moveState;


public GameObject obj;

public float speed;

public UILabel uiText;


public enum Move {

go, stop

}


// Use this for initialization

void Start () {

}

// Update is called once per frame

void Update () {


switch(moveState){

case Move.go:

obj.transform.Translate (Vector3.right * Time.deltaTime * speed);

uiText.GetComponent<UILabel>().text = "GO!";

break;

case Move.stop:

Debug.Log ("STOP!");


break;

}


}

}









과제

이번 과제는 복습입니다.

복습 복습 복습~



Posted by 프리랜서 디자이너

Unity c# for designer 2강 / 연산자

C#이 보이는 그림책을 참고로 작성했습니다.

강의용 자료로 만들었기 때문에 구체적인 설명은 없습니다.


1. 산술 연산자


연산자

기능

사용법

+

덧셈

a = b + c

-

뺄셈

a = b - c

*

곱셈

a = b * c

/

나눗셈

a = b  / c

%

나머지

a = b % c

=

대입

a = b

++

증가

변수의 값을 증가 시킴

--

감소

변수의 값을 감소 시킴



using UnityEngine;

using System.Collections;


public class calculation : MonoBehaviour {


public float b = 10f;

public float c = 20f;


// Use this for initialization

void Start () {

float d = b + c;

float e = b - c;

float f = b * c;

float g = b % c;

float h = b;

float i = ++b;

float j = --c;


Debug.Log (d);

Debug.Log (e);

Debug.Log (f);

Debug.Log (g);

Debug.Log (h);

Debug.Log (i);

Debug.Log (j);


}

// Update is called once per frame

void Update () {

}

}








2. 비교 연산자


연산자

사용법

의미

==

a == b

a와 b는 같다

<

a < b

a는 b보다 작다

>

a > b

a는 b보다 크다

<=

a <= b

a는 b보다 작거나 같다

>=

a >= b

a는 b보다 크거나 같다

!=

a != b

a와 b는 같지 않다.





3. 논리형




using UnityEngine;

using System.Collections;


public class tnb : MonoBehaviour {



public int a = 10;

public int b = 20;

public bool c;

public bool d;

public bool e;


// Use this for initialization

void Start () {

c = a < b;

d = a > b;

e = a == b;

Debug.Log (c);

Debug.Log (d);

Debug.Log (e);

}

// Update is called once per frame

void Update () {

}

}



조건 연산자


using UnityEngine;

using System.Collections;


public class tnb2 : MonoBehaviour {


public string right;

public string wrong;

private bool value;

private string answer;



// Use this for initialization

void Start () {

value = true;

answer = value ? right : wrong;

Debug.Log (answer);


value = false;

answer = value ? right : wrong;

Debug.Log (answer);

}

// Update is called once per frame

void Update () {

}

}









4. 논리 연산자


연산자

사용법

의미

&, &&

(a >= 10) && (a <50)

a는 10 이상이고 50 미만이면 참

|, ||

(a == 1) || (a == 100)

a는 1 또는 100이면 참

!

!(a == 100)

a는 100과 같다면 거짓




using UnityEngine;

using System.Collections;


public class tnb3 : MonoBehaviour {


public int a = 3;

public int b = 4;

bool x;

bool y;


// Use this for initialization

void Start () {

x = (a < 0);

y = (b > 0);


Debug.Log ((a == 3) & (b == 3));

Debug.Log (x | y);

Debug.Log (!(a == b));


}

// Update is called once per frame

void Update () {

}

}








5. 연산 우선 순위

간단한 문자 출력을 해보며 간단히 구조를 살펴봅니다.



6. 형 변환


using UnityEngine;

using System.Collections;


public class tnb4 : MonoBehaviour {


// Use this for initialization

void Start () {


Debug.Log ("3 / 2 = " + 3 / 2);

Debug.Log ("3 / 2 = " + 3 / 2);


Debug.Log ("3 / 2 = " + (float) 3/2);

Debug.Log ("3 / 2 = " + 3 / (float)2);


Debug.Log ("1.2 + 1.3 = " + (int)1.2f * (int)1.3f);

}

// Update is called once per frame

void Update () {

}

}






8. 과제

코드로 옮겨 보세요.


과제

using UnityEngine;

using System.Collections;


public class homework02 : MonoBehaviour {




열거형 calc_A ,calc_B 를 선언합니다.


public 정수형 value_A,value_B 를 선언합니다.

public 문자열 talkA,talkB를 선언합니다.


논리형(bool)talkValue,answer_01,answer_02,answer_04,answer_05을 선언합니다.

문자열 answer_03을 선언합니다.


정수형 a,b,c,d를 선언합니다.





void Start () {


스타트 함수에서 아와 같이 연산식을 각각대입합니다.

value_A * value_B = a

value_B % value_A = b

++value_B = c

value_B = d


각각에 변수에 아래의 식을 코드로 옮기세요.

answer_01 = a는b보다 작거나 같다.

answer_02 = a와b는 같지않다.

answer_03 = talkA와 talkB의 조건연산식 (힌트 talkValue? XXX : XXX )

answer_04 = a는b보다 크다 || c와d는 같다

answer_05 = (calcuEnum==CalcuEnum.calc_A) && (a는b보다 크다);

talkValue = talkValue는 참 입니다.


answer_01,answer_02,answer_03,answer_04,answer_05의 디버그 로그를 찍으세요.


}



void Update () {

}


}








잠깐!!!

실행전 인스펙터에 value_A는 10을 value_B는 20을 대입합니다.

인스펙터에 talkA는 Oh!를 talkB는 Ah!대입합니다.

그리고는 열거형 calc_A를 선택합니다.

실행~!



결과





Posted by 프리랜서 디자이너
오버워치 디바 헤드 습작

 

 

Posted by 프리랜서 디자이너

Unity c# for designer 1강 / 기본적인 프로그램

C#이 보이는 그림책을 참고로 작성했습니다.

강의용 자료로 만들었기 때문에 구체적인 설명은 없습니다.


 

1. Hello world

간단한 문자 출력을 해보며 간단히 구조를 살펴봅니다.



 

1) helloWorld c# 스크립트를 하나 생성합니다.



 

2) 더블 클릭 해서 모노 창이 띄웁니다.



 

3) 이제 첫 스크립트를 작성할 준비가 끝났습니다.

이제 아래와 같이 작성해보세요.


 

void Update () {


Debug.Log ("Hellor World");

}




 

4) 작성한 후 스크립트를 끌어다 카메라에 넣고 플레이 해보세요.

콘솔 창에 Hello World 가 계속해서 출력되는 것을 확인 할 수 있습니다.


 

첫 스크립트 작성을 축하 합니다.!

짝짝짝~ ㅎㅎ





 

2. 프로그램의 기본 구조

유니티 C#의 기본 구조는 아래와 같습니다.

각각의 세부 설명은 이후 차차 설명하겠습니다.


 





 

3. 유니티 C# 기본 함수

출처 : http://dlgnlfus.tistory.com/64


 

void Awake(){

}


-스크립트가 실행될 때 한 번만 호출되는 함수이다.

-주로 게임의 상태 값 또는 변수의 초기화에 사용한다.

-start 함수가 호출되기 전에 먼저 호출된다.

-스크립트가 비 활성화돼 있어도 실행된다.

/*코루틴 사용 불가*/

void Start () {

}


-Update 함수가 호출되기 전에 한번만 호출된다.

-스크립트가 활성화돼 있어야 실행된다.

-다른 스크립트의 모든 Awake가 모두 실행된 이후에 실행된다.

void Update () {

}


-프레임마다 호출되는 함수로 주로 게임의 핵심 로직을 작성한다.

-스크립트가 활성화돼 있어야 실행된다.

-코루틴 사용 불가

void LateUpdate (){

}

-모든 Update 함수가 호출되고 나서 한 번 씩 호출된다.

-순차적으로 실행해야 하는 로직에 사용한다.

-카메라 이동 로직에 주로 사용하는 함수다.

-스크립트가 활성화돼 있어야 실행된다.

void FixedUpdate (){

}


-주로 물리 엔진을 사용하는 경우에 일정 시간 간격으로 힘을 가할 때 사용하는 함수다.

-스크립트가 활성화돼 있어야 실행된다.

void OnEnable (){

}


-게임 오브젝트 또는 스크립트가 활성화됐을 때 호출된다.

-이벤트 연결 시 사용한다.

-코루틴 사용 불가

void OnDisable (){

}


-게임오브젝트 또는 스크립트가 비활성화됐을 때 호출된다.

-이벤트 연결을 종료할 때 사용한다.

-코루틴 사용 불가

void OnGUI (){


}


-레거시 GUI 관련 함수를 사용할 때 사용한다.






 

3. 변수

이번엔 여러가지 변수를 선언해 보겠습니다.

따라해보세요.~


 

using UnityEngine;

using System.Collections;


public class unityVariable : MonoBehaviour {


public int a = 1;

public float b = 1.5f;

private decimal c = 1.96666666666666666666666666m;

public string d = "디자이너를 위한 C# 기초";

public string e = "Good";

public string f = "Designer";

private string g = "good designer";

private string h = "GOOD DESIGNER";


System.Text.StringBuilder sb = new System.Text.StringBuilder();



// Use this for initialization

void Start () {

Debug.Log (a);

Debug.Log (b);

Debug.Log (c.ToString());

Debug.Log (d);

Debug.Log (e+f);

Debug.Log (g.ToUpper());

Debug.Log (h.ToLower());

Debug.Log (g[0]);


//StringBuilder

sb.Append("one ");

sb.Append("two ");

sb.Append("three");

Debug.Log (sb.ToString());


}

// Update is called once per frame

void Update () {

}

}






 

아래와 같은 결과가 나오면 성공~




 

4. 배열

간단히 배열을 만들어 보겠습니다.

따라해 보세요.


 

using UnityEngine;

using System.Collections;


public class unityArray : MonoBehaviour {


public int[] aArray = new int[5];

private int[] bArray = new int[] { 6, 7, 8, 9, 10 };



// Use this for initialization

void Start () {


aArray [0] = 1;

aArray [1] = 2;

aArray [2] = 3;

aArray [3] = 4;

aArray [4] = 5;

Debug.Log (aArray[0]);

Debug.Log (aArray[1]);

Debug.Log (aArray[2]);

Debug.Log (aArray[3]);

Debug.Log (aArray[4]);


Debug.Log (bArray[0]);

Debug.Log (bArray[1]);

Debug.Log (bArray[2]);

Debug.Log (bArray[3]);

Debug.Log (bArray[4]);

}

// Update is called once per frame

void Update () {

}

}





 

결과는 아래와 같습니다.


 

다 차원 배열은 책을 참고하세요.!!




 

5. 열거형

이번에도 역시 열거형 작성을 따라해 보세요.



 

using UnityEngine;

using System.Collections;


public class unityEnum : MonoBehaviour {


public Animal animal;


public enum Animal {

mouse, cat, bird

};



// Use this for initialization

void Start () {


}

// Update is called once per frame

void Update () {


Debug.Log (animal);


}

}





 

인스펙터에 항목을 변경하면 변경된 값이 찍히면 성공!!





 

6. unity script reference


 

유니티에서 제공하는 유니티 스크립트 자료 입니다.

스크립트를 짜다 보면 참고할 때가 옵니다.~

http://docs.unity3d.com/kr/current/Manual/CreatingAndUsingScripts.html


 




 

7. 과제

복습하고 결과 화면을 스샷을 찍어 글을 올려 주세요.


 

Posted by 프리랜서 디자이너

SP/Quixel - 15 Free sci fi alpha/height panels

 

https://gumroad.com/environmentdesign#

 

 

'그래픽 작업 > 그래픽 자료' 카테고리의 다른 글

블리자드 스타일 라이즈  (0) 2016.12.29
쉐이드맵 추출  (0) 2016.12.29
Orb-brushes Pack for Zbrush  (0) 2016.07.01
지브러쉬 스킨 팩  (0) 2016.07.01
남자 캐릭터 전신 모델링  (0) 2016.07.01
Posted by 프리랜서 디자이너

Orb-brushes Pack for Zbrush

 

https://gumroad.com/l/nOkHw#

 

Orb brush pack.rar

 

Posted by 프리랜서 디자이너

지브러쉬 스킨 팩

 

 

 

Free Skins Alphas

Download: https://gumroad.com/l/YPnLE

Posted by 프리랜서 디자이너

남자 캐릭터 전신 모델링

 

DOWNLOAD-Free-ZTL-Model-Donated-by-Nick-Zuccarello

DOWNLOAD Free ZTL Model Donated by Nick Zuccarello

 

 Download Link: http://www.pixologic01.com/zbc/athlete/H_M_A_base_final_nickZ.rar

 

'그래픽 작업 > 그래픽 자료' 카테고리의 다른 글

쉐이드맵 추출  (0) 2016.12.29
SP/Quixel - 15 Free sci fi alpha/height panels  (0) 2016.07.01
Orb-brushes Pack for Zbrush  (0) 2016.07.01
지브러쉬 스킨 팩  (0) 2016.07.01
라이팅 씬 (멘탈레이, 브이레이)  (0) 2016.07.01
Posted by 프리랜서 디자이너

라이팅 씬 (멘탈레이, 브이레이)

flippednormals_renderScene_FREE.zip

 

 

 

'그래픽 작업 > 그래픽 자료' 카테고리의 다른 글

쉐이드맵 추출  (0) 2016.12.29
SP/Quixel - 15 Free sci fi alpha/height panels  (0) 2016.07.01
Orb-brushes Pack for Zbrush  (0) 2016.07.01
지브러쉬 스킨 팩  (0) 2016.07.01
남자 캐릭터 전신 모델링  (0) 2016.07.01
Posted by 프리랜서 디자이너

헤드 스컬핑 연습



Posted by 프리랜서 디자이너

하드서페이스 모델링 연습


터보 스무스를 이용한 하드서페이스 연습 해봤습니다.

좋더군요. 


다만 사각형 모델링은 해야되네요.


















Posted by 프리랜서 디자이너


Posted by 프리랜서 디자이너

쿼터뷰 모바일 슈팅 게임 하나 만들어 볼까하고 제작한 sf 캐릭터 입니다.

2015년에 한거네요... 요즘은 새로 하는건 없고 맨날 정리...

 

쿼터뷰 용이다 보니 하반신으로 갈수록 어둡게 처리해봤는데... 전체적으로 좀 어둡게 나왔네요...

수정은 귀찮아서 못함.!!!!

 

전용 셰이더도 만들어 적용해 봤는데 나쁘지않음.....

 

 

 

 

 

 

 

 

 

Posted by 프리랜서 디자이너

캐릭터 모델링 작업

 


시간이 없어서 이후 개인작업을 못하고있네요.

지브러쉬도 해야하는데...에혀...

 

 

 

유니티 샷(5.3.4f)

 

 

 

 

와이어 샷

 

 

 

셰이더 포지로 작성한 커스텀 셰이더

 

 

Posted by 프리랜서 디자이너