<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://attic.with-1f.work/feed.xml" rel="self" type="application/atom+xml" /><link href="https://attic.with-1f.work/" rel="alternate" type="text/html" hreflang="en-US" /><updated>2025-07-07T17:07:14+09:00</updated><id>https://attic.with-1f.work/feed.xml</id><title type="html">_ = F = _ Blog</title><subtitle>Game Developer :D</subtitle><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><entry><title type="html">새로운 블로그로 이전했습니다.</title><link href="https://attic.with-1f.work/posts/diary/byebye" rel="alternate" type="text/html" title="새로운 블로그로 이전했습니다." /><published>2025-03-27T00:00:00+09:00</published><updated>2025-03-27T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/byebye</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/byebye"><![CDATA[<figure>
    <img class="title-image" src="/posts/images/diary/news/byebye/new_blog.png" alt="blog image" />
</figure>

<p>새로운 블로그를 개설했습니다.<br />
앞으로 여기서 활동할 예정입니다 :)</p>

<p><a href="https://memory.with-1f.work">memory.with-1f.work</a></p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">BIC 전시 후기 및 그 이후 + 피드백 정리</title><link href="https://attic.with-1f.work/posts/diary/proj2-13" rel="alternate" type="text/html" title="BIC 전시 후기 및 그 이후 + 피드백 정리" /><published>2024-09-19T00:00:00+09:00</published><updated>2024-09-19T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/proj2-13</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/proj2-13"><![CDATA[<p>이번에는 개발일지랑은 좀 멀긴 하지만…<br />
일기처럼 그간 있었던 일에 대해서 좀 적어볼까 싶습니다.</p>

<p>BIC 후기도 이미 게임개발 관련 커뮤니티에 남기긴 했지만 한 번 더 블로그에 남겨봅니다.</p>

<h3>BIC 2024 후기</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/bic2024.png" alt="BIC fest 2024" />
</figure>

<p>혼자라 부스까지 짐을 많이 들고 가지 못했습니다.<br />
놋북하고 키보드 하나, 컨트롤러 2개 챙겨서 행사장 갔습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/bic2024_2.png" alt="rental" />
</figure>

<p>PC세트 하나, 모니터 한 대 대여했는데 한 28만 원..? 정도 나왔더군요.<br />
(백월까지 합치면 38만원 정도… 그나마 다행인건 숙소를 제공받았다는 것.)</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/bicfest1.jpg" alt="BIC fest 2024" />
</figure>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/bicfest2.jpg" alt="BIC fest 2024" />
</figure>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/bicfest3.jpg" alt="BIC fest 2024" />
</figure>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/booth1.jpg" alt="booth" />
</figure>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/booth2.jpg" alt="booth" />
</figure>

<p>다들 전시 준비하고 있을 때 몰래 찍어놓은 사진들. 부스 엄청 많아서 놀랬습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/developers_wall.jpg" alt="Developer's Wall" />
</figure>

<p>Developer’s Wall
개발자들의 낙서나 문구를 볼 수 있는 공간.
저도 뒤늦게 낙서 하나 남겨두긴 했는데 그 뒤로 가보지 못했습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/inventory.jpg" alt="INVENTORY INDIE" />
</figure>

<p>INVENTORY INDIE
개발자들이 뿌리거나 판매하는 굿즈들을 전시하는 공간.
자유롭게 가져온 굿즈를 전시하고 메모를 남겨둘 수 있었습니다.
여기도 누가 더 굿즈를 전시했을 텐데 사진은 못 찍어왔습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/photocard.jpg" alt="END FETCHERS photocard" />
</figure>

<p>이건 제가 뿌린 포토카드. (몇백 장 뽑았는데 한 80장 정도만 가져가심… 흑흑)</p>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/goods.jpg" alt="goods" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/goods2.jpg" alt="goods" />
    </figure>
</div>

<p>부스 짤막하게 돌아다닐 때 받거나 개발자분이 직접 오셔서 주신 것들.
명함도 많이 받았는데 대부분 실명이 적혀있어서 이것만 올려용</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/bic/play.jpg" alt="END FETCHERS booth" />
</figure>

<p>본격적으로 게임을 만들어보고 전시하는 것은 처음이라 사람들이 과연 올지 걱정했는데 생각보다 많이 와주시더군요.
(빈자리가 있어도 5분, 10분이면 바로 채워지는 느낌..?)</p>

<p>플레이존에서 이미 플레이하시고 이야기하러 오신 분도 있었는데 제 게임을 정말 깔끔하게 분석하셨더라고요.
몇 가지 질문에 대답해 드리고, 다른 사람의 플레이를 같이 관찰하면서 여러 피드백을 받았는데 정말 재밌었습니다.
이렇게까지 정성스런 피드백과 유감없이 깔끔한 의견을 들어본 게 정말 오랜만이었거든요.<br />
게임에 대한 이야기를 나누면서 순수하게 즐거웠던 몇 안 되는 시간이었습니다. 진짜 너무 감사했습니다.</p>

<p>(가끔가다가 제 게임을 분석해 가시면서 플레이하시는 분이 있었는데 알고 보니 엄청난 게임 개발자였다던가.. 하는 일도 종종 있었습니다. 정말 놀랐습니다. 누군지는 비밀)</p>

<p><br /></p>

<p>그리고 한 번씩 제가 쓰는 게임 엔진을 물어볼 때가 있었는데 그때마다 게임메이커라고 밝히면 다들 놀라셨습니다. (반응이 좀 재밌더군요)<br />
겜메단 화이팅! 하고 가시던 분도 있었습니다 ㅋㅋ</p>

<p><br /></p>

<p>그나저나 부스를 같이 지킬 친구가 없으면 다른 부스 구경하기 정말 힘들더군요. 밥도 먹기 힘들고요.
토요일 하루는 친구가 같이 부스를 지켜주긴 했는데 개발자가 아닌 평범한 친구였기에 부스를 오래 맡길 수 없었습니다…
그래도 덕분에 마음 놓고 라이브인디 참여하고 아주 쪼금 돌아다닐 수 있었네요.<br />
(다른 날은 그냥 굶으면서 부스 지키긴 했는데 배고픔보단 다리랑 허리가 너무 아팠습니다. 이렇게까지 체력이 거지였다니. 친구를 구할 수 있으면 반드시 구하도록 합시다…)</p>

