본문 바로가기

분류 전체보기676

가상세계 산사VR, 물체 무한회전 스크립트 세컨드라이프에서 애용되었던 기술인데요. 산사에서도 가능하지만 통 샘플소스가 보이지 않아 하나 만들어 보았습니다. 스크립트는 아래와 같습니다. using Sansar; using Sansar.Script; using Sansar.Simulation; using System; public class RotateSample : SceneObjectScript { [Tooltip("속도")] [DefaultValue(1.0)] public double SpinSpeed; public override void Init() { // 회전 쓰레드 호출 StartCoroutine(RotateRoutine); } // 회원 쓰레드 void RotateRoutine() { // 회전횟수(반바퀴 기준) int times =.. 2020. 9. 30.
가상세계 산사VR, Dumm 탐방. 산사 URL : atlas.sansar.com/experiences/enricosands1/dumm Dumm Dummy´s atlas.sansar.com 산사에는 공개 월드가 5,000 ~ 10.000여개 정도 있는게 아닐까 추정됩니다. 월드 검색에서 a 만 쳐도 576개 정도의 월드가 검색되거든요. 그 중 몇군데를 찾아보다 Dumm 이란 곳이 있어서 방문해보았는데요. 방문하면 사람이 꽤 있어 보이는데, 사실은 사람이 아니라 모두 캐릭터 크기만한 인형입니다. 음악이 흘러 나오고 움직이는 인형도 일부 있어서, 뭔가 생동감이 있어 보입니다. 컴퓨터를 하고 있는 사무원, 땅바닥에 낚시를 하고 있는 사람, 노래부르고 춤추는 사람 등 다양한 부류의 사람들로 표현해놓았더라구요. 사실 위 장면이 이 월드의 전부인듯한.. 2020. 9. 30.
가상세계산사VR 그림자 켜는 법 산사가 기본으로 잡아준 그래픽 설정은 낮음 단계라서 크레이 컴으로는 그림자가 안되는줄 알았는데.. More - Settings 메뉴에서 Render quality ( 랜더링 화질 ) 을 Medium(중간) 이나 High(높음)을 잡으면 그림자가 나옵니다. 크레이 컴은 High 로 설정하면 캐릭터 피부가 이상하게 표현되어 Medium 이 적당한듯 합니다. 단점은 산사를 화면 접기하고 다른 작업을 하면 Low 상태보다 느린 문제가 있네요 ㅎ. 스샷용으로만 쓰렵니다. 아마도 고사양이신 분은 그냥 높은 설정으로 잡혔을듯 합니다. 그림자 켜고 다른 지역 가서 한번 스샷 잡아보았는데 분위기 근사하네요. 2020. 9. 30.
가상세계 산사VR의 움짤 위 움짤에서 바닥에 스크린이 하나 보이시지요? Animation Texture 라고 해서 3D 가상공간에서의 움짤 화면 기능입니다. 인터넷에는 재미있는 움짤 이미지가 많이 돌아 다니고 있습니다 :) 움짤이란 국내에서 사용하는 속어로서, 보통 "움직이는 gif", "움직이는 그림"을 지칭하지요. 이런 파일들을 가상세계 산사VR 에서도 사용할 수 있을까요? 기본적으로는 미디어 방식으로 사용할 수 있겠지만 이 방식으로는 여러개의 움짤 화면을 동시에 보는 것은 불가능합니다. 그보다는 다른 용법으로 텍스쳐 애니메이션 기술을 이용한 방법을 적용하는 방법을 알아보겠습니다. 먼저 Radio 님이 만든 영상 하나 보실까요? 산사에서 구현한 컨텐츠인데 꽤 공력을 많이 들이셨을듯 합니다. 이 것으로 무엇을 의미하는지 상당한.. 2020. 9. 27.
가상세계도 지진이 있나요? 가상세계 산사VR의 크레이 월드에서는 가끔 지진이 일어납니다. 물론 인위적이긴 하지만요 ㅎㅎ 크레이 월드 어딘가 이런 표지판이 있을텐데요. 지진을 일으키는 방법이 소개되어 있습니다. 스크립트 소스입니다 :) using Sansar; using Sansar.Script; using Sansar.Simulation; using System.Runtime.Serialization; using System; public class earthquakeScript : SceneObjectScript { public double earthQuakeTime=0.0; [DisplayName("강도")] [DefaultValue(0.4)] public double strength = 0; public override vo.. 2020. 9. 26.
가상세계의 드론(dron) 가상세계 산사 크레이의 월드에는 드론(dron) 이 있습니다. 이 드론이 얼마나 변덕스러운지 움직이다 멈추고 움직이다 멈추고 그러는데요 막 달려가 따라 잡으려고 해도 멈추는 듯 하다 갑자기 이동해버리는 바람에 따라 잡기가 여간 어려운게 아닙니다. 하지만 어느 지점에서 이 드론을 아주 가까이서 접할 수 있었지요. 그리고 이 때를 놓칠 새라 얼른 드론 위에 올라타보았더니 드론이 저를 태우고 하늘 높이 날아오르는게 아니겠습니까? 하지만 하늘에서 드론을 타고 버티는건 너무 힘들어서 곧잘 추락합니다. 다행인 것은 가상세계에서는 전혀 다치지 않는다는 것이지요 :) 뭐.. 이런 스토리입니다 :D :D :D 가상세계 산사의 드론은 현실 세계의 드론과 달라서 코딩은 아주 수월한데요. 간단히 코드 공개합니다 :) usin.. 2020. 9. 24.
가상세계 산사, The Fastest pet alive. '가장 빠른 펫'을 만나 보세요. 더 플래시(The Flash) 라는 미국 드라마를 아시나요? 세계에서 가장 빠른 사나이, 플래시 히어로가 악당들과 싸우는 미국 드라마인데, 히어로물이라니 웬지 어린이들이 볼것 같은 부류로 생각하시겠지만 천만의 말씀, 미국에서 성인분들에게 엄청 인기가 많습니다. 플래시 인트로의 핵심 대사는 "I'm the fastest man alive." ( 더 패스티스트 맨 얼라이브 ) 이지요. 비록 그런 정도는 아니지만, 크레이의 월드에서 가장 빠른 펫이 있습니다. 이 펫이 그러네요 "I'm the fastest pet alive" ( 더 패스티스트 펫 얼라이브 ) 라고요 :) 얼마나 빠르기에 자신하는 걸까요? 참고로 이 펫 모델은.. 제가 만든건 아니고.. 산사 스토어에서 무료로 구매했습니다 ㅎ.. The fast.. 2020. 9. 22.
가상세계 산사VR, Cray world, 극기훈련 컨텐츠?! 크레이 월드에 2번째 컨텐츠 "극기훈련"이 추가되었습니다. 컨텐츠라 하기에는 좀 그렇긴 하지만 좀 난이도가 있습니다 :) 고소공포증을 갖고 계신분이 VR 기기를 착용하고 시도해보신다면 극복에 도움을 줄지도 모르겠습니다. 크레이의 월드에는 하늘을 날아다니는 바위가 있습니다. 바위가 하늘을 날아다닌다니 중력의 법칙을 완전 무시해도 너무 무시하는게 아닐까 생각되는데요. 기독교에서 말하는 천국에서도 그런 신기한 일들이 벌어지고 있을지도 모르지요 :) 하늘에서도 바위가 왕복운동을 하는데요. 이 바위들을 점프해서 타고 타고 태극기 깃발이 있는 곳까지 가는 겁니다. 뭐... 보상은 없습니다 ㅎ.. 크레이는 운동신경이 둔한지라 백번은 시도한 것 같습니다. 중간에 도무지 안되서 난이도를 좀 낮추긴 했지만요 :) 크레이 .. 2020. 9. 20.
산사VR, 오브젝트간 통신 산사에서는 오브젝트들끼리도 이야기를 할 수 있습니다. 이른바 오브젝트들끼리의 통신인데요. 우리 사람들 몰래 오브젝트들끼리 이야기한다고 하니, 무슨 이야기를 할지 궁금해지는군요? :) 오브젝트간 통신에는 보내는 오브젝트, 송신에는 다음 명령이 사용됩니다. ScenePrivate.Chat.MessageScript(message, ScriptId.AllScripts, 1); 여기서 message 는 실제 통신할 내용을, 그리고 ScriptUd.AllScripts 는 모든 스크립트가 들어있는 오브젝트에 해당하고, 마지막 1은 채널 번호를 의미합니다. 채널은 마치 주파수와 같아서 각각 용도마다 그 값을 다르게 주어서 통신이 혼선되지 않게 하는 것이지요. 그리고 오브젝트의 받는 오브젝트, 수신에는 다음 명령이 사용.. 2020. 9. 19.
산사VR, 텍스트 채팅내용 인식하기 산사 VR에서도 세컨드라이프처럼 사용자의 텍스트 채팅 내용을 인식할 수 있는데요. channel 0번을 사용하는 것으로 보아 채널 사용원리는 동일한 것 같습니다. 세컨드라이프에서도 채널 0번은 일반 사용자가 채팅창에서 볼 수 있는 채널이거든요. 0번 채널로부터 메시지를 수신받는 함수는 아래와 같습니다. ScenePrivate.Chat.Subscribe(0, null, ChatMessage); 다만 ChatMessage 라는 콜백 함수의 이름을 함께 전달해 주는데요. 세컨드라이프와는 달리 콜백 함수의 이름은 자유롭게 정의하실 수 있습니다. 콜백 함수는 아래와 같이 정의하는데요. 여기서 중요한 파라미터는 3개로서 Channel 은 요청된 채널로서 여기서는 당연히 0이고, SourceId 는 채팅한 사람 또는.. 2020. 9. 19.
가상세계 산사 VR, 선택버튼 알아내기 이번 스크립트는 지난 시간에 이은 Alert 팝업창의 선택 버튼 판정 버전입니다. 지난 시간에 Alert 와 같은 팝업창을 다루어 보았지만 버튼이 2개일 때 어떤 버튼을 선택했는지 알 수 없는 문제가 있었지요? 원래는 ModelDialog.Response 에 그 값이 들어오긴 하지만, 문제는 팝업창을 띄우고 난 다음 사용자가 버튼을 선택하기 전에 그 다음 행을 계속해서 쭉쭉 실행해 나가는 문제로 인하여 아래와 같은 코드는 제대로 실행이 안됩니다. 아예 2번째 팝업창은 뜨질 않더라구요. // 유저의 클라이언트에 메시지를 띄워줍니다. agent.Client.UI.ModalDialog.Show(message, "확인", ""); : 사용자에게 팝업창을 띄우고 이 뒷부분으로 실행 계속 agent.Client.U.. 2020. 9. 19.
가상세계 산사VR, Alert 스크립트 가상세계 산사VR은 린든랩에서 포기한 컨텐츠라고도 합니다. 이른바 컨텐츠의 부족 현상 때문이라고도 하는데요. 린든 랩에서 결국은 다른 업체로 산사를 넘겼다고 합니다. 그래서 해외에서는 "Sansar is dead" 라고도 표현합니다. 최근 유튜브에 한동안 뜸했던 세컨드라이프 메이커 영상들이 다시금 활성화되는 것을 그 이유 때문이 아닌가 싶기도 합니다. 산사에서의 외국 게시글들을 보니 컨텐츠의 꽃이라 할 수 있는 기능을 담당하는 스크립트 부분이 과거 세컨드라이프에 비해 매우 난해해졌기 때문에 무언가를 만들기 대단히 어려워졌다고 하는데 실제로 해보니 그렇습니다. 세컨드라이프의 스크립트 시스템은 이른바 실시간 '인터프리터' 스크립트 시스템입니다. 눈 앞에서 실시간으로 무언가를 뚝딱 만들어서 앞에 있는 다른 사.. 2020. 9. 17.