대학때는 돈이 없어서 초대권을 구해서 가려다 보니, 관람한 기억이 없나 봅니다. 아무래도 제가 대학을 다니던 80년대에는 연극 공연을 관람한다는 것도 제게는 사치였던거 같습니다. 그러다가 직장을 다니면서 식구들을 부양하다 보니 역시 관람할 기회를 가지지를 못했던거 같습니다.
이번에도 모처럼 이대영교수님이 연출한 연극을 보러가려 했는데 자리가 매진 됐다고 해서
포기 하려다가 자리가 있다는 애기를 듣고 대학로에 가서 공연을 관람했습니다.
일찍 도착을 해서 지나 다니는 젊은 사람들을 부러워하며 두리번 거리면서 앉아서 기다렸습니다.
예전에 정말 예전에 여기 대학로옆에 서울대 문리대가 있었을때, 구경을 왔던 기억이 납니다. 아마도 그때가 대학로라는 호칭이 생기기 전이었을 겁니다.
기다리던 친구가 도착해서 같이 공연장으로 들어갔습니다. 연극 말미에 가슴을 울리는 감동에 눈을 자주 깜밖이는 순간도 있었습니다.
연극을 마치고 밖으로 나왔는데 , 연극을 관람한 거의 모든 관람객이 아쉬운 마음에 집으로 가지 못하고 웅성웅성 모여서 아쉬움을 달래는 장면을 사진에 담았습니다
Asset 에서 FPS 마이크로 게임 을 다운받아서 설치하면 잘진행이 됩니다. 이것을 모르고
Add Component에서 찾는라고, 구글 검색도 하고 조금 고생했습니다
FPS Mod: Customize weapon projectiles
1. 처음부터 새로운 발사체 만들기
1. 먼저, 새로운 프리 팹을 만들어야합니다. 이를 위해 , 현재 씬에 새로운 GameObject 를 추가하는 것으로 시작하겠습니다 .
2. 원하는대로이 개체의 이름을 바꿉니다.
이 예제에서는 이름을 NewProjectile로 지정합니다.
4. 그런 다음 Assets> Utech> FPS> Prefabs> Projectiles 폴더 의 계층 구조 창에서 프로젝트 창으로 새 객체를 드래그해야 합니다.
5. 이 GameObject 에서 프리 팹 을 만들었습니다 .
6. 이제 더블 클릭하여 엽니 다.
7. 계층 구조 창 에서 객체를 선택하고 인스펙터 창 에서 변환 구성 요소를 마우스 오른쪽 버튼으로 클릭하십시오 . 그런 다음 재설정을 클릭하십시오. 이 GameObject의 위치, 회전 및 스케일에 대한 기본값을 설정합니다 . 그렇게하지 않으면 발사체가 올바른 위치에 생성되지 않거나 다른 회전으로 생성되지 않을 수 있기 때문에 중요합니다.
8. Add Component 버튼을 클릭 한 다음 Projectile Standard 를 선택하십시오 . 구성 요소 이름의 시작 부분을 입력하여 결과를 좁힐 수 있습니다.
9.이 작업이 완료되면 개체에 두 개의 새로운 구성 요소가 나타납니다. 발사체 표준 구성 요소는, 당신은 단지 추가 한, 및 발사체 자료 당신이 추가 할 때 자동으로 추가됩니다, 발사체 표준 .
10. 이제 발사체에 메쉬 (3D 모델)를 추가하겠습니다. 에서 프로젝트 창에서에서 당신이 원하는 것을 메쉬, 드래그를 찾을 계층 구조 창을여십시오. 자산> UTech> ModAssets> 모델> NatureProps로 이동하여 몇 가지 옵션을 찾으십시오. 예를 들어 FirTree 메쉬를 계층 창으로 드래그 앤 드롭합니다.
11. 메시가 이제 장면 뷰에 나타납니다 . 팁 : 장면 뷰 위로 마우스를 가져 가면 키보드에서 F를 눌러 현재 선택된 계층 구조 (이 경우 FirTree)에 카메라를 중앙에 놓습니다.
12. 이제이 메시 의 Transform 컴포넌트 에서 일부 값을 변경 하여 발사체의 시각으로 사용합니다. 이 특정 메쉬의 경우 다음 값이 효과적입니다. 다른 메시를 사용하는 경우 발사체의 앞면이 파란색 화살표 (정방향)와 정렬되고 발사체의 길이가 대략 0.5 미터 미만인지 확인하려고합니다.
13. 이제 발사체 매개 변수를 설정합니다. Hierarchy 창 에서 루트 GameObject 를 선택하십시오 .
14. Inspector 창에서 반지름을 0.2로 변경합니다
15. 그런 다음 메시를 계층 구조 창 에서 발사체 표준 구성 요소 의 루트 매개 변수로 끕니다 . 이 프로세스는 메시의 Transform to Projectile Standard 컴포넌트에 대한 참조를 제공합니다 .
16. 마찬가지로, 발사체의 끝을 발사체 표준 구성 요소에 대한 참조를 제공해야합니다 . 그러나 먼저 만들어야합니다.계층 구조 창 에서 메시를 마우스 오른쪽 버튼으로 클릭 한 후 빈 생성 을 클릭합니다 .
17. 방금 생성 한 새로운 빈 GameObject의 이름을 지정하십시오 .
18. 그런 다음 이동 도구를 선택하십시오 . 새 게임 오브젝트 를 메시 끝 으로 옮길 것 입니다.
19. 장면 뷰 에서 화살표를 드래그하여 개체를 이동하십시오.
20. 15 단계 에서했던 것처럼 Tip GameObject 를 Hierarchy 창 에서 Projectile Standard 컴포넌트 의 Tip 매개 변수로 드래그합니다 .
21. 이제 발사체가 무언가와 충돌 할 때 생성 될 오브젝트를 선택합니다.Impact VFX 필드 에서 아이콘을 누르십시오 .
22. 방금 나타난 창에서 자산 탭을 클릭 하십시오.
23. 원하는 개체를 한 번 클릭하십시오. 이 예제에서는 쿠키 메시를 사용합니다.
24. 발사체가 무언가와 충돌 할 때 재생할 소리를 선택할 수 있습니다. 인스펙터 창에서 Impact SFX Clip 필드 의 아이콘을 누릅니다 .
25. 원하는 소리를 선택하십시오
26. 발사체가 준비되었으므로 자동 저장 이 활성화되지 않은 경우 (“저장”옆의 확인란) 아래 이미지에 표시된대로 프리 팹을 저장하십시오.
2. 새로운 발사체를 무기에 할당
1. Project 창에서 Assets> UTech> FPS> Prefabs> Weapons 로 이동하여 선택한 무기의 Prefab 을 두 번 클릭하여 엽니 다 .
2. 이제 계층 에서 무기가 선택되었으며 Inspector 에서 해당 정보를 볼 수 있습니다 . 인스펙터 에서 Projectile Standard 컴포넌트 아래 Projectile Prefab 필드를 찾습니다 . 생성 한 발사체를 프로젝트 창 에서 해당 필드로 드래그해야합니다 . 따라서 생성 한 발사체를 찾은 다음 한 번 클릭 하고 발사체를 Projectile Prefab 필드 의 Project 창에서 Inspector 창으로 끕니다 .
3. 자동 저장 이 활성화되어 있지 않은 경우 (“저장”옆의 확인란) 무기 프리 팹을 저장하는 것을 잊지 마십시오 .
4. Play를 누르고 쿠키 블래스터를 확인하십시오!
3. 추가 크레디트 : 생성 된 메시에 물리 추가
1. 쿠키 메시에 물리를 추가하여 발사 할 때 공기 나 벽에 달라 붙지 않고 충돌하고 넘어 지도록합시다. Impact VFX 로 간단한 메시를 사용하는 대신 이전과 같이 만들 프리 팹을 사용합니다.
먼저, 프로젝트 창 에서 이전에 사용한 메쉬를 계층 창 으로 드래그하십시오 . 현재 장면 의 루트 위치 에 놓을 수 있습니다 . 아래 예제에서 쿠키 메쉬는 계층 구조 창 에서 GameObjec t입니다 .
2. 프로젝트 창에서 자산> UTech> FPS> 프리 팹으로 이동하십시오. 쿠키 게임 오브젝트 를 클릭 하여 계층 에서 프로젝트 창으로, 프리 팹 폴더 로 드래그하십시오 . 팝업 창에서 Original Prefab 을 선택하십시오 .
3. 프리 팹의 이름을 적절한 이름으로 바꿉니다. 이제 열 수 있습니다 (두 번 클릭).
4. 루트 GameObject 의 변형을 재설정하십시오 . 그렇게하려면 Transform 컴포넌트를 마우스 오른쪽 버튼으로 클릭 한 다음 Reset 을 클릭하십시오 .
5. 스케일을 (50, 50, 50)으로 설정하십시오.
6. 구성 요소 추가를 클릭 하십시오 . 서로 다른 두 가지를 추가해야합니다. Mesh Collider 구성 요소와 Rigidbody 구성 요소를 추가합니다 ( Rigidbody 2D가 아닌 일반 Rigidbody 구성 요소 선택 ).
7. Mesh Collider 컴포넌트에서 Convex 상자를 체크하십시오 .
8. Project 창에서 앞에서 만든 발사체 프리 팹 을 찾아 엽니 다.
9. Inspector의 Projectile Standard 구성 요소에서 Impact VFX 필드 의 아이콘을 클릭 하여 새 Prefab 을 할당합니다 .
10. 새로운 프리 팹을 선택하십시오.
11. 자동 저장 이 활성화되어 있지 않은 경우 무기 프리 팹을 저장하는 것을 잊지 마십시오 .
목동코딩에서 스터디카페 IoT프로젝트를 하면서, 어떤 보드로 테스트할까 고민을 하다가 , 전파인증이 되어있는 라즈베리파이를 사용하기로 했습니다. 제품 가경이 저렴한 아두이노에 이런 저런 모듈을 연결하여 테스트나 제품 개발도 가능하지만, 제품의 개발이 완료되고 나서 전파인증 이나 적합성 인증에 대한 부담이 커서 조금 가격은 비싸지만 라즈베리파이로 개발하기로 마음을 먹고 테스트를 하였습니다.
SELECT [col1,col2] FROM table WHERE 조건절.... LIMIT 인덱스 값(0부터 시작)
페이지당 10개씩 표시하는 방법
// 1페이지
SELECT * FROM page_table LIMIT 0, 10;
// 2페이지
SELECT * FROM page_table LIMIT 10, 10;
// 3페이지
SELECT * FROM page_table LIMIT 20, 10;
전체 게시물을 Count한뒤, 10개씩 나누어서 게시물을 가져와서 페이지에 표시한다
예전에 직장생활을 하면서 COBOL이라는 언어로 업무시스템을 개발하면서, 장부를 출력하는 업무를 개발할땐는,데이타베이스의 도움을 받기 어려워서 프로그램으로 장부를 인쇄할때 페이지당 20줄씩 프로그램으로 나누어서 프로그래밍을 했는데 , 요즘은 데이타베이스 엔진이 출력에 도움이 되는 기능을 많이 제공하고있어서 프로그램이 정말 많이 편해졌다.
SELECT [col1,col2] FROM table WHERE 조건절.... LIMIT 인덱스 값(0부터 시작)
페이지당 10개씩 표시하는 방법
// 1페이지
SELECT * FROM page_table LIMIT 0, 10;
// 2페이지
SELECT * FROM page_table LIMIT 10, 10;
// 3페이지
SELECT * FROM page_table LIMIT 20, 10;
전체 게시물을 Count한뒤, 10개씩 나누어서 게시물을 가져와서 페이지에 표시한다
예전에 직장생활을 하면서 COBOL이라는 언어로 업무시스템을 개발하면서, 장부를 출력하는 업무를 개발할땐는,데이타베이스의 도움을 받기 어려워서 프로그램으로 장부를 인쇄할때 페이지당 20줄씩 프로그램으로 나누어서 프로그래밍을 했는데 , 요즘은 데이타베이스 엔진이 출력에 도움이 되는 기능을 많이 제공하고있어서 프로그램이 정말 많이 편해졌다.
오늘은 청라에 가서 무인 스터디카페 시스템을 종합 테스트를 진행했습니다. 그중에 입실.퇴실과 동시에 각각 회원의 자리의 전등제어를 하기 위해서 Sonoff의 펌웨어를 커스터마이징을 하였습니다.
이번 시스템은 중앙 집중적인 서버 방식에서 벗어나, 로컬방식으로 진행했습니다.
간혹 중앙 집중적인 서버에 문제가 생기면, 전체 스터디카페 프랜차이즈가 문제가 발생하는 것을 방지 하기 위하여, 로컬 방식으로 진행을 했습니다. 그리고 인터넷으로 인한 문제를 최소화 하기 위해서 3중 인터넷 방식으로 준비 하였습니다.
전등제어 전체 모듈에 펌웨어를 업로드 한후 , 자리예약, 입실, 퇴실을 테스트 해보니 다행스럽게 잘 동작 하였습니다.
이제 본격적으로 무인 스터디 카페가 오픈을 하면 , 조금 더 모니터링을 하면서 혹시 수정 사항이 있는지 , 다시 한번 체크할 예정입니다. 경험상 시스템의 가(假) 오픈에서 발견되지 않던 오류가 , 실제 오픈에서 발견되는 경우가 종종 있으니 신경을 더 많이 써야 하겠습니다 ㅎ.