<p>1인 개발자라 혼자 부스 지키는 거 아시고 자주 와주신 개발자도 많았는데 너무 감사했습니다. 사랑합니다.</p>

<p><br />
<br /></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/finalist.png" alt="finalist" />
</figure>

<p>자랑할 거 하나.<br />
제 게임이 루키부문 액션에서 파이널리스트에 올랐습니다!<br />
수상은 못했지만 그래도 기쁘네요. 후보에 오른 게 어딥니까 XD</p>

<p><br />
<br /></p>

<h3>그 이후</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/tumblbug.png" alt="tumblbug" />
</figure>

<p>BIC 행사에 맞춰서 <a href="https://tumblbug.com/end_fetchers">텀블벅</a>을 열었었습니다. 뭐 펀딩은 무산되었지만요.<br />
행사장에서 포토 카드를 나눠드리면서 알려보기도 하고, 인스타그램에도 올려보고 트위터에도 올려보고 인디게임 관련 커뮤니티에도 홍보해 보고 했었습니다.</p>

<p>게임에 대해서 많은 피드백과 칭찬을 받긴 했지만 정작 후원으로 이어지지는 않더군요. 
홍보하려는 노력이 부족했다고도 느껴지긴 합니다. 
리워드가 매력적이지 않아서일 수도 있고요. 뭐 이유야 많을 겁니다.</p>

<p>(사실 다른 홍보 방법도 있긴 했지만, 게임을 더 다듬고 나중에 내놓는게 좋을 것 같았습니다.)</p>

<p>그래도 후회되지는 않습니다. 펀딩이라도 열어봐서 다행이라고 생각되네요.
지나가다가 관심 가져주시는 분도 많으셨고, 연락 주시는 사람들도 많았으니까요.
또 이런 게임이 개발 중이라는 소식도 조금 홍보할 수 있었고요.</p>

<p><br /></p>

<p>퍼블리셔 제안도 들어오기는 했는데 잘모르겠습니다. 몇 년 정도 잡아둔 짧지 않은 개발기간으로 인해서 여러 조건이 붙더군요. 
다른 사람이었으면 나쁘지 않았을 제안이었을 텐데 1인 개발로 이어가고 싶은 저에게는 거절할 수밖에 없는 조건들이 많았습니다.</p>

<p><br /></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/minidump.png" alt="rkgk" />
</figure>

<p>아무튼 이제 저는 개발에만 몰두할 수 있는 환경이 아니게 되었습니다. 게임 개발보다는 취업하기를 원하는 집안 분위기도 한몫하고요.</p>

<p>시간이 날 때마다 개발을 이어 나가는 것으로 일정을 바꿨습니다.<br />
퍼블리셔 제안을 받아들이거나 특별한 상황이 일어나지 않는 이상,
텀블벅에 적어놨던 일정보다 2~3배는 긴 개발기간이 될 것 같습니다.</p>

<p>진짜 기대해 준 사람들에게 너무 미안해지네요.</p>

<p>그래도 개발은 계속 이어 나갈 예정이니 너무 아쉬워하진 말아 주세요 :)</p>

<p><br />
<br /></p>

<h3>여태 받았던 피드백</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/curation.png" alt="END FETCHERS" />
</figure>

<p>사실 게임을 전시할 때 많은 것을 보여주기는 힘든 상황이니 <code class="language-plaintext highlighter-rouge">주사기</code>라는 메인 무기의 특성을 살려서 어떤 플레이를 하게 되는 게임인지를 보여주자! 라는 느낌으로 데모를 만들었습니다.</p>

<p>물론 아무리 짧은 데모라도 게임을 즐길 요소는 있어야 한다고 생각했기에 
여러 몹들을 상대하는 방법을 간단히 익힐 수 있게끔, <code class="language-plaintext highlighter-rouge">메트로배니아</code>라는 느낌도 충분히 받을 수 있게끔 레벨을 디자인했었습니다.</p>

<p>그런데 플레이하는 데 있어서 느껴지는 즐거움보다는 불편함에 대한 이야기가 더 많이 돌아오더라고요.</p>

<p>일단 주로 받았던 피드백을 쭉 정리해 봤습니다.</p>

<ol>
  <li>맵에 내던져지는 감성.. 좋긴하나 스토리가 필요하다.</li>
  <li>공격 선딜레이, 후딜레이 제거가 필요하다. 여러모로 답답하다.</li>
  <li>주사기 손잡이를 활용하는 모습이 있었으면 좋겠다.</li>
  <li>매달리는 구간이 많아서 조금 불쾌하다.</li>
  <li>전투민족을 위한 공격 가능한 순간들이 자주 있었으면 좋겠다.</li>
  <li>배경하고 밟을 수 있는 땅 구분이 어렵다.</li>
  <li>캐릭터가 너무 크다. 시야각을 넓히거나 캐릭터를 줄이는 게 좋을 듯하다.</li>
  <li>일관성이 있는 분위기가 필요하다. 어떤 게임인지 감이 잘 안 온다.</li>
  <li>튜토리얼치고는 세이브 포인트가 너무 뒤에 있다.</li>
  <li>보스가 1스테이지 기믹으로 넣기에는 부적절한 느낌. -&gt; 불쾌함을 느끼기 좋다.</li>
  <li>체력바가 오해하기 쉽다. 수정이 필요해 보인다.</li>
  <li>왜 기술을 써야 하는가? 에 대한 설명을 하는 것에 초점을 둬야한다.</li>
  <li>신선함이 별로 없었다.</li>
  <li>레벨 디자인 수정 필요해보인다.</li>
  <li>가드와 구르기 버튼 서로 바꾸는게 좋아보인다.<br />
… 등등</li>
</ol>

<p><br /></p>

