블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2861)
Unity3D (899)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (192)
협업 (65)
3DS Max (3)
Game (12)
Utility (142)
Etc (99)
Link (34)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

BigNumber

Unity3D/Script / 2016. 2. 4. 16:49

[파일]


BigNumber.cs



[출처]

기억안남..;;

소스 제작자 분을 찾습니다~ -ㅁ-;

반응형
Posted by blueasa
, |

[파일]


YupScript.ms




스크립트 출처

http://forum.unity3d.com/threads/3dsmax-y-up-script.220104/

*ms스크립트 사용법: 맥스 화면에 Drag&Drop 하면 맥스에 스크립트 창이 뜬다. 




원문 출처 http://blog.naver.com/blue9954/220615535678


[원문에서 퍼온 글.]

3DMAX는 생소하게 느껴지시는 분들이 많겠지만, 건축CG를 목적으로 만들어진 툴입니다. 따라서 AutoCAD와 동일하게 높이를 Z로 계산하지만, 게임엔진... 예를 들어 유니티의 경우 높이를 Y로 계산합니다. 마야의 경우 애초에 영상물을 만들 목적으로 개발되어 화면을 기준으로 높이를 Y로 계산하기에 아무 문제없지만, 맥스의 경우 오브젝트의 피봇을 Y축을 위로 올라오게 일일이 수정해 주어야 합니다.
 이러한 작업을 원버튼으로 해주는 스크립트입니다. 사용 방법은 첨부한 스크립트를 맥스에 드래그해 넣은 다음, 원하는 오브젝트들을 선택하고 새로생긴 창의 버튼을 눌러 주면 됩니다.



Z와 Y. 축이 다른 이유는 사용하는 좌표계가 다르기 때문.

맥스: 오른손 좌표계  // 마야, 언리얼, 유니티: 왼손 좌표계.


좌표계에 대한 자세한 건, 아래 링크 참조.

http://tartist.tistory.com/65

블로그 내용 중에 기억하고 싶은 것 

좌표계가 달라서 생기는 문제는 맥스에서의 프랍이 엔진으로 넘어갈 때 Y축으로 90도 돌아가는 현상이다. 모든 더미와 뼈들은 맥스에서 제작(오른손 좌표계)해서 넘어오기 때문에 자동으로 부모의 축을 따라가기 때문에 문제가 없지만, 무기에 붙은 소켓 더미는 언리얼에서 제작(왼손 좌표계)되면 좌표계가 달라서 프랍이 혼선이 생기게 된다. 

그래서 무기 축 더미는 엔진에서가 아닌 맥스에서 만들어서 사용하여 문제를 해결했다는 내용.  


 

테스트해 본 결과 리뷰. 

왼쪽 주전자: 맥스에서 바로 꺼낸 주전자의 피벗을 보면 Z축이 위로 올라가 있는 것을 확인할 수 있다. 

오른쪽 주전자: 스크립트를 적용한 주전자. Y축이 위로 올라가 있다. 


보통 fbx로 익스포트 할 때 옵션을 아래 사진처럼 Y-up 으로 하고 익스포트를 하게 되어서 

맥스와 유니티, 언리얼을 오가며 보이는 캐릭터들의 방향에 육안으로 확인할 때의 다른점은 없었는데, 오늘 포스팅의 스크립트는 이대로 또 쓸 일이 있을 것 같다.

 예를들어, 메쉬만 엔진으로 데려갈 경우에 캐릭터가 90도 누워있는 현상은 익히 경험했기 때문이다. 이 스크립트를 사용하면, 맥스에서 보는 좌표와 엔진에서 보는 좌표가 동일하다는 장점이 있으니까. 







....궁금해서 테스트를 더 해볼까 한다... 축이 뭐길래. 


<물체의 축에 따라서 엔진에서의 차이.>

사진에서 왼쪽 유니티 인스펙터 창. 오른쪽 맥스 창


