2015년 2월 22일 일요일

어드벤스드쉐이더 모바일

뭔지는 잘 모르겟고 모바일 쉐이더라니깐 그냥 링크 해놨습니다.

https://www.facebook.com/advancedshader?ref=stream

unity Tip 모음(검 궤적, 꼬리 궤적등 이펙트 방법도 있음)

http://devilchen.tistory.com/4953

2015년 2월 12일 목요일

유니티 정보 사이트

http://unitystudy.net/

내용 구성도 좋고 자료 양도 많아서 참고하기 좋은 사이트

[Unity3D] 마우스로 객체 드래그하기 (DragGameObject)

게임상에서 테스트 용도로 객체를 마우스로 이동시키고 싶을 때, 사용하기 편하게 해주는 스크립트입니다. Procedural 예제에 있던 겁니다.

사용법은 아래의 코드로 생성된 스크립트 파일을 원하는 객체에 드래그 해주시면 됩니다. 쉽죠.

using UnityEngine;
using System.Collections;
 
public class DragGameObject : MonoBehaviour {
     
    IEnumerator OnMouseDown()
    {
        Vector3 scrSpace = Camera.main.WorldToScreenPoint (transform.position);
        Vector3 offset = transform.position - Camera.main.ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, scrSpace.z));
         
        while (Input.GetMouseButton(0))
        {
            Vector3 curScreenSpace = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, scrSpace.z);<br>
            Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
            transform.position = curPosition;
            yield return null;
        }
    }
}



같은 방법으로 충돌 이벤트함수를 코루틴으로 정의하고 업데이트 함수와 플래그 설정없이 자체적으로 돌리면 아주 간결하게 코딩이 가능합니다.