<p>이렇게 많은 피드백이 오는 것을 보면 ‘주사기라는 무기의 매력을 좀 살려보고자 했던 노력’보다는 ‘플레이에서 느낄 수 있는 경험’을 우선시했야 했나..? 하는 생각도 듭니다.
게임이니 어찌 보면 당연하였겠죠.</p>

<p>아무튼 긴 시간을 들여 디자인된 레벨은 아니었기에 지금의 데모는 싹 갈아엎을 예정이긴 합니다. 
그 과정에서 맵이나 난이도, 튜토리얼, 스토리에 관련된 문제를 해결해 보려고 합니다. 겸사겸사 타일 리소스도 좀 수정하고요.</p>

<h3>2번 피드백</h3>

<p><code class="language-plaintext highlighter-rouge">2. 공격 선딜레이, 후딜레이 제거가 필요하다. 여러모로 답답하다.</code></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/enemy_test.gif" alt="enemy test" />
</figure>

<p>공격 딜레이에 관해서는 일단 유지하려고 합니다.<br />
공격이 답답하다고 많이 이야기하지만, 기동성이 좋아지면 거기에 맞춰서 적의 움직임도 빠르게, 그리고 까다롭게 만들어야 할 겁니다. 
그러면 또 게임이 플레이어에게 요구하는 피지컬이 높아질 수도 있겠죠. 그건 제가 원하는 방향이 아닙니다.</p>

<p>이대로 제 취향대로 치고 빠지는, 그리고 순간순간의 선택이 중요한 그런 플레이로 만들어가려고 합니다.
(공격 버튼만 막 눌러도 게임이 진행된다거나, 달리기만 해도 모든 공격이 피해지는 그런 디자인은 피하고 싶기도 하고요.)</p>

<h3>7번 피드백</h3>

<p><code class="language-plaintext highlighter-rouge">7. 캐릭터가 너무 크다. 시야각을 넓히거나 캐릭터를 줄이는게 좋을 듯 하다.</code></p>

<p>충분히 납득이 되면서 확실히 이걸 고치면 게임이 많이 좋아지겠다! 하고 느끼게 해준 피드백입니다. 
혼자서 개발하고 있을 때는 전혀 눈치채지 못했던 부분이죠.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/remake.png" alt="remake" />
</figure>

<p>그래서 지금 스프라이트를 모두 수정하고 있습니다. 아주 천천히. 느리게요.</p>

<p>어떤 분이 물었습니다.<br />
Q. 그냥 카메라의 크기를 늘리거나 하면 안 돼요? 그럼 더 적은 노력으로 문제가 해결될 텐데요.</p>

<p>퍼펙트 픽셀을 포기할 수가 없었기에 단순한 방법으로 카메라의 크기를 늘릴 수가 없었습니다. 
언젠가 닌텐도 버전으로도 내놓고 싶었기에 16:9 비율로 픽셀이 깨지지 않게끔 창의 크기를 고정해 놓았거든요.</p>

<p>그래서 이 창의 크기가 1픽셀이라도 틀어지는 순간 화면 어딘가 깨지는 현상이 나타날 겁니다. 
이건 제가 용납할 수 없어요. 덕분에 고생하고 있지만요.</p>

<h3>11번 피드백</h3>

<p><code class="language-plaintext highlighter-rouge">11. 체력바가 오해하기 쉽다. 수정이 필요해 보인다.</code></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/ui.png" alt="HP ui" />
</figure>

<p>처음에 이 게임을 접하는 사람들이 체력이 뭔지 바로 알아보기 힘들었다고 합니다. 
피 게이지를 체력으로 착각한 사람도 있었고요.</p>

<p>그리고 하트가 작아서 게임하는 도중에 체크하기 어렵다는 이야기도 있었습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/ui2.png" alt="HP ui" />
</figure>

<p>처음에는 주사기를 가로로 눕혀서 보여주려고 했었으나…</p>

<p>게이지가 차면 찰수록 손잡이가 화면을 가려버리는 상황이 생기더군요. 
게다가 무기마다 크기나 실린더 위치가 달라지니 무작정 가로로 눕히기에 애매했습니다.</p>

<p>록맨과 같이 세로로 세운 HP바도 있으니 괜찮지 않을까?<br />
하는 생각을 하면서…</p>

<p>UI가 화면을 차지하는 공간이 언제나 일정하게끔, 손잡이 부분은 화면 밖에 나가버리도록 만들었습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/ui3.png" alt="HP ui" />
</figure>

<p>그래도 세로로 표기하는 방식이 보편적인 방식이 아니기에 직관성이 떨어지는 것은 어쩔 수 없는 것 같네요. 
하트 표시만이라도 따로 분리해서 크게 보여주든지 해야겠습니다.</p>

<p>뭐 이것저것 계속 고민해 보고 있습니다.</p>

<p><br />
<br /></p>

<h3>생각해 둔 것들</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/001.png" alt="idea 1" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/002.png" alt="idea 2" />
    </figure>
</div>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/003.png" alt="idea 3" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/004.png" alt="idea 4" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/13/005.png" alt="idea 5" />
    </figure>
</div>

<p>피와 주사기를 적극적으로 활용할 기믹이 없을까 하고 생각해 둔 것들입니다.</p>

<p>적의 시야를 피로 가려버린다거나,<br />
피 폭발을 이용한 2단 점프나,<br />
주사기를 터트리는 대신 위기를 벗어나는 기술이라던가,<br />
피를 이용해서 다른 장소를 터트리거나 장치를 움직이게 만든다거나…<br />
등등</p>

<p>좀 더 전략적인 플레이가 가능하게끔 이런저런 아이디어를 끄집어내고 있습니다.</p>

<p><br />
<br />
<br /></p>

<h3>마무리</h3>

<p>솔직히 말하면 요즘 제가 게을렀습니다.<br />
여태껏 혼자서 달려와서 그런지 전시가 끝나고 힘이 쭉 빠지더라고요. 정신 차리겠습니다.</p>

<p><br /></p>

<p>게임을 전시하고 펀딩을 진행하면서 관심 가져주셨던 모든 분께 너무 죄송합니다. 그리고 감사합니다.</p>

<p>이렇게 많은 사람들과 소통하면서 보내는 시간 엄청 즐거웠습니다.</p>