맥스 좌표 그대로 익스포트->유니티로 갖고왔을 때. (X축이 -90도 돌아가 있음)


축을 왼손좌표계로 돌려준 다음 익스포트-> 유니티로 갖고왔을 때.(맥스와 유니티 좌표 일치)


임포트 된 이 두 주전자를 유니티 씬으로 갖고왔을 때의 차이는 아래처럼 없어보인다.

실제로는 두 주전자의 축이 차이가 있지만 없어보이게만 할 뿐.

 유니티는 자체의 버텍스들을 y축기준으로 180도 회전시킨후에 rotation transform의 x축에 -90도를 적용하여 좌표계를 변환시키므로 버텍스가왼손 좌표계 기준으로 변환되는것은 아니다. x,y축 변경을 통해 그렇게 보이게 만들뿐이다. 


이 내용은 유니티 FBX Export 옵션에 대한 아래 설명에서 참조했다. 

http://wiki.maayalee.com/mediawiki/index.php?title=Unity3D_FBX_Export


이래도 저래도 어쨌든 제대로 보이는 디자이너와, 실질적인 축의 방향을 고려해야하는 프로그래머와의 작업방식의 차이가 있을 수 있기 때문에 각 파트에서 특별히 요청이 있을 때 고려해도 될 듯 하다. 


아래는 맥스와 축이 다른 엔진때문에 고민하는 프로그래머들의 질의 문답. 

http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=40302 




출처 : http://flowergardenia.tistory.com/84

반응형

'3DS Max' 카테고리의 다른 글

[Link] 3DS Max ScriptSpot  (0) 2016.10.10
[펌] Max Script에서 한글(주석 등) 깨짐 문제  (0) 2016.10.04
Posted by blueasa
, |

DL

Etc / 2016. 1. 29. 12:09

DLDldl는 다음 뜻을 가지고 있다.

  • dL, dl: 부피의 단위 데시리터(1dL=0.1L)
  • 데이터 통신을 지칭하는 의미로 데이터 링크라 부르며, 영어 Data Link의 약어이다.
  • 데이터 통신에서 서버에서 클라이언트로 데이터를 가져오는 것을 다운로드라고 하며, 영어로 download의 약어이다.
  • 델타 항공의 IATA코드이다.
  • DL, Distribution List는 메시지 통신 처리환경이 전달하는 정보 대상의 수신자인 사용자들로 구성된, 사전에 지정되어 있는 특정 집단(예:회사·단체 등 조직) 및 그 특정 집단 내의 다른 DL들(부문·부서 등)이다.




출처 : https://ko.wikipedia.org/wiki/DL

반응형

'Etc' 카테고리의 다른 글

크런치  (0) 2016.03.27
[링크] KB 국민 파인테크 (FINETECH) 카드란? [8가지 혜택]  (0) 2016.03.15
[펌] 소녀  (0) 2015.12.18
FYI (for your information)  (0) 2015.09.15
바이럴 마케팅  (0) 2015.09.14
Posted by blueasa
, |


[링크] http://missgamer.kr/47

반응형
Posted by blueasa
, |
새해 복 많이 받으세요.
그나저나 애플은 신년 첫날부터 테러 들어갑니다... 작년에 이미 예고한 테러지만요...
뭐냐면... "니네 앱이 IPv6 지원 안하면 리젝될거임 ㅋㅋ"입니다.

거두절미하고, 리젝 안당하려면 이렇게 해야 합니다. 

1. 네트워킹 프레임워크를 사용할 것 
2. IPv4 전용 API를 쓰지 말 것
3. 하드코딩 주소를 쓰지 말 것 




출처: 링크 

각 설명을 들어가 보겠습니다.

----------------

1. 네트워킹 프레임워크를 사용할 것 

