[{"data":1,"prerenderedAt":163},["ShallowReactive",2],{"blog-\u002Fblog\u002Fwarudo-blueprint":3},{"id":4,"title":5,"body":6,"date":151,"description":70,"extension":152,"meta":153,"navigation":30,"path":154,"seo":155,"stem":156,"subtitle":157,"tags":158,"thumbnail":161,"__hash__":162},"blog\u002Fblog\u002Fwarudo-blueprint.md","WARUDO로 편의성 높은 악기 연습실 구현하기",{"type":7,"value":8,"toc":141},"minimark",[9,14,18,21,31,34,50,54,59,62,65,72,75,78,82,87,102,105,126,129,132,135,138],[10,11,13],"h2",{"id":12},"들어가며","들어가며...",[15,16,17],"p",{},"안녕하세요! 이 블로그에 글을 적어 보는 건 거의 처음인 것 같습니다. 사실 영상만 그냥 올리려다가 정보값이 너무 떨어지는 것 같아서 이쪽에라도 추가 링크를 만들고 싶었습니다.",[15,19,20],{},"이 포스트는 악기를 포함한, 방송에 필요한 각종 props를 들었다 놓았다 하는 법을 다룹니다. 물컵 같은 건 제가 물을 마실 때만 몸에 붙여주면 되는데, 악기 같은 건 방송 내내, 악기를 연주하지 않는 순간이더라도 시청자분들께 보여드리고 싶어서 이런 방법을 사용했습니다. 우선은 아래 영상을 참조해 주세요.",[22,23],"iframe",{"style":24,"src":25,"title":26,"frameBorder":27,"allow":28,"referrerPolicy":29,"allowFullScreen":30},"width: 100%; aspect-ratio: 16 \u002F 9; border-radius: 10px;","https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FdgIDwOUvSas?si=uNENfiAc90iE5lwB","YouTube video player","0","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share","strict-origin-when-cross-origin",true,[15,32,33],{},"제가 하려고 했던 것은 다음과 같습니다.",[35,36,37,41,44,47],"ul",{},[38,39,40],"li",{},"악기 2대를 기본 스탠드에 거치",[38,42,43],{},"특정 키를 조작하면 스탠드에 거치했던 악기는 빠지고 버츄얼 캐릭터가 직접 악기를 잡도록",[38,45,46],{},"다른 악기로 전환하면 원래 들고있던 악기는 스탠드로 돌아가고 새로운 악기를 잡을 수 있도록",[38,48,49],{},"악기를 잡는 경우 좀더 멀리서 보여질 수 있도록 카메라 구도 변경",[10,51,53],{"id":52},"구현-방법","구현 방법",[55,56,58],"h3",{"id":57},"props-준비하기","props 준비하기",[15,60,61],{},"말씀드린 적이 있나 모르겠지만, 사실 제 베이스들은 props가 아니라 vrm 캐릭터로서 붙어 있습니다. 그리고 이 vrm 캐릭터는 제 원래 캐릭터의 허리와 왼손에 고정되어 있는 상태입니다. props로 붙일 수도 있긴 한데, 어차피 그래도 기반이 되는 캐릭터를 1체 만들어야 합니다.",[15,63,64],{},"사실 이건 중요한 게 아닙니다. 중요한 것은 물건을 들었다 놓았다 하되, 물건을 놓았을 떄도 해당 물건이 땅바닥에 놓여져 있도록 하는 것이기 때문이죠.",[15,66,67],{},[68,69],"img",{"alt":70,"src":71},"","\u002Fimages\u002Fblog\u002Fassets.png",[15,73,74],{},"제 경우, 일단 위와 같이 아이템을 들고 있는 상태와 내려놓고 있는 상태를 모두 생성했습니다. 들고 있는 상태는 평소처럼 아바타를 트래킹할 때 함께 트래킹하도록 했고, 내려놓아진 상태에서는 특정 좌표에 고정되도록 했습니다.",[15,76,77],{},"그리고, 내려놓고 있는 상태를 디폴트 값으로, 내려놓여진 악기가 보이게 하고 들고 있는 악기는 보이지 않게 가려 주었습니다 (not enabled).",[55,79,81],{"id":80},"blueprint-만지기","blueprint 만지기",[15,83,84],{},[68,85],{"alt":70,"src":86},"\u002Fimages\u002Fblog\u002Fblueprint.png",[15,88,89,90,94,95,98,99,101],{},"제가 사용한 블루프린트입니다. 잘 보이시려나 모르겠습니다. 제 경우, 반대쪽 악기를 들고 있는 경우 그 악기를 내려놓도록 해야 하기 때문에 조금 길어졌습니다. 참고로, ",[91,92,93],"code",{},"에셋의 활성화 상태 전환하기"," 대신 ",[91,96,97],{},"에셋 활성화 전환","만 사용해도 같은 결과가 나옵니다. 이제 보니까 ",[91,100,93],{}," 블록은 한번에 활성화\u002F비활성화를 모두 변경할 수 있는 것 같군요. 악기의 갯수가 많아질 때 사용하면 좋을 것 같습니다!",[15,103,104],{},"아무튼 구조는 이렇습니다.",[106,107,108,111,114,117,120,123],"ol",{},[38,109,110],{},"키를 떼었을 때 (컨트롤 + 1\u002F2)",[38,112,113],{},"해당 키에 맞는 악기 중, 손에 들고 있는 악기의 활성화",[38,115,116],{},"해당 키에 맞는 악기 중, 내려놓아진 악기의 비활성화",[38,118,119],{},"해당 키에 맞지 않는 악기 중, 손에 들고 있는 악기의 비활성화 (이미 다른 것을 들고 있을 때를 대비)",[38,121,122],{},"해당 키에 맞지 않는 악기 중, 내려놓아진 악기의 활성화 (이미 다른 것을 들고 있을 때를 대비)",[38,124,125],{},"메인 카메라 (현재 보여지는 카메라) 를 다른 것으로 전환",[15,127,128],{},"이런 구조가, 컨트롤+1, 컨트롤+2, esc 키에서 모두 유사하게 기능합니다.",[10,130,131],{"id":131},"단점",[15,133,134],{},"이런 좋은 문명에도 단점은 있습니다! 사실 다른 건 없고, 저는 투컴 방송 중인데 원격 데스크톱 창이 활성화되어 있지 않으면 당연하게도 먹지 않습니다. 반대로 방송하는 컴퓨터로 와루도를 틀어두었다면 와루도가 활성화되어 있지 않더라도 동작하는 것으로 알고 있으니, 최대한 자주 쓰지 않는 키를 설정해두어서 외울 수 있도록 해야겠습니다.",[15,136,137],{},"실제 저는 악기를 가지러 왔다갔다해야 하는데 이미지 상에서는 원터치로 바꿀 수 있으니 약간 어이없기도 합니다. 자주 쓰는 악기는 A스탠드로 바로 옆에 내려두긴 하는데, 아무래도 재즈베이스는 A스탠드와 상성이 영 맞지 않습니다 ㅠㅠ.",[15,139,140],{},"아무튼 재미있는 방송하세요~",{"title":70,"searchDepth":142,"depth":142,"links":143},2,[144,145,150],{"id":12,"depth":142,"text":13},{"id":52,"depth":142,"text":53,"children":146},[147,149],{"id":57,"depth":148,"text":58},3,{"id":80,"depth":148,"text":81},{"id":131,"depth":142,"text":131},"2026-07-16","md",{},"\u002Fblog\u002Fwarudo-blueprint",{"title":5,"description":70},"blog\u002Fwarudo-blueprint","설정 가이드와 블루프린트가 포함되어 있어요",[159,160],"3D","영상","\u002Fimages\u002Fblog\u002Fwarudo.png","3mN8LILDGOwTQ0yJcZJCSrXeLxneVFxMINHAw4T9EV0",1786906831188]