<p>힘들 때마다 떠올릴 수 있는 추억이 될 것 같네요.</p>

<p><br />
<br /></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/13/continue.png" alt="continue" />
</figure>

<p>앞으로 정말 긴 주기로 개발일지를 작성해서 올리도록 하겠습니다.<br />
어쩌다 생각나면 한 번씩. 블로그 들러주세요 (빵긋)</p>

<p>이제 정말로 글을 마치겠습니다.</p>

<p><br /></p>

<p>그럼. 모두 즐거운 밤 보내시길!</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[이번에는 개발일지랑은 좀 멀긴 하지만… 일기처럼 그간 있었던 일에 대해서 좀 적어볼까 싶습니다.]]></summary></entry><entry><title type="html">END FETCHERS main character 2</title><link href="https://attic.with-1f.work/posts/pixelart/end_fetchers_2" rel="alternate" type="text/html" title="END FETCHERS main character 2" /><published>2024-09-02T00:00:00+09:00</published><updated>2024-09-02T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/pixelart/end_fetchers_2</id><content type="html" xml:base="https://attic.with-1f.work/posts/pixelart/end_fetchers_2"><![CDATA[<h3>END FETCHERS</h3>

<figure>
    <img class="art" src="/posts/images/myworks/2024-9-2_1.png" alt="END FETCHERS" />
</figure>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="pixelart" /><category term="pixelart" /><summary type="html"><![CDATA[END FETCHERS]]></summary></entry><entry><title type="html">포스터 느낌으로 한 장</title><link href="https://attic.with-1f.work/posts/pixelart/end_fetchers_1" rel="alternate" type="text/html" title="포스터 느낌으로 한 장" /><published>2024-09-01T00:00:00+09:00</published><updated>2024-09-01T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/pixelart/end_fetchers_1</id><content type="html" xml:base="https://attic.with-1f.work/posts/pixelart/end_fetchers_1"><![CDATA[<h3>END FETCHERS</h3>

<figure>
    <img class="art" src="/posts/images/myworks/2024-9_1.png" alt="END FETCHERS" />
</figure>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="pixelart" /><category term="pixelart" /><summary type="html"><![CDATA[END FETCHERS]]></summary></entry><entry><title type="html">사운드 작업</title><link href="https://attic.with-1f.work/posts/diary/proj2-12" rel="alternate" type="text/html" title="사운드 작업" /><published>2024-07-21T00:00:00+09:00</published><updated>2024-07-21T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/proj2-12</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/proj2-12"><![CDATA[<p>이 게시글까지 작성한다면.. 게임을 만드는데 있어서 필요한 워크플로우를 모두 보여드렸다고 생각해도 될 듯 하네요. (아마도요)</p>

<h3>효과음 만드는 과정</h3>

<figure>
    <div class="video">
        <iframe src="https://www.youtube-nocookie.com/embed/mfGGAzgp65w?si=OvO-sC_Wx-vgacnv" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>
    </div>
</figure>

<p>대부분의 효과음은 영상처럼 만듭니다. 여러 샘플들을 구하고 가공해서 새로운 효과음으로 만들죠.</p>

<p>사운드를 뒤집기(reverse)도 하고, 늘리고 줄이기도 해보고.. 여러 효과를 집어넣어 보면서 제가 원하는 소리를 찾아냅니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/12/ableton_sound_effect.png" alt="ableton effect" />
</figure>

<p>대부분 제가 사용하는 기능들입니다.</p>

<p>Saturator - 증폭시키면서 소리를 왜곡시킴<br />
Reverb - 울리는 듯한 소리를 만들어냄<br />
Echo - 메아리 같은 소리를 만들어냄<br />
Compressor - 소리가 겹쳐서 강조시키고 싶은 소리가 묻힐 때 사용<br />
EQ - 특정 음역대의 소리를 높이거나 줄임<br />
Auto pan - 패닝과 진폭을 조절함</p>

<p>이것 외에도 여러 플러그인을 가져와서 효과를 넣어보기도 합니다. 소리가 바뀌는 것을 실시간으로 보고 있으면 정말 재밌습니다.</p>

<p><br />
<br /></p>

<h3>효과음을 만들기 위한 샘플 모으기</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/12/sfxr_screenshot.png" alt="sfxr" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/12/bfxr_screenshot.png" alt="bfxr" />
    </figure>
</div>

<p>로얄티 프리인 사운드를 가져와서 많이 작업하긴 합니다만, 그래도 현실에서 구현하기 어려운 소리도 정말 많습니다. 
레이저를 쏘는 소리라던가 코인을 먹는 소리라던가 말이죠.</p>

<p>이때 ‘sfxr’나 ‘bfxr’같은 8bit 효과음 생성기 프로그램을 가져와서 해결합니다. 저는 이걸로 한 100개 정도 되는 사운드 샘플을 미리 만들어놓고 필요할 때 가져다 쓰고 있습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/12/tree_tone.png" alt="ableton tree tone" />
</figure>

<p>바람 부는 소리는 에이블톤의 <a href="https://www.youtube.com/watch?v=_mk7qyzEcCQ">Tree Tone</a>기능으로 처리하고 있습니다. 
단순히 실로폰을 두들기는 소리만 낸다고 생각했는데 소음을 발생시키는 부분을 건드리면 바람 부는 소리로 바꿀 수 있더군요. 
꽤나 소리가 좋습니다.</p>

<p><br />
<br />
<br /></p>

<figure>
    <div class="video">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/VySpCwxvRec?si=TfWfPX6kYwCIW9tJ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen=""></iframe>
    </div>
</figure>

<p>그렇게 만든 여러 효과음을 적용시킨 모습입니다.<br />
에이블톤에서 비디오를 띄워놓고 사운드 작업을 할 수 있어서 빠르게 만들 수 있었네요. (옛날에는 여러 번 효과음을 넣었다 뺐다 하면서 테스트 했었는데.. 정말 행복합니다.)</p>

<p><br />
<br />
<br /></p>

<h3>BIC Fest 2024 루키부문 선정</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/12/BIC_2024.png" alt="BIC Festival 2024 - END FETCHERS" />
</figure>

<p>END FETCHERS 게임이 ‘BIC Festival 2024’에 전시됩니다..! 끼얏호<br />
(게임에 스토리는 담아내지 못했습니다.. 시간이 너무 부족해요ㅠ)</p>

<p>데모는 어느정도 만들어졌으니 이제 작품 전시를 위해서 이것저것 준비해야겠습니다. 컨트롤러도 준비하고.. 엽서라던가 스티커 정도의 굿즈도 만들어가고 싶네요.</p>

<p><br />
<br /></p>

<p>그럼 모두 즐거운 밤 보내시길 바라면서… 글을 마치겠습니다.</p>

<p>모두 행사장에서 봐요!</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[이 게시글까지 작성한다면.. 게임을 만드는데 있어서 필요한 워크플로우를 모두 보여드렸다고 생각해도 될 듯 하네요. (아마도요)]]></summary></entry><entry><title type="html">사운드 시각화를 위한 데이터 처리</title><link href="https://attic.with-1f.work/posts/study/study-2" rel="alternate" type="text/html" title="사운드 시각화를 위한 데이터 처리" /><published>2024-06-24T00:00:00+09:00</published><updated>2024-06-24T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/study/study-2</id><content type="html" xml:base="https://attic.with-1f.work/posts/study/study-2"><![CDATA[<div class="wave-player" data-music_url="/posts/files/audio/junk_2024_001.wav" data-error="failed to load music file...">
    loading...
</div>

<p>우선 결과물부터. 
오디오 전체의 파형 데이터를 가져온 뒤 현재 감지되는 소리의 주파수를 이용해서 움직이게 만들었습니다.</p>

<p>(무료 플러그인들을 주워담다가 이렇게 움직이는 플레이어를 봤는데 너무 이쁘더군요. 그래서 비슷하게 만들어봤습니다.)</p>

<p><br />
<br /></p>

<h1 id="1-오디오-데이터">1. 오디오 데이터</h1>

<p>먼저 사운드를 다룰려면 어떤 식으로 이루어져 있는지 확인해야겠죠. 제 전공은 아니기에 깊이있는 내용을 다루진 않을 겁니다.</p>

<p>오디오 데이터는 수백수만 개의 여러 샘플로 구성되어 있습니다. 
샘플링된 데이터가 연속적으로 붙어있는 형태죠. (44,100hz 또는 48,000hz 단어를 보셨을 겁니다. 이게 초당 44100번 또는 48000번의 샘플링이 이루어졌다는 의미입니다.)</p>

<p>여기서 중요한 것이 이 샘플에는 어떠한 데이터가 들어있냐는 것입니다.</p>

<figure>
    <img class="title-image" src="/posts/images/study/03/waves.png" alt="sine waves" />
</figure>

<p>바로 특정 시점에서의 오디오 파형입니다. 이 파형은 여러 정현파들의 합으로 이루어져 있죠.
(정현파의 주파수는 음의 높이를, 진폭은 음의 세기를 담당합니다.)</p>

<p>이게 무슨 뜻인가..?<br />
소리에는 낮은 음역대, 중간 음역대, 높은 음역대 별로 다양한 음이 포함되어 있습니다. 
즉, 가지각색의 다양한 정현파들이 존재한다는 의미입니다.</p>

<p>낮은 주파수에 높은 진폭을 가진 음이라던가, 높은 주파수에 낮은 진폭을 가지는 음이라던가… 말이죠. 
이 음들이 모두 합쳐져서 소리가 만들어집니다.</p>

<p><br />
<br /></p>

<h1 id="2-데이터-처리">2. 데이터 처리</h1>

<p>이제 이 정현파들을 분리시켜서 각 주파수 별로 진폭 값을 알아내야 합니다. 
하나로 만들어져 있는 곡선을 여러 개의 정현파들로 분리시키는 과정이 필요합니다.</p>

<p>여기서 푸리에 변환(Fourier Transform)이란 것을 이용합니다. 정현파의 진폭 또는 위상을 구할 수 있죠.
(더 상세히 이야기하자면 복잡한 모양의 주기 함수를 푸리에 급수로 분해시키고, 여러 sin, cos들을 뽑아내는 과정입니다.)</p>

<p>다행히도 Web API에 AnalyserNode 인터페이스를 제공해주는데 여기서 ‘고속 푸리에 변환’ 기능을 제공해줍니다. fft 사이즈만 잘 조절하면 쉽게 계산할 수 있습니다.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>// AudioContext 생성
// 모든 Web Audio API 작업의 기반이 됨
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();

// AudioContext를 사용하여 AnalyserNode 인스턴스를 생성
// 그리고 FFT 사이즈 설정
var analyser = audioCtx.createAnalyser();
analyser.fftSize = 2048;

// 데이터 배열 생성 - 푸리에 변환을 거친 결과 값을 저장하기 위함
var bufferLength = analyser.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);

// audio 태그로부터 소스를 생성
var source = audioCtx.createMediaElementSource(audio);

// 분석될 소스에 연결
source.connect(analyser);

// 마지막으로 데이터 수집
// getByteFrequencyData 메소드도 있음!
analyser.getByteTimeDomainData(dataArray);
</code></pre></div></div>

<p>이런 과정을 거치고 나면 파형의 데이터나 주파수 영역 데이터를 얻어올 수 있습니다.</p>

<p><br />
<br /></p>

<h1 id="3-주파수-스펙트럼">3. 주파수 스펙트럼</h1>

<figure>
    <img class="title-image" src="/posts/images/study/03/line.png" alt="line scale" />
</figure>

<p>계산된 데이터를 이쁘게 보여주려면 또 보기 편하게 조정해야겠죠. 
주파수 영역 데이터를 선형 그래프로 보여주면 저음역대가 아주 좁게 나오는 것을 볼 수 있습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/study/03/log.png" alt="log scale" />
</figure>

<p>하지만 로그 스케일로 표현한다면 낮은 주파수 성분을 더 넓고 세밀하게 표현시킬 수 있습니다.</p>

<p>로그 스케일로 축을 계산하는 방법입니다.</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>logspace(start, stop, n, max){
    return start * Math.pow(stop/start, n/(max-1));
}

&gt;&gt;&gt; logspace(20, 20000, 0, 1000)
20.0
&gt;&gt;&gt; logspace(20, 20000, 100, 1000)
39.93284900219588
&gt;&gt;&gt; logspace(20, 20000, 999, 1000)
20000.0
</code></pre></div></div>

<p><br />
<br />
<br /></p>

<p>이렇게 보정된 데이터로 자신의 입맛대로 이쁘게 오디오 트랙을 그려주면 완성입니다 :)</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="study" /><category term="study" /><summary type="html"><![CDATA[loading...]]></summary></entry><entry><title type="html">그래픽, 이펙트</title><link href="https://attic.with-1f.work/posts/diary/proj2-10" rel="alternate" type="text/html" title="그래픽, 이펙트" /><published>2024-06-18T00:00:00+09:00</published><updated>2024-06-18T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/proj2-10</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/proj2-10"><![CDATA[<p>오랜만입니다. BIC 페스티벌에 참가할려고 정신없이 쭉 달렸습니다.<br />
혼자서 모든 걸 작업하다보니 개발일지를 작성할 여유가 없어서… 이제서야 작성하게 되네요. 정말 죄송합니다.</p>

<p>(난잡했던 개발일지도 아주 조금 수정했습니다.)</p>

<p>아무튼! 작업한 것들을 바로 소개하겠습니다.</p>

<h3>fake3d 적용</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/position.gif" alt="fake3d weapon" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/position2.gif" alt="fake3d weapon" />
    </figure>
</div>

<p>이전에 만들었던 fake3d를 적용했습니다.<br />
각 동작마다 x축, y축, z축 기울기 데이터가 필요하다보니 쉽게 작업할 수 있도록 임시 에디터를 만들었습니다. 
기울기 데이터 파일을 작성하는 김에 손 위치와 머리 높이에 대한 값도 기록해두었습니다.</p>

<p>오른쪽 사진을 보고 눈치채셨겠지만, 피 게이지에 따라 실린더에 피가 채워지고, 주사기의 길이가 달라집니다. 
주사기의 길이가 길어질수록 공격리치가 길어지는 효과도 넣을 수 있을겁니다. (아직 구현까지는 못했습니다.)</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/tracking.gif" alt="boss moving" />
</figure>

<p>몬스터에도 입체감을 주기 위해 조금의 수학 공식을 이용해서..<br />
3D와 비슷하게 보이게끔 만들었습니다.</p>

<p>여기에는 어떤 값에 따라서 길이가 변한다거나 이미지가 크게 변하는 것이 없었기 때문에 정점 처리(vertex processing)로만 구현했습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/vertex_processing.png" alt="vertex processing" />
</figure>

<p>4개의 vertex로 2개의 삼각형을 만들어냅니다. 그리고 각 삼각형 모양의 프리미티브(primitive)에 텍스처를 적용하면 됩니다.</p>

<p>그러면 텍스처의 정보는 유지한 상태로 vertex만을 조절하여 쉽게 이미지를 변형시킬 수 있습니다.</p>

<p><br />
<br /></p>

<h3>곡선</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/curve_1.gif" alt="hermite spline" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/curve_3.png" alt="hermite spline 2" />
    </figure>
</div>

<p>Hermite spline을 이용해서 곡선을 구현했습니다.<br />
두 곡선을 그리고 n등분하여 (n+1) * 2개의 점을 만듭니다. 그리고 사다리 같은 형태로 n * 2개의 삼각형을 만들어줍니다. 
마지막으로 그라데이션 느낌이 나도록 색을 칠해주면 완성입니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/curve_2.gif" alt="hermite spline 3" />
</figure>

<p>각 점을 잘 잡아서 멋진 곡선을 만들어주고…</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/curve_4.gif" alt="result" />
</figure>

<p>만들었던 곡선 이미지를 UV Map 처럼 이용해서 쉐이더를 적용하면 이런 결과물이 나옵니다. 
꽤 멋진 궤도를 그릴 수 있습니다. XD</p>

<p><br />
<br /></p>

<h3>이펙트, 진동</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/death.gif" alt="death motion" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/10/add_vibration.gif" alt="effect" />
    </figure>
</div>

<p>강렬한 이펙트와 진동입니다. 거기에 왜곡 효과와 색수차 효과까지!<br />
이전보다 훨씬 보기 좋네요. 마음에 듭니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/enemy_test.gif" alt="enemy test" />
</figure>

<p><br />
<br /></p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/animation_curve.png" alt="animation curve" />
</figure>

<p>진동은 Animation Curve 기능을 이용해서 구현했습니다. 0 에서 1로 갈 때 높이 조절을 쉽게 작업할 수 있으니 정말 좋네요.<br />
(이걸로 컨트롤러 진동도 제어했습니다!)</p>

<p><br />
<br /></p>

<h3>애니메이팅</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/wip.gif" alt="work process" />
</figure>

<p>모션 그리는 것은 이렇게… 작업하고 있습니다.<br />
틀을 잡고 (머리) -&gt; (몸통) -&gt; (다리) -&gt; (주사기 위치 조절) -&gt; (혈흔 효과) 순으로 하나하나 노가다로 그리고 있습니다…</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/animating.gif" alt="animating" />
</figure>

<p>전체적인 과정을 보면 이렇습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/blood_animating.png" alt="blood animating" />
</figure>

<p>이펙트를 그릴 때는 이렇게 에이스프라이트 배경 타일 색을 어둡게 설정해서 작업합니다. 
이 작업만큼은 이런 세팅이 눈을 덜 피로하게 해주더라고요.<br />
Onion skin을 씌웠을 때 이전 프레임도 잘 보여서 작업하기가 더 수월해집니다.</p>

<p><br />
<br /></p>

<h3>다음 목표</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/10/cute_enemy.gif" alt="cute enemy" />
</figure>

<p>다음은 렌더링의 상세한 과정을 보여드리겠습니다.</p>

<p><br />
<br /></p>

<p>그럼..</p>

<p>즐거운 밤 되시길!</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[오랜만입니다. BIC 페스티벌에 참가할려고 정신없이 쭉 달렸습니다. 혼자서 모든 걸 작업하다보니 개발일지를 작성할 여유가 없어서… 이제서야 작성하게 되네요. 정말 죄송합니다.]]></summary></entry><entry><title type="html">렌더링 과정</title><link href="https://attic.with-1f.work/posts/diary/proj2-11" rel="alternate" type="text/html" title="렌더링 과정" /><published>2024-06-18T00:00:00+09:00</published><updated>2024-06-18T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/proj2-11</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/proj2-11"><![CDATA[<p>데모로 제출할 수 있을 만큼의 시각적인 즐거움을 주기위해. 꼼수를 부렸습니다.</p>

<h3>빛, 그림자, 그라데이션</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/savepoint.png" alt="result" />
</figure>

<p>게임에서 다양한 색상의 빛이 사용되었습니다. 
각 맵의 테마 색과 다른 색이더라도 그라데이션 느낌이 나도록 은은하게 깔아주면 분위기가 확 살아나더라고요.</p>

<p><br />
<br /></p>

<h3>렌더링의 상세 과정</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/shadow.png" alt="shadow" />
</figure>

<p>먼저 풀의 그림자입니다. 사실 종이 조각을 레이어로 쌓아논 느낌이 강하긴 합니다.</p>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/000.png" alt="shadow rendering 1" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/002.png" alt="shadow rendering 2" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/004.png" alt="shadow rendering 3" />
    </figure>
</div>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/001.png" alt="previous" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/003.png" alt="previous" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/005.png" alt="previous" />
    </figure>
</div>

<p>위 아래 순으로 결과 이미지와 렌더링에 필요했던 이미지입니다.<br />
normal map 이라고 부르기에는 조금 민망한 이미지네요.<br />
단순히 깊이 값을 기록해두었다는 느낌에 가깝습니다.</p>

<blockquote>
  <p>그림자는 어떤 식으로 표현했는가?</p>
</blockquote>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/shadow_001.png" alt="explanatory image" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/shadow_002.png" alt="explanatory image" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/shadow_003.png" alt="explanatory image" />
    </figure>
</div>

<p>빛이 시작되는 위치에서 빛이 그려지는 곳까지의 깊이 값을 이용합니다.<br />
(이 이미지에서 깊이는 밝기 값과 동일합니다.)</p>

<p>그려지는 방식은 간단합니다. 
그려지는 곳(빨간 마크)에서 빛(청록 마크)으로 이동하면서 계산하는데 만일 녹색 사각형으로 표시된 부분처럼 현재 위치보다 더 작은 깊이 값을 만나게되면 밝기 값을 낮춰서 빛을 그립니다.</p>

<p>반대로 깊이 값이 유지되거나 커지기만 한다면 그림자는 생기지 않습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/shadow_004.png" alt="explanatory image" />
</figure>

<p>이런 식으로 빛이 그려지게 됩니다. 사실 그림자를 그린다는 표현보다는 빛을 그리면서 그림자가 생겨난다는 말이 더 어울리는 것 같네요.</p>

<p><br />
<br /></p>

<h3>빛</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/sunlight.png" alt="sunlight" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/11/light.png" alt="light" />
    </figure>
</div>

<p>빛의 형태는 이 두 가지만 사용하였습니다. 어딘가에서 길게 내려오는 빛과, 사방으로 퍼지는 빛입니다.</p>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/06/light4.gif" alt="background with light" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/06/light6.gif" alt="result" />
    </figure>
</div>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/lighting_result.png" alt="result" />
</figure>

<p><a href="/posts/diary/proj2-06">이전에 올렸던 게시글</a>에서 작업했던 빛을 적용한 것 뿐입니다.<br />
단지 기능으로만 보았을 때하고 실제로 적용되었을 때하고 느낌이 꽤 다르지 않나요. XD</p>

<p>이 순간만큼 꽤 짜릿한 일은 별로 없을 듯 합니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/order.png" alt="rendering order" />
</figure>

<p>전체적인 화면이 구성되는 순서입니다.</p>

<p><br />
<br /></p>

<h3>다음 목표</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/11/main_image.png" alt="main image" />
</figure>

<p>BIC 참가 신청도 했으니, 결과가 나올 때까지 이쁘게 다듬고, 스토리도 조금 담아내는 것이 목표입니다. 모두 행사장에서 만날 수 있으면 좋겠네요 :)</p>

<p><br />
<br /></p>

<p>그때까지 모두 즐거운 밤 보내시길 :)</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[데모로 제출할 수 있을 만큼의 시각적인 즐거움을 주기위해. 꼼수를 부렸습니다.]]></summary></entry><entry><title type="html">[잡다한 소식] 앱 출시 및 블로그 공사</title><link href="https://attic.with-1f.work/posts/diary/news-01" rel="alternate" type="text/html" title="[잡다한 소식] 앱 출시 및 블로그 공사" /><published>2024-01-25T00:00:00+09:00</published><updated>2024-01-25T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/news-01</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/news-01"><![CDATA[<p>진행 중인 프로젝트와 관련이 없는 내용은 이렇게 [잡다한 소식] 태그로 분리해 놓겠습니다.</p>