iOS SDK 자체에 있는, 소켓 윗단에 구현되어 있는 네트웍 프레임워크라던지, 혹은 제3의 네트워크 프레임워크를 쓰는 것을 권장한다는 뜻입니다. 네트웍 프레임웍을 쓰신다면 위 2는 웬만하면 고려 안하셔도 될 것입니다. 만약 써드파티 네트웍 프레임웍을 쓰시고 있으시면, 해당 프레임웍 개발자에게 이 질문을 꼭 하셔야 하겠습니다. "IPv6 지원하나요?"

네트웍 프레임웍의 일종인 프라우드넷은 IPv6에 대응되어 있습니다. 2015년 12월 업그레이드 릴리즈에서 대응했습니다. 프라우드넷을 쓰시는 분은 IPv6 지원을 원하시면 2015년 12월 업그레이드 혹은 이후 릴리즈를 적용하셔야 합니다. 

----------------

2. IPv4 전용 API를 쓰지 말 것

직접 소켓 프로그래밍을 하신다면, IPv4 전용 API를 쓰시면 안됩니다. 가령 이런 함수들을 쓰시면 안됩니다. (이런 함수들을 쓰는 것 자체가 애플에서 리젝되는지는 확인되지는 않았습니다만, 아무튼 프라우드넷에서는 이들 함수들을 전혀 쓰지 않습니다.)

inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()

IPv6에서 잘 작동하는지 테스트하려면, IPv6 주소만 있는 네트워크 환경을 만들어야 합니다. 여러가지 방법이 있는데요, 저희의 경우 맥 기기를 이용해서 만들었습니다. 

----------------

3. 하드코딩 주소를 쓰지 말 것 

애플에서는 '하드코드 주소'라고 표현했는데요, 이는 대중들에게 쉽게 의미를 전달하려고 일부러 저렇게 표현한 것 같습니다. 
정확한 명칭은 IP literal입니다. 가령, "11.22.33.44"입니다.

한편 우리가 흔히 말하는 '호스트 네임' 가령 "server1.mygame.com" 같은 것은 FQDN(fully qualified domain name)이라고 부릅니다.

만약 하드코드 주소 즉 IP literal을 직접 이용해서 서버에 접속하면 어떻게 되냐고요? 일부 IPv6 네트워크의 클라이언트가 IPv4 네트워크의 서버에 접속을 못하는 경우가 발생할 수 있습니다. (iOS 9.2 이후부터는 이 문제가 일부 해결되긴 합니다만 이 또한 모든 IPv6 네트워크에서 된다는 보장도 없습니다.)

이 반대도 마찬가지입니다. 클라이언트는 IPv4인데 서버가 IPv6인 경우요.

접속을 왜 못하는지는, NAT64/DNS64의 작동 얼개로 설명됩니다. 내용이 길기 때문에 일단 논외 하겠습니다.

그럼 어떻게 해야 하느냐? 애플이 지령(?)한대로 따라야 합니다. 서버는 IPv4 literal 대신 FQDN으로 접근 가능해야 합니다. 클라이언트는 서버에 접속할 때 FQDN을 써야 하고요.

위 내용을 예로 들어 설명하자면, 

- 11.22.33.44 ==> 애플에서 밴 먹임
- server.mygame.com ==> Ok
- 11:22:33:44:55:66:77:88 ==> 애플에서 밴 먹임





서버 세팅을 하시는 분들은, 각 서버에 대한 DNS 세팅을 모두 해주어서 각 서버가 FQDN을 가지게 해주어야 하죠. 그리고 클라이언트는 각 서버에의 접속을 할 때 IP literal이 아니라 FQDN으로 서버에 접속을 해야 하겠죠.

만약 각 서버에 대해 지금 당장 FQDN을 배정하기 힘들 때를 위해, 프라우드넷에는 응급처치 방법을 제공합니다.

프라우드넷 기반 서버에 접속하는 IP literal을 입력하되, IPv4에 물려있는 다른 서버 X의 FQDN도 추가로 입력하면 됩니다. X는 실제로 접속은 안하니 걱정 마시고요, 그저 DNS 검색 대상만 될 뿐입니다. 이것이 있으면, 100% 보장하지는 않습니다만, [1] IPv4 literal만 갖고도 서버에 접속을 할 수 있습니다. 