(http://kpro.tistory.com/80)

헛~ 있네 젠킨스에서 Unity 빌드 세팅이....

http://la-stranger.tistory.com/entry/unity-jenkins-auto-build-setup

게임 서버 관련된 정리 된 정보가 있는 블로그

http://enterapp.blogspot.kr/2014/07/blog-post_14.html

2015년 2월 10일 화요일

애니메이션 본 최적화

바이패드 복사 본 만들기 ver0.2

bips = #()
bons = #()
boneName = ""
boundingBox = undefined
bipLength = undefined
bipwidth = undefined
bipheight = undefined
objs = selection as array

fn changeName strs oldStr newStr =
(
 findFlag = findstring strs oldStr
 if (findFlag != undefined) do
 (
changeStr = replace strs findFlag oldStr.count newStr
 )
 changeStr
)


for i = 1 to objs.count do
(
if((classof objs[i] == Biped_Object) and (objs[i].name != "Bip01 Footsteps")) do append bips objs[i]
)

clearSelection()

for i = 1 to bips.count do
(
boneName = bips[i].name

boneName = changeName boneName "bip" "bone"

boundingBox = nodeGetBoundingBox bips[i]bips[i].transform
bipLength = boundingBox[2].x
bipheight = boundingBox[2].y
bipwidth = boundingBox[2].z
madeBone = Bonesys.createBone[0,0,0][1,0,0][0,0,1]
madeBone.name = boneName
madeBone.width = bipWidth
madeBone.height = bipheight
madeBone.length = bipLength
madeBone.boxmode = on
madeBone.rotation = (inverse(biped.getTransform bips[i] #rotation))
madeBone.position = (bips[i].transform.pos)
madeBone.position.controller = Position_Constraint()
madeBone.position.controller.appendTarget bips[i] 50.0
madeBone.rotation.controller= Orientation_Constraint()
madeBone.rotation.controller.appendTarget bips[i] 50.0

append bons madeBone
)

for i = 1 to bips.count do
(
if(bips[i].parent != undefined) do
(
parentBip = bips[i].parent
boneName = parentBip.name

boneName = changeName boneName "bip" "bone"

bons[i].parent = execute("$'" + boneName + "'")
)
)

select bons


사용법은

1. 바이패드를 생성한 후에 선택을 한다.

2. 스크립트를 실행하면 바이패드선택이 해제 되고 흉내내기 본이 만들어진 후에 본이 선택된다.

3. 구조는 'Bip01 Footsteps'을 제외하고 모두 동일하다.

4. 노드의 이름은 'Bip'를 'Bone'로 변경하고 나머지는 동일하게 생성한다.

5. 기본적으로 바이패드의 링크 구조를 따르면서 바이패드를 움직이면 본이 따라 움직인다.

6. 바이패드 일부만 선택하고 실행해도

 7. 정상적으로 생성된다.

8. 링크 구조도 정상적으로 생성된다.

perforce 설치 가이드



1.
Next

2.
Server : 192.168.0.2:1666
User Name : Server에 접속 하실 때 사용하실 아이디(SVN 사용하셨던 ID 하시면 됩니다.)

3.
Start!!

4.
P4V 실행

5.
Run Wizard 실행

6.

7.
기존 아이디가 있는 경우는 첫번째 선택 후 Next!!
처음 시작하는 경우는 
User :  사용하실 ID
Full name : 영문 이름
Email : 개인 이메일

8.
Create a new workspace 선택

Workspace name : Perforce Server에서 다운 받을 프로젝트 폴더 이름, 취향에 따라 하세요
Location : 위에 폴더 경로

9.
depot은 svn에서 Trunk와 같은 개념 입니다.
체크 해주시고 
맨 위에 Yes를 선택하시면 depot에 있는 파일을 설정하신 Workspace에 복사를 합니다.
No로 하시면 복사는 나중에 따로 하시면 됩니다.

Yes 선택 후 Next!!

10. unity에서 설정
상위메뉴 Edit -> perforce Setting
그림과 같이 설정!!

위에 unity 설정은 Pro버젼이 아닐 때 P4 connect 라는 어셋을 받아서 적용한 사례
우선 그렇게 하면 퍼포스를 사용가능 한데 좀 느리고 버그도 발생하는 것 같네요

pro 를 쓰던지 크랙버젼을 쓰던지 해서 퍼포스를 적용하는게 좋습니다,

perforce 가이드

P4 유저 가이드

최신 버전 받기 - Get Latest revision

  1. Workspace 트리에서 갱신을 원하는 파일 혹은 폴더를 선택.
  2. 마우스 오른 클릭후 Get Latest revision을 선택.
  1. 혹은 갱신을 원하는 파일 혹은 폴더를 선택후 단축키 Ctrl+Shift+G

편집을 위해 체크 아웃하기 - Check out

  1. Workspace 트리에서 갱신을 원하는 파일 혹은 폴더를 선택.
  2. 마우스 오른 클릭후 Check out을 선택.
  1. 혹은 갱신을 원하는 파일 혹은 폴더를 선택후 단축키 Ctrl+E
:!: 로컬에서 변경된 파일을 유지한 상태로 체크아웃이 된다.

새로운 파일을 P4에 등록하기 - Mark for Add

  1. Workspace 트리에서 파일이나 폴더를 선택.
  2. 마우스 오른 클릭하여 Mark for Add를 선택.
  3. Submit을 진행.

파일이나 폴더를 P4에서 삭제하기 - Mark for Delete

  1. Workspace 트리에서 파일이나 폴더를 선택.
  2. 마우스 오른 클릭하여 Mark for Delete를 선택.
  3. 로컬에 있는 파일은 즉시 삭제.
  4. Submit을 진행하면 P4 서버에 반영된다.

작업 완료후 P4 서버에 올리기 - Submit

  • 작업한 내용을 일괄적으로 올리기.
    1. Pending 탭을 선택후 변경 리스트에서 변경 목록을 선택. ( 통상 default )
    2. 마우스 오른 클릭하여 Revert Unchanged Files를 선택.
      Check out 목록중에 파일이 실제로 변경되었는지를 검사하여 변경된 파일만 추려냄.
    3. 마우스 오른 클릭하여 Submit 선택.
    4. 변경 사항에 대한 설명을 간략하게 서술후 Submit 버튼 클릭.
  • 특정 파일 혹은 폴더를 선택해서 올리는 방법 : 작업한 내용중 일부 파일이나 폴더에 국한된 내용만 일괄적으로 업로드를 원하는 경우.
    1. Workspace에서 특정 파일이나 폴더를 선택.
    2. 마우스 오른 클릭하여 Revert Unchanged Files를 선택.
      Check out 목록중에 파일이 실제로 변경되었는지를 검사하여 변경된 파일만 추려냄.
    3. 마우스 오른 클릭하여 Submit 선택. ( Ctrl + S )

P4에 등록되지 않은 로컬 파일이나 체크 아웃하지 않고 편집한 파일 찾기 - Reconcile Offine Work

  1. 검사를 원하는 폴더를 선택후 마우스 오른 클릭후,
  2. Reconcile Offine Work를 선택 폴더를 검색후 목록이 출력된다.
  3. 상단 리스트에 수정된 파일 목록(Modified files)이 나타나고, 중간 리스트에 서버에 등록되지 않은 로컬 파일이 출력된다.
  4. 원하는 파일을 선택후 마우스 오른 클릭하여
    • 삭제를 원하는 경우 Delete Local File를 클릭.
    • 서버에 로컬 파일을 추가하려면 Mark for Add를 클릭. Submit을 진행.
    • 체크아웃 하지 않은 상태에서 변경된 내용을 P4서버로 반영하려면 Check out을 클릭. Submit을 진행.
    • 체크아웃 하지 않은 상태에서 변경된 내용을 원본으로 복구하려면 Revert를 클릭.

체크 아웃하고 있는 사람 확인하기

  1. 특정 폴더나 파일로 이동후 오른쪽 상단에 있는 Files 탭을 선택. 보이지 않는다면 Menu > View > Files in Folder 선택.
  2. 특정 파일에 Checked Out By 항목을 보연 체크 아웃 하고 있는 사람의 ID가 보인다.
:!: Checked Out By 항목이 보이지 않는 경우에는 리스트 콘트롤 네임 영역을 우클릭하여 해당 항목을 추가.

작업중인 내용 되돌리기 - Revert

  1. Workspace에서 특정 파일이나 폴더를 선택.
  2. 마우스 오른 클릭후 Revert나 Revert Files를 선택.
  1. 혹은 Pending 탭에서 특정 파일이나 변경 리스트를 선택.
  2. 마우스 오른 클릭후 Revert나 Revert Files를 선택.

이전 버전으로 되돌리기 - Rollback to Revision...

  1. Workspace에서 특정 파일이나 폴더를 선택.
  2. 마우스 오른 클릭후 File History나 Folder History를 선택.
  3. 활성화된 History 탭에서 되돌리고자 하는 이전 버전을 확인후 선택.
  4. 마우스 오른 클릭후 Rollback… 선택.
  5. 되될리기를 하려면 내용 확인후 Yes 버튼 클릭.

충돌 발생시 - Resolve

아래와 같이 출력되는 경우 동일 파일을 누군가 편집하여 올린 버전과 자신이 수정한 버전이 충돌한 경우이다.
다중 Check Out으로 인하여 파일 버전 충돌시 해결 방법은 아래와 같이 바이너리 파일, 텍스트 파일 두가지 경우로 나뉜다.

바이너리 타입 ( 이미지, .upk, .doc, .xls 파일 등등 )

  1. 충돌이 발생한 파일을 선택후 마우스 오른 클릭하여 Resolve를 선택.
  1. 아래와 같이 Resolve 창이 출력된다.
  2. 자신의 파일을 유지할 경우에는 Accept Yours를 클릭.
  3. 다른 사람의 파일을 유지할 경우에는 Accept Theirs를 클릭.

텍스트 타입 ( 소스 파일 등등 )

  1. 충돌이 발생한 파일을 선택후 마우스 오른 클릭하여 Resolve를 선택.
  2. 아래와 같이 Resolve 창이 출력된다.
  3. 자신의 파일을 유지할 경우에는 Accept Yours를 클릭.
  4. 다른 사람의 파일을 유지할 경우에는 Accept Theirs를 클릭.
  5. 다른 사람의 작업 내용과 자신의 작업 내용을 병합할 경우에는 Accept Merged를 클릭.
  6. 혹시 편집한 부분이 충돌한 경우에는 Run Merge Tool을 클릭하여 수동으로 편집 해줘야 한다.
  7. Araxis Merge의 경우 삼분할된 창에서 가운대 창이 최종본이므로 주의하여 병합을 수행하면 된다.

기타

Can’t clobber writable file
Can’t clobber writable file 오류가 발생하는 경우가 있는데, 일반적인 퍼포스 클라이언트로 작업을 진행 하는 경우에는 그냥 Continue 버튼을 클릭하여 받기를 하면 대부분 해결이 된다.
다만, 빌드서버등에서 커멘드 명령으로 자동으로 받게 하는 환경에서는 위 오류가 발생하는 경우 난감한데 아래와 같은 방법으로 대응하는 방법이 있다.
  1. 퍼포스 클라이언트에서 Menu » Connection » Edit Current Workspace…를 선택해서 워크스페이스 속성 편집창을 띄운다.
  2. Options 항목에서 clobber 항목을 선택.