<h3>CROSSLOAD 앱 출시</h3>

<blockquote>
  <p>이제 CROSSROAD를 모바일에서 즐겨보아요</p>
</blockquote>

<figure>
    <img class="title-image" src="/posts/images/diary/news/01/crossroad.png" alt="crossroad app" />
</figure>

<p>지금 CROSSROAD 게임을 구글 스토어에 올려볼려고 시도 중입니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/news/01/status.png" alt="status" />
</figure>

<p>친구들 총동원시켜서 20명의 테스터 겨우 모았네요. (모두 고마워..!)<br />
별일 없다면 조만간 정식으로 등록될 듯합니다 :D</p>

<p>(+ 20240128 수정)<br />
드디어 앱이 출시되었습니다..!<br />
심심하실 때 한 번 플레이해보세요..!<br />
<a href="https://play.google.com/store/apps/details?id=works.f.crossroad&amp;pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1">
    <img alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" style="border:0px; width:200px;" />
</a></p>

<p><br />
<br /></p>

<h3>블로그 공사 내용</h3>

<blockquote>
  <p>블로그 주소 변경</p>
</blockquote>

<figure>
    <img class="title-image" src="/posts/images/diary/news/01/new_address.png" alt="new address" />
</figure>

<p>블로그 주소가 변경되었습니다!<br />
도메인 하나 구매해서 적용했습니다. 블로그가 이뻐진 느낌이라 기분이 상당히 좋네요. XD</p>