CNetClient* nc = CNetClient::Create();
p.m_serverIP = "11.22.33.44";
p.m_publicDomainName1 = "www.nettention.com";
p.m_publicDomainName2 = "www.nts.go.kr"; // 네 그렇습니다. 국세청입니다. -_-;;;
nc->Connect(p);

(C#도 가능하나 일단 생략)

어떻게 IPv4 literal만 갖고 접속을 할 수 있냐면... NAT64의 '주소조합 알고리즘'을 구현했기 때문입니다. 이 또한 내용이 기므로 일단은 생략 ^^

아무튼 위 API를 쓰는 것은 어디까지나 응급처치 방법입니다. 완전한 해결을 하려면 애플의 지시(?) 사항 "FQDN으로 서버에 접속해라"를 따라 주어야 합니다.

---------------------

논외: IPv6 주소가 쫙 퍼지면 인터넷 공유기는 사라지지 않을까?

IPv6 주소가 쫙 퍼지면 인터넷 공유기는 "이론상으로" 사라져도 됩니다. 인터넷 공유기 자체가 모자란 인터넷 주소 갯수를 해결하기 위한 방법 중 하나니까요. 

그러나, IP 주소당 가격을 매기는 인터넷 상품을 파는 업체가 IPv6라 하더라도 IP 주소를호락호락 추가 비용 없이 뿌리지는 않을 것입니다. 그렇다면 얄짤없이 인터넷 공유기를 갖다 붙이는 노력을 안할래야 안할 수 없죠. 인터넷 공유기에 강한 프라우드넷도 IPv6 세상에서 여전히 존재 필요성이 있을 것입니다.

-----------------------

즐코딩 하세요~

-------------------

[1]: 맥 기기를 포함해서 일부 클라이언트 사이드 IPv6 인터넷 공유기에서는 정상 작동합니다.



출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&no=458&z=4

반응형
Posted by blueasa
, |

자주 틀리는 맞춤법

한글 / 2016. 1. 12. 12:28




출처 : http://www.torrentby.me/humor/322174


반응형

'한글' 카테고리의 다른 글

[펌] 고자질의 어원  (0) 2016.05.09
[펌] 궁색한 변명? 군색한 변명?  (0) 2016.05.09
'돐', '돌'중 바른 표기는?  (0) 2015.10.14
~율과 ~률  (0) 2015.10.01
삼가  (0) 2015.09.09
Posted by blueasa
, |

* Memory 해제 관련...

*. Prefab 을 public GameObject variable 로 연결하면 1개가 살아있다...
     - Resource 로 옮기고 Resource.Load 후 Instantiate 해준다음 Resource.UnloadUnusedAsset으로 로드했던 prefab을 해제시키자.


* Texture

- WWW 혹은 다른곳에서 load 한 texture 들은 사용하지 않을때 DestroyImmediate 로 꼭 해제시켜줘야 한다. DestroyImmediate 해주면 바로 memory 에서 해제된다.


*. GameObject Destroy 는 memory 를 바로 해제시키지 않는다.
     - Resource.UnloadUnusedAssets 를 해야 memory 에서 해제된다.
     - GameObject 를 DestroyImmediate 해도 포함되있는 Texture, material, 등은 memory에서 해제되지 않는다.

*. Load 한 Texture 들을 Member 로 가지고 있으면 GameObject Destroy 시 memory 해제 안된다.
     - Texture 는 개별 DestroyImmediate 하여 바로바로 해제하자.




반응형
Posted by blueasa
, |

GameObject.active = true;

  • StartCoroutine : OK
  • Coroutine Method : OK
  • StopAllCoroutine : OK
  • Invoke : OK
  • InvokeRepeating : OK
  • CancelInvoke : OK


GameObject.active = false;

  • StartCoroutine : Error
  • Coroutine Method : Stop (active 상태에서 돌고 있는 상태였다면 정지된다.)
  • StopAllCoroutine : OK
  • Invoke : OK
  • InvokeRepeating : OK
  • CancelInvoke : OK

** 결론

  • StartCoroutine 으로 코루틴 메소드를 열심히 돌리다가 해당 GameObject 의 active 가 꺼지면 돌던 코루틴 메소드는 정지되고 다시 active 가 켜지더라도 재실행되지 않는다.....
  • 코루틴을 많이 사용하는 로직(Async 로 돌리는 함수들..(WWW, ... 같은...))에서는 꼭 염두해 두어야 한다..
  • OnDisable() {} 에서 관련 처리를 해 주는게 좋다.
  • Invoke 관련은 GameObject 의 active 유무랑 관계없이 돌아간다..


출처 : http://limchaeng.tistory.com/34

반응형

'Unity3D > Script' 카테고리의 다른 글

[펌] Root Motion in Legacy Animation  (0) 2016.03.28
BigNumber  (0) 2016.02.04
임의시간 받아서 시간 표현하기  (0) 2015.10.28
Control ParticleSystem RenderQueue  (0) 2015.09.24
[공유] UnityBoot 프로젝트  (0) 2015.08.30
Posted by blueasa
, |


링크 : http://www.mobiinside.com/kr/index.php/2016/01/07/japan_mobilgame_psy/

반응형
Posted by blueasa
, |

[아이폰 iOS 기본 앱 활용하기] 2부 패스북(월렛) 사용법과 멤버십 패스 발급 및 저장





모바일 멤버십을 사용하러면, 한참을 기다려야 해서 안쓰는가?



iOS6부터 탑재되어있던 패스북은 여러모로 좋은 앱입니다. 먼저 네이트브 어플리케이션으로 앱 구동속도가 매우 빠르며, 가볍습니다.시럽같은 타사 멤버십 어플은 구동속도가 대부분 10-15초 입니다. 패스북의 경우 2초면 가능합니다. 그리고 선택도 간편합니다. 하지만 그 사용방법이 널리 알려져있지 않아 자주 쓰지 않게 되었죠. 저도 일전에는 '모바일 시럽(구 스마트월렛)' 을 사용했습니다. 핸드폰번호만 입력하면 발급부터 저장까지 자동으로 되어서 좋았습니다. 하지만 이것이 사용하려면 너무나 오랫동안 로딩해야됬기 때문에, 불편한게 이만저만이 아니였습니다. 한번은 뜨기를 기다리는데, 뒤에 줄이 어마어마해서 난감했던 경우도 있었구요. 결국엔 민망한 나머지 혜택 안받고 그냥 계산만 햇지요. 그래서 거의 실물카드를 사용하곤 했습니다. 그러다 패스북으로 멤버십을 받을 수 있다는 것을 알았습니다. 그것이 아이폰을 쓰고 반년만에 알았지요. 패스북 어플은 항상 쓰레기폴더에 숨겨져있었습니다. 패스북 사용방법을 안뒤로, 저의 멤버십 혜택 라이프는 극대화 되었습니다. 아이폰 하나면, 모든 멤버십 카드를 저장할 수 있어서 였습니다. 물론 지갑도 가벼워(?)저는건 덤입니다. 만약 독자여러분의 패스북이 폴더에 감추어져 있다면, 지금 당장 앱을 메인화면으로 꺼내놓으세요! 지금 알려드리겠습니다!



패스북? 월렛? 뭐가 맞나?





본래 iOS8까지 패스북이라는 앱으로 사용되었습니다. 그러나 ApplePay의 등장으로 iOS9부터 앱이름은 Wallet 월렛으로 변경되었죠. 앱아이콘과 이름만 바뀌었을 뿐, 그 기능은 똑같습니다. 다만 앱의 본질이 패스북이 였다면, 이제 패스가 아닌 실물 결제가 가능하다는 것이죠. 애플페이를 대대적으로 사용성을 넓히려는 애플의 숨은 의도를 볼 수 있습니다. 일단 두개 다 동일한 앱이니 착오 없으시길 바라며, 아래의 순서대로 진행 하시면 됩니다.





* 준비물


앱스토어에서 시럽을 설치하고 회원가입하세요. 그리고 카드를 발급받으세요. 하지만 시럽을 사용하지는 않을 것입니다. 모바일 카드정보를 수집하는것은 시럽이 으뜸입니다. 패스북을 카드정보를 직접 입력해야하기 때문에 모든 작업을 다 하시면, 시럽은 간단하게 삭제해주시면 됩니다.

 시럽(syrup) 설치는 여기를 탭하시거나, 앱스토어에서 "시럽" 혹은 "스마트월렛"을 검색해주세요. 또한 멤버십 실물카드를 준비해주세요.



1. 아이폰의 사파리로 민트코드 패스사이트를 접속합니다

http://pass.mintcode.org


(아이폰으로 할시에, 반드시 사파리를 이용해야 되며, PC에서는 '패스정보 이메일로받기'를 진행하셔야 합니다)

* 패스정보 이메일로받기는 아래 참고.



[민트코드 패스사이트, 거의 모든 멤버십이 다 있다.]





2. 그리고 원하는 멤버십을 선택하세요.









3. 패스정보를 입력하시고, 만들기를 클릭하시면 됩니다.아이폰에서는 자동으로 패스북이 실행되며 '추가'버튼만 눌러주시면 됩니다.  PC의 경우 반드시 메일로 받기 옵션을 선택해서, 메일로 발급받으신 후 아이폰에 해당 메일에 접속해 메일의 첨부파일을 열어주시면 됩니다.



  • 로고 이름은 옵션입니다. 입력하시면 패스 오른쪽 상단에 표시가 됩니다. 미관상 없는것이 더 좋을 수 있습니다.

  • 카드번호는 최대한 모바일카드로 번호로 입력하시는게 좋습니다. 물론, 실물 카드번호도 인식하지만 가끔 어떤 번호는 인식이 되지 않을 수 도     있습니다. 시럽을 설치하셨으면, 시럽에 있는 카드번호를 입력하시면 되고, 시럽에 없는 멤버십은 실물카드번호를 입력해주셔도 무방합니다. 참고로 해피포인트 패스북은 적립만 가능합니다. '해피포인트'앱을 설치하시고, 앱안의 모바일멤버십 카드번호를 입력하시면 패스북에서도 포인트 적립 및 사용 모두 가능합니다.

  • 바코드 종류는 Code 128로 하시면 됩니다.

  • QR 코드는 있어도 되고, 없어도 됩니다. 전 일단 사용하기 했습니다.

  • 패스정보 메일로 받기는 패스북을 백업할 수 있는 기능입니다. 패스북(월렛)은 기본적으로 아이클라우드로 자동백업이 되있습니다. 하지만 iCloud를 사용안하거나, 갑작스럽게 패스 멤버쉽이 없어지게 생겼다면, 메일로 백업받은것으로 손쉽게 다시 받을 수 있습니다. 카드정보 직접 입력하는 일이 매우 번거로운 일이기 때문에 만일에 사태에 대비해 메일로 백업을 해두시길 권장합니다.



저는 LG멤버쉽,T멤버쉽,올레멤버쉽,해피포인트,CJONE,L포인트,홈플러스,아이튠즈,반디앤루니스멤버십 등 


거의 모든 멤버십이 패스북에 담아져 있습니다.


여러분들도, 이제 무거운 시럽 사용하지 마시고, 패스북을 발급받아 사용해보시길 권장해드립니다!




출처 : http://emusk.tistory.com/15

반응형
Posted by blueasa
, |