<p>앞으로 이 주소로 놀러와주세요!<br />
<a href="https://attic.with-1f.work">attic.with-1f.work</a></p>

<p><br /></p>

<blockquote>
  <p>이미지 보기 방식</p>
</blockquote>

<figure>
    <img class="title-image" src="/posts/images/diary/news/01/blog_image.png" alt="blog image" />
</figure>

<p>이제 블로그에서 사진을 누르면 디바이스 크기에 맞춰서 전체 이미지를 볼 수 있습니다. 모바일에서도 작동합니다!</p>

<figure>
    <img class="title-image" src="/posts/images/diary/news/01/add_shadow.png" alt="shadow" />
</figure>

<p>그림자를 추가했습니다. 이미지의 경계가 더 잘 보이게 됩니다 :)</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[진행 중인 프로젝트와 관련이 없는 내용은 이렇게 [잡다한 소식] 태그로 분리해 놓겠습니다.]]></summary></entry><entry><title type="html">피격 시스템, 혈흔 효과, 최적화 작업</title><link href="https://attic.with-1f.work/posts/diary/proj2-09" rel="alternate" type="text/html" title="피격 시스템, 혈흔 효과, 최적화 작업" /><published>2024-01-24T00:00:00+09:00</published><updated>2024-01-24T00:00:00+09:00</updated><id>https://attic.with-1f.work/posts/diary/proj2-09</id><content type="html" xml:base="https://attic.with-1f.work/posts/diary/proj2-09"><![CDATA[<p>시간이 엄청 많이 지났네요.<br />
파일들을 정리하는 김에 지금까지 만들었던 게임들을 모아서 블로그에 올렸습니다. 
완성했다고 생각되는 게임만 일단 올렸는데, 미완성 게임도 언젠가 정리해서 올릴까 싶습니다. :)</p>

<h3>피격 시스템</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/09/proto.gif" alt="prototype" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/09/motion.gif" alt="motion" />
    </figure>
</div>

<p>이 시스템을 만들기 위해서 공격 모션 몇 개 그리느라 이틀 날렸습니다. 매번 생각하지만 모션 그리는 데 시간이 제일 많이 소요되는 것 같네요.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/attack.gif" alt="attack" />
</figure>

<p>간단하게 구현한 피격 시스템. 시퀀스에서 히트박스 오브젝트를 끄고 키는 방법으로 구현했습니다. 잘 작동하지만 아직 효과가 없어서 밋밋하네요.</p>

<p><br />
<br /></p>

<h3>혈흔 효과</h3>

<div class="screenshot-list">
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/09/ink.gif" alt="ink" />
    </figure>
    <figure>
        <img class="title-image" src="/posts/images/diary/proj2_diary/09/ink2.gif" alt="ink" />
    </figure>
</div>

<p>혈흔 효과를 만들었습니다. 짧고 강렬하게! 만들려고 노력했습니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/ink3.gif" alt="ink" />
</figure>

<p>게임에 적용한 모습입니다. 완성은 아니지만 꽤 그럴듯하게 보이네요.</p>

<p>새로 만들었던 것들 fake3d와 혈흔 효과를 적용하는데 정말 애먹었습니다. 
생각할 수 있는 모든 예외 처리 코드를 작성하는게 쉽지 않더군요…</p>

<p><br />
<br /></p>

<h3>fake 3D 기능 최적화</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/fake_3D.gif" alt="fake 3d" />
</figure>

<p>fake 3D 관련 코드들을 대폭 수정했습니다. 
하나의 텍스쳐에 스프라이트를 몽땅 집어넣고 한 번에 계산해버리면 
시간을 대폭 줄일 수 있다는 것을 알아냈죠. 함수를 호출하는 횟수도 줄일 수 있고요.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/fake3d.png" alt="debug" />
</figure>

<p>원래 3ms 정도 소요했었는데 0.3ms 이내로 계산을 마치는 것을 확인할 수 있었습니다. 
이 정도면 부담없이 게임에 적용시킬 수 있습니다.</p>

<p>CPU와 GPU 사이의 딜레이를 생각하지 않고 코드를 작성한게 문제였나 봅니다.</p>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/syringe.png" alt="syringe" />
</figure>

<p>눈치채셨겠지만 주인공의 무기는 바로 주사기입니다. 무기마다 특수한 공격을 할 수 있도록 만들 예정입니다.</p>

<p><br />
<br /></p>

<h3>다음 목표</h3>

<figure>
    <img class="title-image" src="/posts/images/diary/proj2_diary/09/apply_motion.gif" alt="motion" />
</figure>

<p>캐릭터 모션을 그리면서 이벤트 관련 시스템을 구축할까 싶네요. 이것까지 구현이 된다면 어느정도 워크플로우가 안정화될 것 같습니다.</p>

<p><br />
<br />
<br /></p>

<p>매번 찾아와주셔서 정말 감사합니다.<br />
모두 즐거운 밤 되시길!</p>]]></content><author><name>_ = F = _</name><email>contact@with-1f.work</email></author><category term="posts" /><category term="diary" /><category term="diary" /><summary type="html"><![CDATA[시간이 엄청 많이 지났네요. 파일들을 정리하는 김에 지금까지 만들었던 게임들을 모아서 블로그에 올렸습니다. 완성했다고 생각되는 게임만 일단 올렸는데, 미완성 게임도 언젠가 정리해서 올릴까 싶습니다. :)]]></summary></entry></feed>