<rss version="2.0">
  <channel>
    <title>いるかのすいそう</title>
    <link>https://irukanonedoko.com/</link>
    <description><![CDATA[]]></description>
    <item>
      <title>コロナ罹患日記</title>
      <link>https://irukanonedoko.com/covid-19infectiondiary</link>
      <description><![CDATA[<h2 class="wp-block-heading">日記</h2>

<p>人生初のコロナになったので罹患日記</p>

<h3 class="wp-block-heading">1日目</h3>

<p>朝 37.4℃<br>昼 37.7℃<br>夕方 39.4℃<br>夜 39.6℃</p>

<p>発熱、喉のイガイガと刺すような痛み、むせるような咳(喋る、息吸うだけで咳出る)、締め付けるような頭痛、ピントが合わないような頭のモヤ感</p>

<h3 class="wp-block-heading">2日目</h3>

<p>朝 39.2℃<br>昼 36.8℃<br>夕方 37～38℃<br>夜 39.4℃</p>

<p>症状は同じ。若干の睡眠障害あり(全然寝付けない、寝てもすぐ起きる、等)、頭痛はやや痛い程度</p>

<h3 class="wp-block-heading">3日目</h3>

<p>朝 38.4℃<br>昼 36.1℃<br>夕方 36.8℃<br>夜 36.5℃</p>

<p>発熱のみ解消。喉の痛みは増加。水を飲むだけで喉に刺したような痛みが生じる。</p>

<h3 class="wp-block-heading">4日目</h3>

<p>朝 36.8℃<br>昼 36.4℃<br>夕方 37.0℃<br>夜 38.4℃</p>

<p>再び発熱。加えて花粉症のようなサラサラ透明な鼻水、鼻詰まり、ドライノーズ(鼻腔内が乾燥していて少し息吸うだけで鼻奥が痛い)、息苦しさ</p>

<p>ドライノーズと鼻詰まりのせいで鼻呼吸が出来ない、または出来ても痛い。しかし口呼吸ではすぐ咳が出てしまう。めっちゃ浅い呼吸で過ごすしかなかった。</p>

<h3 class="wp-block-heading">5日目</h3>

<p>朝 38.4℃<br>昼 36.1～37.1℃<br>夕方 36.2℃<br>夜 38.4℃</p>

<p>喉の痛み、頭痛は低減。</p>

<p>味覚障害(味を感じない)が追加。</p>

<h3 class="wp-block-heading">6日目</h3>

<p>朝 36.1℃<br>昼 36.2℃<br>夜 36.2℃</p>

<p>喉はほぼ痛くない。頭のモヤ感もそれなりに解消。鼻水もほぼ解消、鼻水、ドライノーズも気にならない程度</p>

<p>咳が悪化。むせの咳から突然出るタイプの咳に変化し、咳が体力的に辛くなるように。また嗅覚もかなり低下。</p>

<h3 class="wp-block-heading">7日目</h3>

<p>朝 36.5℃<br>昼 36.8℃<br>夜 36.4℃</p>

<p>症状に変化は無し</p>

<h3 class="wp-block-heading">8日目</h3>

<p>平熱</p>

<p>症状に変化はなし</p>

<p>味覚障害と咳が酷い</p>

<h3 class="wp-block-heading">9日目</h3>

<p>平熱</p>

<p>症状に大きな変化はなし</p>

<p>味覚が少しずつ戻ってきているように感じる</p>

<h3 class="wp-block-heading">10日目</h3>

<p>平熱</p>

<p>夜にかけて味覚の大半が回復。一部感じにくい味もあるためバランスはやや悪いかなくらい</p>

<p>咳は変わらず酷い</p>

<p>咳は長引くらしく、他に症状が回復したので日記はここまで。</p>

<h3 class="wp-block-heading">追記：22日目</h3>

<p>ついに咳が止まる</p>

<p>長すぎた後遺症</p>

<h2 class="wp-block-heading">感想</h2>

<p>何もシルバーウィークの頭に罹らなくてもいいぢゃん...って感じ。<br>3日目あたりで熱が引いたと思ったらまた発熱して味覚が消える多段攻撃が凶悪すぎる。</p>

<p>味覚がほんっっっっとうに辛かった。生きる意味が分からなくなった。<br>このウイルスの開発者は凄い。絶対に許さない。</p>

<p>手洗いうがいちゃんとしてても罹るのでもう運だと思う。<br>二度と罹らないことを祈って今日もおいしくご飯をむしゃり。</p>

<h2 class="wp-block-heading">番外：味覚障害での食べ物</h2>

<h3 class="wp-block-heading">美味しさを感じたもの</h3>

<ul class="wp-block-list"><li>LIFE ごま油風味のドレッシング</li>

<li>焼いた豚肉</li>

<li>Pasco つぶいちごジャムパン</li>

<li>牛バラ肉焼肉味(脂のみ感じる)</li>

<li>もずく</li>

<li>キムチ</li>
</ul>

<h3 class="wp-block-heading">何も感じないもの</h3>

<ul class="wp-block-list"><li>お茶</li>

<li>ポカリ</li>

<li>味噌汁</li>

<li>ヤマザキ てりやきハンバーガー</li>

<li>焼きそば</li>

<li>カニクリームソースのパスタ</li>

<li>わかめラーメン(カップ麺)</li>

<li>ランチパック ツナマヨ味</li>
</ul>

<p></p>]]></description>
      <pubDate>Wed, 30 Sep 2026 05:36:49 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/covid-19infectiondiary</guid>
    </item>
    <item>
      <title>WordPressに100MB以上のメディアをアップロードする方法（脳筋方法編）</title>
      <link>https://irukanonedoko.com/how-to-upload-over100mb-to-wordpress</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>なんかでっかいファイル上げれないんすけど。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/06/image.png"><img src="/media/uploads/2026/06/image-1024x172.png" alt="" class="wp-image-539"/></a><figcaption class="wp-element-caption">167MBの動画上げようとしたらこうなったよ☆</figcaption></figure>

<p>色々設定いじくってどう考えても512MBまでのデータがあげれるようにしたのに、なぜ。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2026/06/image-1.png" alt="" class="wp-image-540"/></figure>

<h3 class="wp-block-heading">構成</h3>

<ul class="wp-block-list"><li>Ubuntu 24.04</li>

<li>WordPress</li>

<li>php8.3</li>

<li>nginx</li>

<li>Cloudflare</li>
</ul>

<h2 class="wp-block-heading">対処</h2>

<p>調べること結構なお時間</p>

<p>Cloudflareって100MBまでのデータしか扱えないんすね。<br>それ以上はR2？だか外部ストレージへって。</p>

<p>い、嫌でつ・・・</p>

<p>てなわけで脳筋になるよ。</p>

<p>まずはFTPでファイルをここに置くよ</p>

<pre class="wp-block-code"><code>wordpress/wp-content/uploads/{yyyy}/{MM}/</code></pre>

<p>次にwpコマンドでWordpressにインポートさせるよ</p>

<pre class="wp-block-code"><code>$ sudo -u {user} wp media import path/to/media --path=path/to/wordpress</code></pre>

<p>おわり。</p>

<details class="wp-block-details"><summary>wpコマンドのインストール方法はこちら</summary><p><a href="https://make.wordpress.org/cli/handbook/guides/installing">https://make.wordpress.org/cli/handbook/guides/installing</a></p>

<pre class="wp-block-code"><code>$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

// バージョンが出ればOK
$ php wp-cli.phar --info

$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

// 使えればOK
$ wp --info</code></pre>
</details>

<p>コマンド覚えらんねーよっていう人（私）向けのスクリプト</p>

<pre class="wp-block-code"><code>#!/bin/bash
set -euo pipefail

if &#91; $# -ne 1 ]; then
  echo "Usage: $0 /path/to/file"
  exit 1
fi

FILE="$(realpath "$1")"

if &#91; ! -f "$FILE" ]; then
  echo "File not found: $FILE"
  exit 1
fi

WP_PATH=path/to/wordpress

sudo -u {user} wp media import "$FILE" \
  --path="$WP_PATH"

echo "DONE"</code></pre>

<p>いや～圧倒的に無駄な時間を過ごした。</p>]]></description>
      <pubDate>Sun, 31 May 2026 15:24:07 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/how-to-upload-over100mb-to-wordpress</guid>
    </item>
    <item>
      <title>ヒロアカINコンサートに行ってきた！</title>
      <link>https://irukanonedoko.com/report_heroaca-concert2026</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>2026/05/30 に横浜でヒロアカ10周年記念コンサートが開催されると聞き、<br>S席抽選を勝ち取りるんるんでパシフィコ横浜まで行ってきました♪</p>

<p><a href="https://www.heroaca-concert2026.jp">https://www.heroaca-concert2026.jp</a></p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/IMG_9489.jpeg"><img src="/media/uploads/2026/05/IMG_9489-1024x768.jpeg" alt="" class="wp-image-504"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/IMG_9490.jpeg"><img src="/media/uploads/2026/05/IMG_9490-1024x768.jpeg" alt="" class="wp-image-505"/></a><figcaption class="wp-element-caption">横浜の海きれい～～！！</figcaption></figure>

<p>午前は起きれないだろうと踏んで午後の部のみ行ってきたよ！</p>

<p>周り女の人しかいなくてびっくりしたよ！肩身せまい！！！</p>

<p>気にせず会場にｲﾝ~</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/IMG_9491.jpeg"><img src="/media/uploads/2026/05/IMG_9491-1024x768.jpeg" alt="" class="wp-image-506"/></a><figcaption class="wp-element-caption">特典のチケット！どやぁ～</figcaption></figure>

<p>座席は2F-14列-63！</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/IMG_9496.jpeg"><img src="/media/uploads/2026/05/IMG_9496-1024x768.jpeg" alt="" class="wp-image-507"/></a><figcaption class="wp-element-caption">座席からはこんな感じ！見やすい～！！</figcaption></figure>

<p>国立大ホール難しくってぇ・・・</p>

<p>2階席だったので2階に上がったら1階席だったんだぜ<br>普通に迷子になった。4Fが2階席で6Fが3階席らしい、むつかしい。。。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/image-1.png"><img src="/media/uploads/2026/05/image-1-825x1024.png" alt="" class="wp-image-509"/></a><figcaption class="wp-element-caption">驚異のほとんどS席</figcaption></figure>

<p>大半の席でS席と言える程大差ない経験が得られるなら、それは本当に理想。<br>実際音も演出も十分すぎる程よかったから間違いなくS席だった。</p>

<h2 class="wp-block-heading">第一部（第1期～第4期）</h2>

<p>演奏は2部編成で、まずは1~4期の楽曲の演奏だった。</p>

<p>暗くなった・・・はじまる・・・っ！！<br>瞬間、、、</p>

<p>個性がなくても、あなたみたいなヒーローになれますか...！！</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-2.png"><img src="/media/uploads/2026/05/image-2.png" alt="" class="wp-image-511"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/1st/ep01/">https://heroaca.com/episodes/1st/ep01/</a></figcaption></figure>

<p>「君はヒーローになれる」<br>「You Say Run」<br>2曲続けての演奏、、、<br>おいおい初っ端から泣きそうだぞこっちは。</p>

<p>こんな感じで映像と演奏が両方見えるし、要所要所で声優さんの生アフレコもあるもんだから<br>感情大爆発しっぱなしなんだよね・・・<br>生オーケでのヒロアカ曲たまんねぇ...</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2026/05/image-3.png"><img src="/media/uploads/2026/05/image-3-1024x768.png" alt="" class="wp-image-512"/></a></figure>

<p>セトリは既に公開されている↓ので強く印象に残ったものだけ<br><a href="https://x.com/heroaca_anime/status/2060744063071162425?s=20">https://x.com/heroaca_anime/status/2060744063071162425?s=20</a></p>

<p>「ヴィランの進行」<br>「暴走する悪意」<br>USJで死柄木が攻めてきた時の曲<br>映像とオーケストラの威圧感たっぷりの演奏。。。全身震えたのを思い出す。。。</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-4.png"><img src="/media/uploads/2026/05/image-4.png" alt="" class="wp-image-513"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/1st/ep10/">https://heroaca.com/episodes/1st/ep10/</a></figcaption></figure>

<p>「爆殺王!!」<br>かっちゃん♡<br>岡本さんも生で見れて特大ハッピー<br>あんな温厚そうな雰囲気なのにどこから声出てんの...</p>

<p>「三位一体」<br>AFO vs オールマイトのとこ<br>山下さん、岡本さん、梶さん3人の生アフレコとこの曲とこのシーン、興奮しないはずもなく。<br>かっちゃんが切島くんの手を掴んだ後、轟くんのシーンに戻った後の1セリフ<br>　よし、逃げるぞ<br>これで締まるの草　いやシーン的に丁度いいけどさぁｗ</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-5.png"><img src="/media/uploads/2026/05/image-5.png" alt="" class="wp-image-514"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/3rd/ep48/">https://heroaca.com/episodes/3rd/ep48/</a></figcaption></figure>

<p>「All Might with U.A. Students」<br>さらばだ、OFA...<br>AFO vs オールマイト決着のシーン<br>次は、君だ。<br>のシーンを含めてこの一曲にまとめあげたそのセンス、素晴らしいです...</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-6.png"><img src="/media/uploads/2026/05/image-6.png" alt="" class="wp-image-515"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/3rd/ep49/">https://heroaca.com/episodes/3rd/ep49/</a></figcaption></figure>

<p>「勝己と出久」<br>なのになんで...！おれがオールマイトを終わらせちまってんだぁ...？！<br>岡本さんの演技、オーケストラの盛り上げ方、胸がきゅっとなって涙が滲んできた...<br>かっちゃんの声で、かっちゃんの悩みを文字通り目の前で聞くの、胸張り裂けそうだった、、、</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-7.png"><img src="/media/uploads/2026/05/image-7.png" alt="" class="wp-image-516"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/3rd/ep61/">https://heroaca.com/episodes/3rd/ep61/</a></figcaption></figure>

<p>「俺が君のヒーローになる」<br>ルミリオンが個性失って尚戦い続ける名シーン。改めてミリオすごすぎる。<br>ここも曲の盛り上げが上手すぎてサビに入るときの鳥肌と思わず手に力が入ってしまう演出、すごくよかった。</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-8.png"><img src="/media/uploads/2026/05/image-8.png" alt="" class="wp-image-517"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/4th/ep74/">https://heroaca.com/episodes/4th/ep74/</a></figcaption></figure>

<p>「Might」<br>元気とユーモアのない社会に 明るい未来は やって来ない..<br>ボーカルの方の歌も相まって、ここまでの流れも含めて感動がすごすぎた。<br>記憶の中の映像がどんどん繋がって、それがオーケストラとボーカルで引き立てられて、<br>言葉にできない、これが感動ってやつか、って感情に包まれてた。</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-10.png"><img src="/media/uploads/2026/05/image-10.png" alt="" class="wp-image-519"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/4th/ep77/">https://heroaca.com/episodes/4th/ep77/</a></figcaption></figure>

<h2 class="wp-block-heading">幕間</h2>

<p>ここで小休憩。林さん、声優3人のトーク。<br>一瞬 あれ？！お、おわり？！いや、十分感動したしええか・・・ って思ったら全然半分だったって言うねｗ</p>

<p>曲の背景とか、どの曲が好きですか～とか、曲にまつわる色々が聞けて楽しかった。<br>BGMあるあるだと思うけど、生演奏を想定してないから今回に合わせて編曲大変だったとか。</p>

<h2 class="wp-block-heading">第二部（第5期～FINAL SEASON）</h2>

<p>「それいけさらに向こうへ」<br>「歴代継承者」<br>A組 vs B組のシーン<br>ちょっとダークな雰囲気が深まったなって感じる良い2曲<br>オーケストラも重みがあって身体に響いてきてとてもよかった</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-11.png"><img src="/media/uploads/2026/05/image-11.png" alt="" class="wp-image-520"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/5th/ep99/">https://heroaca.com/episodes/5th/ep99/</a></figcaption></figure>

<p>「恐怖の象徴」<br>リデストロあたりのシーン<br>ダーク全開！震える程のずっしりした音と、恐怖感が伝わる素晴らしい演奏</p>

<p>「Revengers」<br>7th！浮遊！<br>この曲の絶望的な状況からの覚醒感、たまらんです。。。<br>サビのわくわく感とかほんとやばい、やばい（語彙力）<br>唯一惜しかったのは、僕がどうなろうとも！！のとこ、声欲しかったなぁ・・・</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-12.png"><img src="/media/uploads/2026/05/image-12.png" alt="" class="wp-image-521"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/6th/ep122/">https://heroaca.com/episodes/6th/ep122/</a></figcaption></figure>

<p>「The Last Wielder」<br>レディ・ナガンのシーン<br>オールマイトの<br>　誰もが知ってる、鉄砲よりも速く駆けつける<br>これ伏線になってるのいいよね、好き。<br>私はジェントルやらレディナガンやらの、元は正義で純粋悪じゃない大人が大好きなので。。。<br>ここでレディナガン見れてとても嬉しかったです。。。<br>あとこんなかっこいい曲だったっけ？！って震えながら感じてた。<br>（この辺りから涙腺が大分怪しい）</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-13.png"><img src="/media/uploads/2026/05/image-13.png" alt="" class="wp-image-522"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/6th/ep134/">https://heroaca.com/episodes/6th/ep134/</a></figcaption></figure>

<p>「I'm sorry for everything I've done」<br>今までごめん。のシーン<br>賛否両論あるけど、かっちゃん好きだよ。。。（クソデカ感情）<br>これ生アフレコだったんだけど、泣かないはずもなく。ぽろぽろ泣いてた。</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-14.png"><img src="/media/uploads/2026/05/image-14.png" alt="" class="wp-image-523"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/6th/ep136/">https://heroaca.com/episodes/6th/ep136/</a></figcaption></figure>

<p>「STAR AND STRIPE」<br>スターアンドストライプのとこ<br>相変わらず強すぎな～この人ｗｗ<br>スターの登場から退場までをまとめ上げてて、しっかり活躍が見れたし、オーケストラに合わせてその偉大さを感じれてとても良かった。<br>かっこいいよスター。</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-15.png"><img src="/media/uploads/2026/05/image-15.png" alt="" class="wp-image-524"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/7th/ep140/">https://heroaca.com/episodes/7th/ep140/</a></figcaption></figure>

<p>「Butterfly Effect」<br>復活かっちゃん vs AFO のシーン<br>クラスター覚醒からの映像。<br>オールマイト救うところからかな？って思ってたから少し意外だった。<br>速すぎて止まれないとこ生アフレコあって迫力と面白さが混ざってて感情ぐっちゃになりそうだったｗ<br>まだ、追いつけっかなぁ...を知ってるからこそ、ここでの 今なら追い越せそうな気がする で感動するんだよなぁ・・・<br>かっちゃん好きだ...</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-16.png"><img src="/media/uploads/2026/05/image-16.png" alt="" class="wp-image-525"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/final/ep162/">https://heroaca.com/episodes/final/ep162/</a></figcaption></figure>

<p>「You Can Do It!」<br>最後、デクが皆の力を借りてAFOへ立ち向かうシーン<br>ちなみに、ここで一瞬ジェントルが出てきて、そこで涙腺決壊した。<br>そこ？！って感じだけど、ジェントル好きだから仕方ない。。。</p>

<p>ここ、ずっとオーケストラの迫力と、皆必死になってデクを支える映像一気に流れてきて、<br>思わず手に力入れて 頑張れ...！！って思ってしまった。<br>まさに "頑張れって感じのデク" ってのを肌で感じれて本当に良かった。</p>

<p>もうずっと泣きながら、ペンラ持ってないのに握っている手が動いてて、<br>音楽と作品に身体も心も動かされているのを感じた。全部大好きだぁ・・・</p>

<p>最後、山下さん渾身のスマッシュ！！が聞けて大満足。かっこいいよデク...</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-17.png"><img src="/media/uploads/2026/05/image-17.png" alt="" class="wp-image-526"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/final/ep167/">https://heroaca.com/episodes/final/ep167/</a></figcaption></figure>

<h2 class="wp-block-heading">アンコール</h2>

<p>手拍子に合わせて帰ってきた林さん<br>アンコールに相応しい曲、何だろう、、、You Say Runとかもっかいやるのかな？<br>って思ったらなんかルンルンの林さん</p>

<p>「Hero too」<br>あ、文化祭の耳郎ちゃんの曲！！<br>ぴったりすぎるのありましたわｗｗ</p>

<figure class="wp-block-image size-full"><a href="/media/uploads/2026/05/image-18.png"><img src="/media/uploads/2026/05/image-18.png" alt="" class="wp-image-527"/></a><figcaption class="wp-element-caption"><a href="https://heroaca.com/episodes/4th/ep86/">https://heroaca.com/episodes/4th/ep86/</a></figcaption></figure>

<p>他のBGMでもボーカルしてた女性の方が歌ってたの知らなかった。<br>もう一人外国の方でボーカルの方いるんだけど、その方ともくっそ楽しそうに歌っててめちゃ楽しかったｗ<br>あと林さんペンラ振り回してパフォーマンスしてたｗ器用だなぁｗｗ<br>（後で元体操選手って知ってびっくりした。すごすんぎ）</p>

<h2 class="wp-block-heading">プレゼント</h2>

<p>林さん「ここで皆さんにプレゼントがあります」</p>

<p>え？なに。。？<br>ざわつく会場</p>

<p>林さん「スマホの電源入れてもらって、ここからは撮影OKです」</p>

<p>え？！な、なに？！？<br>もっとざわつく会場</p>

<p>ヒロアカに関係した方、オーケストラに関与した方、作曲に関与した方、そして私達。<br>今日この日にかけての全てに感謝が添えられ、始まる演奏。</p>

<p>「You Say Run」</p>

<div class="wp-block-columns"><div class="wp-block-column" style="flex-basis:100%"><figure class="wp-block-video"><video controls src="/media/uploads/2026/05/IMG_9497-1.mp4"></video></figure>
</div>
</div>

<p>こんな、こんな最高のプレゼントを頂いてもいいんですか・・・（涙）</p>

<p>ヒロアカファンの誰もが生で聴きたかったこの曲を、2度も聴かせてくれて、さらに録音まで・・・<br>演奏後は拍手喝采、私も手を上げ精一杯の感謝を込めて大きく拍手しました。本当にありがとう─...</p>

<p>最後は林さん、山下さん、岡本さん、梶さんの4人の声かけで、<br>「さらに向こうへ！Plusー！」<br>全員「Ultraーーーー！！！」</p>

<p>さいっっっっっっこうに楽しい、最高に心震える、最高の思い出ができた。<br>本当に本当に特大感情が溢れて止まらないコンサートだった！！</p>

<h2 class="wp-block-heading">おわりに</h2>

<p>うっきうきで帰路に。</p>

<p>間に合いそうだし関内二郎でも食べて帰ろうかな～<br>な～んて思って電車に乗ったら<br>...なんか人身事故で止まってるんですけど？？？</p>

<p>諦めて桜木町駅まで歩くことに。せっかくだから夜の横浜散歩～</p>

<p>みなとみらい駅からビル伝いに歩いて行けるの斬新で面白いな～<br>と思いつつ結局外に出ることにセルフツッコミしながら歩くこと10分</p>

<p>なんか空中を浮く謎の箱がある！！<br>ロープウェイってやつ？！こんな街中に？！？</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2026/06/IMG_9502_2.jpeg"><img src="/media/uploads/2026/06/IMG_9502_2-1024x985.jpeg" alt="" class="wp-image-535" style="aspect-ratio:1.0396039603960396;width:563px;height:auto"/></a><figcaption class="wp-element-caption">なんかサイバーチックでかっこいい</figcaption></figure>

<p>珍しかったのでうきうきでぱしゃり<br>良いことあったね～</p>

<p>おわり。<br>コンサートはUnderTaleも行ったし、シッティング系ならはちたやのライブがそうだったし、<br>オーケストラめちゃ好きだ～～</p>

<p>ヒロアカ以外にもまた機会あったらコンサート行きたいな！</p>]]></description>
      <pubDate>Sun, 31 May 2026 15:09:30 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/report_heroaca-concert2026</guid>
    </item>
    <item>
      <title>CursorでFigmaデザインと実装をやってみたかった会</title>
      <link>https://irukanonedoko.com/cursor-figma-design-to-implementation-workshop</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>最近出たuse_figmaプラグイン...<br>ずっとUI系の仕事をしてたので、さすがに試してみたいですよね。</p>

<p>ということで触ってみたという記事です。</p>

<p>ついでにDESIGN.mdなるものも出てきたらしく。<br>指示さえできれば、指示されできればしっかりしたデザインをAIで作れるんじゃ？って検証も一緒にしたいと思います。</p>

<h3 class="wp-block-heading">情報</h3>

<p>use_figma plugin: <a href="https://github.com/figma/mcp-server-guide/blob/d8bcb41b17ae473b3a830129bcd451ee1911e512/skills/figma-use/SKILL.md">https://github.com/figma/mcp-server-guide/blob/d8bcb41b17ae473b3a830129bcd451ee1911e512/skills/figma-use/SKILL.md</a></p>

<p>figma公式: <a href="https://www.figma.com/blog/the-figma-canvas-is-now-open-to-agents/">https://www.figma.com/blog/the-figma-canvas-is-now-open-to-agents/</a></p>

<p>DESIGN.md: <a href="https://qiita.com/miruky/items/a6312c14e6352376ec00">https://qiita.com/miruky/items/a6312c14e6352376ec00</a></p>

<h3 class="wp-block-heading">環境</h3>

<ul class="wp-block-list"><li>Windows11 home</li>

<li>WSL2 Ubuntu22.04.4</li>

<li>Cursor 2.6.22 Proプラン</li>
</ul>

<h2 class="wp-block-heading">環境設定</h2>

<h3 class="wp-block-heading">プラグインインストール</h3>

<p>Cursor Settings > Plugins > Figma</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-1024x562.png" alt="" class="wp-image-488"/></figure>

<p>figma-useがあることを確認したら（しなくてもいいが。）Add to Cursorでプラグインをインストール</p>

<figure class="wp-block-image size-full is-resized"><img src="/media/uploads/2026/04/image-1.png" alt="" class="wp-image-489" style="width:494px;height:auto"/></figure>

<h3 class="wp-block-heading">Figma MCP接続</h3>

<p>再びCursorSettings > tools &amp; MCP > Plugin MCP Servers からconnect</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-2-1024x770.png" alt="" class="wp-image-490"/></figure>

<h2 class="wp-block-heading">DESIGN.mdの作成</h2>

<p>CLAUDE.mdと同じ要領で作れるとのことで、agentに作らせてみる。</p>

<p>だいたいどんなUIデザインにしたいかな～を頭に浮かべつつ・・・</p>

<pre class="wp-block-code"><code>あなたはWebUIデザイナです。
DESIGN.mdを作成してください。
以下詳細な要件です。

全体的なデザインはモダンなWebUIで、デザインベースはそちらに任せる。
ユースケースはiOSブラウザ、Windowsブラウザ。
色はオレンジと黄色を基調とした暖かみのあり家庭的な構成とし、色度が低めで目に優しいカラーベースを取る。
ボタンインタラクションはホバー、押下、選択中、通常の4種類。
遷移、UIを説明する文章などは最小限に、アイコンなど非テキスト的な表現をベースとする。

その他、今のプロジェクトに必要なUIの内、上記で定義されていない内容があれば質問して</code></pre>

<p>↑こんな指示をしてみて、<br>↓こんなのを生成させてみた。</p>

<pre class="wp-block-code"><code># Meal Menu App — Web UI デザインガイド

本書は &#91;docs/plan/implementation-plan.md](../docs/plan/implementation-plan.md) の Web フロント（Next.js + Tailwind + FullCalendar）に対する**見た目とインタラクションの規範**である。実装は &#91;tailwind.config.ts](./tailwind.config.ts) と &#91;src/app/globals.css](./src/app/globals.css) にトークンを反映していく。

## 1. スコープと前提

| 項目 | 内容 |
|------|------|
| アプリ | Meal Menu App（献立カレンダー） |
| 対象画面 | `/`（ログイン導線）、`/app`（献立カレンダー：月・週・日・リスト表示、範囲選択・イベント操作）、`/app/menus`（メニュー CRUD） |
| クライアント | **iOS Safari**、**Windows**（Chrome / Edge / Firefox を想定した一般的な挙動） |
| テーマ | **ライトのみ**。ダークテーマ用の色トークンは定義しない |

## 2. デザイン原則

- **トーン**: モダンな Web UI。家庭的で暖かみのある印象を、**低彩度**のオレンジとイエロー（クリーム〜アンバー系）で表現する。
- **情報量**: 画面説明・遷移を文章で長く書かない。可能な範囲で**アイコン・レイアウト・色分け**で状態を伝える。
- **ラベル**: ナビや主要操作は**アイコンを主**とし、短いラベルは任意。アイコンのみのコントロールは &#91;§7](#7-アイコンと非テキスト-ui) と &#91;§8](#8-アクセシビリティ) に従う。

## 3. カラートークン（セマンティック）

彩度は抑え、背景と本文のコントラストは **WCAG 2.1 の AA（本文 4.5:1 相当）** を満たすことを前提に調整する。下表の例は参照用であり、実装時は測定して微調整してよい。

| トークン名 | 用途 | 例（参照） |
|------------|------|------------|
| `--color-background` | ページ全体の下地 | ごく薄いクリーム〜ウォームグレー |
| `--color-surface` | ヘッダー・カード・パネル | 白に近いオフホワイト |
| `--color-surface-elevated` | モーダル・ドロップダウン等の一段上 | `surface` よりわずかに明るい or 影で区別 |
| `--color-border` | 区切り線・入力枠 | 低彩度のオレンジグレー |
| `--color-text-primary` | 見出し・本文 | 暖みのあるダークブラウン〜チャコール |
| `--color-text-muted` | 補助・メタ情報 | `text-primary` より明度を上げた色 |
| `--color-accent` | 主 CTA・リンク強調・選択の主色 | **ミュートされたオレンジ** |
| `--color-accent-soft` | ハイライト背景・バッジ・「今日」など | **低彩度のイエロー〜ピーチ** |
| `--color-danger` | 削除・エラー（使用頻度は低め） | 彩度を抑えたテラコッタ〜レッドブラウン |
| `--color-success` | 成功（任意） | 彩度を抑えたオリーブ〜セージ |

**禁止に近いこと**: ネオン調の高彩度オレンジを全面背景にしない。`accent` は「塗りつぶしの大面积」より、ボタン・フォーカス・小さな強調に使う。

## 4. タイポグラフィ

- **フォント**: ルートレイアウトで読み込んでいる **Geist** 系（`--font-geist-sans` 等）を既定とする。変更する場合は本書と &#91;src/app/layout.tsx](./src/app/layout.tsx) を同時に更新する。
- **階層**（目安）:

  | 役割 | 目安 |
  |------|------|
  | ページタイトル | 例: `text-xl`〜`text-2xl`、`font-semibold` |
  | セクション見出し | 一段階小さく、`font-semibold` |
  | 本文 | `text-sm`〜`text-base`、`leading-relaxed` |
  | キャプション・補助 | `text-xs`〜`text-sm`、`text-muted` |

- **行の長さ**: 説明文が続くブロックは **最大幅を制限**（例: `max-w-prose` 相当）し、長文は避ける（§2 と整合）。

## 5. スペーシング・レイアウト・タッチ

- **コンテナ**: メインコンテンツは既存と同様、**最大幅 ~72rem（`max-w-6xl` 前後）** を基準とし、横余白は `px-4` 程度を維持する。
- **タッチターゲット（iOS）**: タップ可能な要素は **最短辺 44px 相当以上**（`min-h-&#91;44px] min-w-&#91;44px]` または十分な `padding`）を満たす。
- **密度**: 献立カレンダー・メニュー一覧は誤タップを避けるため、リスト行・カレンダーセル内の操作域は余白を確保する。

## 6. ボタンとインタラクション

すべてのボタンおよび「ボタン相当」のクリック領域（セグメント切替・ツールバーのアイコンボタン等）は、次の **4 状態**を区別できること。

| 状態 | 条件 | 見た目の指針 |
|------|------|----------------|
| **通常** | デフォルト | `accent` または `surface`＋`border`。本文とのコントラストを確保 |
| **ホバー** | ポインタが乗る（`:hover`、タッチでは該当しにくい） | 背景を一段変化、または境界・影をわずかに強める |
| **押下** | クリック中（`:active`） | ホバーより一段暗く、または内側に沈む影で「押している」ことを示す |
| **選択中** | トグル ON・セグメント選択・リストの現在行など（`aria-pressed="true"` / `aria-current` / `data-state=selected` 等と対応） | `accent-soft` の背景＋`accent` の境界または下線で明確に |

**キーボード（Windows 含む）**: `:focus-visible` 時は **必ず視認できるフォーカスリング**（`accent` 系のアウトラインまたはリング）を付与する。マウスだけの `:focus` と区別してよい。

## 7. アイコンと非テキスト UI

- **セット**: 新規にアイコンライブラリを入れる場合は **Lucide React** を第一候補とする（未導入でもよい。導入時は依存関係とツリーシェイクを考慮）。
- **一貫性**: 献立カレンダー・メニュー・ログアウトなど、**同じ意味には同じアイコン**を使う。ストローク太さ・グリッドサイズ（例: 20px / 24px）を揃える。
- **装飾**: アイコン色は `text-primary` / `text-muted` / `accent` のいずれかに寄せ、カラフルな絵文字に頼らない。

## 8. アクセシビリティ

- **名前**: アイコンのみのボタン・リンクには **`aria-label`**、または画面上は隠した短いテキスト（visually hidden）で**操作名**を必ず付与する。
- **状態**: 選択中・展開済みなどは `aria-expanded` / `aria-pressed` / `aria-current` を適切に使う（§6 の「選択中」と連動）。
- **コントラスト**: §3 の前提を満たさない組み合わせは採用しない。

## 9. FullCalendar（サードパーティ）

&#91;src/app/globals.css](./src/app/globals.css) の `--fc-*` 変数は、**§3 のトークンと矛盾しない**ようにマッピングする。

| FullCalendar 変数 | マッピングの考え方 |
|-------------------|-------------------|
| `--fc-page-bg-color` | `--color-background` に合わせる |
| `--fc-neutral-bg-color` | `--color-surface` またはややニュートラルな拡張 |
| `--fc-border-color` | `--color-border` |
| `--fc-button-bg-color` 等 | ツールバーボタンは §6 の「通常／ホバー／押下／選択中」に対応できる色 |
| `--fc-today-bg-color` | `--color-accent-soft` |
| `--fc-button-text-color` | `--color-surface` 上で読める色（必要ならボタン専用のオンカラー） |

カレンダー内の献立イベント（`.meal-banner` 等）も、**本文が読めるコントラスト**とトークンとの整合を保つ。

## 10. 実装メモ（Tailwind との関係）

- **CSS 変数**: `:root` に §3 の名前を定義し、Tailwind の `extend.colors` で `background: 'var(--color-background)'` のように参照する方法を推奨する。
- **併用**: コンポーネント単位で `bg-&#91;var(--color-accent)]` のように直接参照してもよいが、**名前の一覧は本書と `globals.css` で一致**させる。
- **既存の `--background` / `--foreground`**: ルートの意味を本トークン体系に寄せるか置き換えるかは実装 PR で決め、本書のセマンティック名を優先する。

## 11. 本書で扱わないもの

- **ダークモード**用のパレット（§1）。
- **コンポーネントごとのピクセルパーフェクト仕様**の網羅（必要なら Figma や個別issueで補完）。

---

*最終更新: デザイン変更時に本書を更新し、実装（Tailwind・globals・FullCalendar 上書き）と同期すること。*
</code></pre>

<h2 class="wp-block-heading">figma_useプラグインでfigma上にデザインを作ってもらう</h2>

<p>いよいよ本題。<br>Figma上にデザインを作ってもらう...！！</p>

<pre class="wp-block-code"><code>/figma-use あなたは熟練のWebUIデザイナです。
@apps/web/DESIGN.md に従い、このプロジェクトに沿うUIデザインをfigma上に作成してください。</code></pre>

<p>・・・ん？</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2026/04/image-3.png" alt="" class="wp-image-491"/></figure>

<p>じょ、じょうげん・・・？？？</p>

<p>ｲﾔｱｱｱｱｱｱｱｱｱｱｱ</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2026/04/image-4.png" alt="" class="wp-image-492"/></figure>

<p>悲しみの課金。そして続き。</p>

<p>出来上がったものが以下。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-5-1024x527.png" alt="" class="wp-image-493"/></figure>

<p>・・・・・・・・・🤔<br>Figma Makeと大差なくね？？？？？？？</p>

<p>適当に作らせたUIの色付け版みたいになっちゃった。<br>多分指示が悪かった、、、のだと思いたい。。。<br>（プロンプトエンジニアリング下手なんでもっと勉強しなければ...）</p>

<h2 class="wp-block-heading">もう少し調べてみた</h2>

<p>どうやらDESIGN.mdはCLAUDE.mdとは違い、便宜上のファイルのようで、<br>別にこの名称じゃなくてもいいし、なんなら複数ファイルに跨っていても良いらしい。<br>　→最終的にCLAUDE.mdでルーティングできてれば問題ない。</p>

<p>そして、<strong>Stitch向けのテンプレート</strong> ということらしい。<br>まぁ概念は応用できるが、完全に同じ使い方は難しそう。</p>

<p>そして、サンプルではこれを元にチャットベースでUI構築を行い、index.htmlを作成することで作っていたよう。<br>つまりfigmaなどのデザインツールとMCP連携して云々はそもそも使い方が違いそう。</p>

<h2 class="wp-block-heading">思い描いたワークフロー</h2>

<p>画期的じゃん！って思ったのは理由があって、<br>これ業務活用することでデザイナが抱える属人性の低下や、発生しがちな用語の定義ブレ、<br>その他あらゆる問題をmdに強制させて、チーム開発の速度・精度向上、さらにエンジニアリングを追加してフロント実装も手軽にできるようにできるのでは？！<br>って考えてた。</p>

<p>どゆことっていうと、<br>md（DESIGN.md）を一種の仕様書のように扱うことができ、<br>md ↔ figma で最終的にデザイン設計を複数のmdに残すことで、<br>デザインノウハウの回収、流用のベース（skill化など）に応用できる<br>って考えてた。</p>

<p>結局はコードベースになっちゃうけど、<br>個人的にfigmaが仕様書です！のスタイル大嫌いだからむしろこうなってほしい感はある。。。</p>

<p>あったのだが！力及ばず・・・</p>

<p>どこかでリベンジしたみ</p>

<h2 class="wp-block-heading">もう少し手を加えてみる</h2>

<p>ちょっと悔しいのでプロンプト修正</p>

<pre class="wp-block-code"><code>/figma-use 
https:&#47;&#47;www.figma.com/design/IKKjvbf33ZD9zbUs5wce8E/Meal-Menu-App---Web-UI--DESIGN.md-?node-id=0-1&amp;p=f&amp;t=BWaZoI4S6TLTZSw9-0 
@apps/web/DESIGN.md に従いUIを作成してもらったが、ここからデザインの修正を加えたい

まず元々apps/webに作成されたデザインがベースのようになっているが、これを一切廃止し、完全新規でDESIGN.mdに従った条件でリデザインして欲しい。
次にポップアップで表示されるべき内容のデザインがないため、全ポップアップ遷移を含めてデザイン作成をしてほしい。
またアイコンはSVGで作成し、テキストによる説明は基本NGとする。
レスポンシブデザインに対応し、iOS、PC、ブラウザ拡縮などに対応し、適切なUXを得られるようなUIをデザインして欲しい。
なお使い回しが可能なものに関してはコンポーネント化すること。

以上条件に従って修正して。</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-6-1024x653.png" alt="" class="wp-image-494"/></figure>

<p>おお、悪くないか？</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-7-1024x550.png" alt="" class="wp-image-495"/></figure>

<p>（Googleマークはアウトなんじゃ・・・）</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2026/04/image-8-993x1024.png" alt="" class="wp-image-496"/></figure>

<p>あ、だめそう。</p>

<p>やっぱり仕様に起こされてない部分が激よわ。<br>全画面分の要件をドキュメント化することができれば実現可能なのか？<br>　→それはデザイナにとって嬉しいのか・・・？</p>

<p>今回はタイムオーバー<br>次やるときはもう少し情報仕入れてリベンジしたい！</p>]]></description>
      <pubDate>Tue, 07 Apr 2026 14:18:59 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/cursor-figma-design-to-implementation-workshop</guid>
    </item>
    <item>
      <title>HACHI Live Tour 2025 “Unlockture” 参加レポート</title>
      <link>https://irukanonedoko.com/hachi-live-tour-2025-unlockture-report</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>なんだかんだもう3年は聴き続けてる推しシンガー、HACHIさんのライブ Unlockture に行ってきたレポートです。</p>

<p><a href="https://www.youtube.com/@HACHIVSinger">https://www.youtube.com/@HACHIVSinger</a></p>

<p>無料パートあるので聴いてください！！！！！！<br><a href="https://www.youtube.com/watch?v=SLbAdBBFoII">https://www.youtube.com/watch?v=SLbAdBBFoII</a></p>

<h2 class="wp-block-heading">感想</h2>

<p>Close to Heart, for ASTRAとライブを見てきて今回三回目。<br>これまではライブハウスでの開催が多かったですが、なんと初のホールライブ。</p>

<p>ホールライブはアンテのコンサートでしか体験したことなかったのですが、<br>バラード多めのHACHIさんがどのようなライブに仕上げるのかワクワクしてました。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/12/IMG_8329-1024x952.jpeg" alt="" class="wp-image-473"/><figcaption class="wp-element-caption">座席からのステージの様子</figcaption></figure>

<p>形式はオールシッティング。<br>ライブというよりはコンサートに近い感じでした。</p>

<p>だからこそ、しっとりと、しっかりと、<br>HACHIさんの歌声に乗った感情や歌詞の言葉一つ一つを、じっくりと味わって聴くことが出来ました。</p>

<p>まぁめ～～～～～～～～～～っちゃよかったわけですね。</p>

<p>私は特にバラードが好きで、歌詞に自分を重ねて共感するのがとても好きなのですが、<br>世間ではあんまりなのか、ただ大きな音と激しい曲調なら何でもいいみたいな<s>つまんない</s>雰囲気が良しとされてるように感じます。</p>

<p>そんなモヤモヤを最近特に感じてた中でのこのライブ。<br>そりゃ良かった以外言いようがない。<br>自分が求めてた、自分が最も音楽を楽しめる環境でのライブ、そりゃよかったしか言えません。</p>

<p>まさかVシンガーにも（というか界隈にも）これをしてくれる人がいるとは...</p>

<p>何となく今日まで好きな理由が分かった気がしました。</p>

<h3 class="wp-block-heading">セットリスト</h3>

<p>なんとご本人様がツイートくださってました。ありがてぇ<br><a href="https://x.com/8HaChi_hacchi/status/1999489124995391660?s=20">https://x.com/8HaChi_hacchi/status/1999489124995391660?s=20</a></p>

<p>1. To Be Alive<br>新曲。<br>ちなみにアルバム新曲は先行リリース含めて聴いてなかったので、<br>どんな曲かワクワクしてたらいきなり来た！？ってびっくりした。<br>歌詞がストレートに重い。だがそれが好き。<br>さすがに最初はテンション高めの曲かなって思ってたから構えてなかったから、<br>もう一度ちゃんと聴きたい。</p>

<p>2. fragment<br>好き曲きた～～～～！！<br>この曲すち！！ってテンション上がった。<br>HACHIさんの高音綺麗すぎな。</p>

<p>3. ∞<br>新曲。<br>この曲もびっくりするぐらい感情が重い。<br>存在証明とか、その辺の歌はめっぽう弱いのでね...</p>

<p>4. Brand New Episode<br>アルバム収録曲。<br><a href="https://www.youtube.com/watch?v=NR6Qa_pb1M0">https://www.youtube.com/watch?v=NR6Qa_pb1M0</a><br>早朝のようなさわやかがある曲。<br>歌詞もちゃんと重くていい。<br>MVも流れてた。かわいい。</p>

<p>5. まなざし<br>好き曲きた！！<br>この曲はClose to Heartでの演出が一生思い出に残ってるくらい良い曲。</p>

<p>6. いつまでも<br>これも好き曲。<br>曲想がおしゃれで好き。</p>

<p>7. √64<br>実は仕事終わりなので若干の疲れもあり、<br>あまりにもしっとり癒しすぎて寝そうになった。<br>心地よすぎるのです。<br>'音のない宇宙で眠りたい' って歌詞があるんですけど、<br>この音に包まれながら眠りたい...ってなった。</p>

<p>8. 空が待ってる<br>好き曲。<br>後ろ向きな中、前を向いて歌うような。<br>どことなく切ない曲、好き。</p>

<p>9. ビー玉<br>そういえば久しぶりに聴いた曲。<br>曲全体の抑揚がすごくて聴き入った。<br>感情の揺れとかが伝わって良かった。</p>

<p>10. 夏灯篭<br>これも久しぶりに聴いた曲。<br>切ない曲。<br>テンポ的に心地よくて眠気がすごかった、。</p>

<p>11. 万華鏡<br>歌詞が面白くて好き曲。<br>VJの万華鏡も綺麗で良かった。</p>

<p>12. Rainy proof<br>きちゃあ！<br>失恋曲、いいね。。。<br>しんみりして若干涙腺に来た。</p>

<p>13. Empty town<br>新曲。<br>良かったのは覚えてるけど曲が思い出せないっ...!!!<br>悲しい、アルバム出たら聴き直したい。</p>

<p>14. Deep Sleep Sheep<br>テンポが良くて好き曲。<br>でも歌詞はしっかり重い。それがいい。</p>

<p>15. 異星から<br>おもしろ曲。<br>こういう曲調なんて言うんだろうね。<br>Barとかで流れてそうな感じ。好き。</p>

<p>16. Chère amie<br>新曲。<br>まさかの語りがある曲。<br>ミュージカルみたいな感じして楽しかった。<br>歌詞は切なかった記憶。</p>

<p>17. 光の向こうへ<br>MCでこの曲を匂わせてからの、来たぁぁぁ...<br>最初の曲が今日歌ってもしっかり感動できるってのは、すごいことだと思うのです。<br>MCがあったこともあり、歌声にあまりにも感情が乗りすぎていて、<br>ホールという環境でその歌声がダイレクトに伝わりすぎて、<br>まるで曲の一部になったかのように心が動いたのを鮮明に覚えている。<br>'僕たちは弱いけど歌うよ。僕たちは怖いけど歌うよ。'<br>そういって歌い続けて、今歌ってるんだってことが歌声から伝わる。<br>しっかり号泣しながら聴いてた。ありがとう─...</p>

<p>18. Pale Blue Dot<br>HONEY BEESかな、でもテンション違うか、って思ってたらこの曲...！！！<br>コーラス歌うの楽しかったよ...<br>この曲も感情激つよ激おもで涙腺どこいったくらい泣いた。<br>光の向こうへで感じた、"今歌っている"ということを示すように、<br>はっきりとそこで歌うHACHIさんの姿が素敵すぎてとても泣いた。</p>

<p>幕閉じ。<br>鳴りやまない拍手。<br>皆HACHIさんの歌が好きで、こういう曲が好きな人たちで、<br>ちゃんと聴いて余韻に浸っているのがよく分かって嬉しかった。</p>

<p>しばらくしてアンコール。</p>

<p>19. Before anyone else<br>新曲。<br>アンコールで新曲？！そんなことある？！って思ったけど、<br>めっちゃ感情強い曲でしっかり感動した。<br>またアルバム出たらちゃんと歌詞も読みこんで聴きたい。</p>

<h3 class="wp-block-heading">光の向こうへの感想の続き</h3>

<p>この曲は弱さが前面に出されていて、それでも歌い続ける、進み続けるという力強さがある曲。</p>

<p>'届かなくても君に歌うよ'<br>この席でちゃんと聴こえてるよ。そう思い、気づけば涙がこぼれていた。</p>

<p>なんとなく声が震えてるのが分かり、それでも力強く歌っているのがまた感情を動かす。</p>

<p>この全面的な弱さが、自身の心と共感できすぎて他人事じゃないように感じる。<br>だからこそHACHIさんの歌が好きなんだろうと、改めて強く感じた。</p>

<p>私自身が常にネガティブで、でも諦めきれないこともあって。<br>そんな感情にストレートに、"一人じゃない" というような、心に寄り添うような。<br>歌声から伝わる感情が心を掴み、直接動かされるような。<br>きっとこの曲に感じた気持ちがあるからこそ、今回のライブがより感動したんだと思った。</p>

<h3 class="wp-block-heading">後書き</h3>

<p>本当は終わってから二郎 京急川崎店に行こうと思ってたけど、<br>あまりにも良すぎて、心が満足しすぎて食欲がなくなるという事態になり家へ直行。</p>

<p>帰ってからもしばらく何も食べれずベッドに転がりながら余韻に浸っていた。</p>

<p>”良かった” この感情で心が埋まったのは久しぶり過ぎて、<br>楽しさと感動を思い出しながらしばらく過ごしてた。</p>

<hr class="wp-block-separator has-alpha-channel-opacity"/>

<p>3回目のライブでしたが、渋谷O-East、Zepp新宿と来て今回カルッツかわさき。<br>年々ステージが遠くなっていくことに一人しみじみと感動していました。</p>

<p>最近、好きだったものが嫌いになることが多く。<br>特に好きと感じていた頃とその人が変わってしまったためというのが大半で、<br>好きでい続ける難しさを感じていました。</p>

<p>HACHIさんのテーマがずっと心に寄り添う曲と一貫していて、<br>そのテーマが好きになって、<br>それが今でも変わらないことが何より嬉しくて。</p>

<p>いい人に巡り合えたなととても感じる良いライブでした。</p>

<p>アルバムも、今後の活動もとても楽しみ！<br>HACHIさんの歌は、いいぞ。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/12/IMG_8330-1024x768.jpeg" alt="" class="wp-image-474"/><figcaption class="wp-element-caption">終演後メッセージ</figcaption></figure>

<p></p>]]></description>
      <pubDate>Sat, 13 Dec 2025 16:30:35 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/hachi-live-tour-2025-unlockture-report</guid>
    </item>
    <item>
      <title>LEDビジョンの制御方法を真面目に考える会</title>
      <link>https://irukanonedoko.com/consider_ledvision_control</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>JMSでシースルーLEDを見て、ぶいすぽフェスで再びライブ演出が再燃。<br>ほんでLEDビジョンってどういう仕組みなん？っていうのを調べてみる。</p>

<p>シースルーLEDを調べた会<a href="/consider-transparentdisplay-jms2025"><br>https://irukanonedoko.com/consider-transparentdisplay-jms2025/</a></p>

<h2 class="wp-block-heading">色んな事情</h2>

<p>JMSで偶然NovastarのVX16Sを使っているのが見えた。<br>これの出力はEthernetとHDMI。</p>

<p>JMSの時はてっきりHDMIかと思ったが、<br>2週間くらい考えてやっぱりEthernet以外ありえんわってなってさらに調べることに。</p>

<p>確定てきなソースはないが、Artnetでもなく各社の独自仕様になっているらしい。<br>CANみたいな感じでパケットが特殊なのかなぁ。</p>

<p>LEDビジョンのレンタル会社が必ず機材のレンタルも出してるのは、<br>LEDビジョンごとに対応するビデオコントローラーがあるから。</p>

<p>つまりNovastar対応のディスプレイならVX16Sで扱える、ってことっぽい。</p>

<h2 class="wp-block-heading">Novastarってどんなん？</h2>

<figure class="wp-block-embed wp-embed-youtube"><iframe src="https://www.youtube-nocookie.com/embed/e0spto45kHY" title="YouTube video" loading="lazy" allowfullscreen allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture"></iframe></figure>

<p>沢山調べてたらYoutubeにNovastar系ビデオコントローラの動画が公式であった。</p>

<p>LEDビジョンはパネル単位のディスプレイをいくつも組み合わせて一枚のディスプレイにしているが、<br>なるほどビデコン毎の専用ソフト（NovastarならNovaLCT）でパネルの繋ぎ方などをコントロールしているのか。</p>

<p>こんなイメージかな？</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/11/image-40-1024x307.png" alt="" class="wp-image-459"/></figure>

<p>Novastar側でパネルの組み方も変えれるからおそらく外部入力でも変えれる。<br>多分こういう構成にして、仮想環境は開発と本番を兼用してる感じある。</p>

<p>またNovastar側でEthernetに変換するため、入力はHDMIでよい。<br>これならUnityへの映像伝送も別のコンバーターをかませるだけなので、<br>スイッチャー以降をインターフェース化できる。</p>

<p>例えばこんな構成（ぶいすぽフェスの構成）</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/11/image-42-1024x453.png" alt="" class="wp-image-461"/></figure>

<p>基本的には1, 6がサイド、2, 5が演出用、3, 4がメイン</p>

<p>こんな風に全てを1枚として使ったり</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/11/image-43-1024x453.png" alt="" class="wp-image-462"/></figure>

<p>部分的に分けたり</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/11/image-44-1024x453.png" alt="" class="wp-image-463"/></figure>

<p>グループごとに分けたり</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/11/image-45-1024x453.png" alt="" class="wp-image-464"/></figure>

<p>こういう切り替えをどうしてるのかって、考えてみると分からなかった。</p>

<p>これらも、1~6ごとにブロックにしておけばスイッチャーから切り替えれる。<br>後は白四角の範囲で映像を作れば、一枚のディスプレイとしても、個別のディスプレイとしても扱える。</p>

<p>ここもビデコンに依存されず、HDMIとして出せる形式を終端にしておけばUnityにも出せる。</p>

<h2 class="wp-block-heading">自作するとしたらを考える</h2>

<p>LEDビジョンはたっけぇので無理。（うん十万レベル）</p>

<p>実務を想定するのであれば、先ほどの構成図でUnityに出せるようにしておけばおそらく大丈夫。<br>スイッチャー以降はインターフェースになってるからね。</p>

<p>手っ取り早いのは Unityカメラ → Touchdesigner → Unity というフォールバック構成<br>最初のUnityカメラは、本番でも使えるし、リアルステージを映す場合でも切り替えれる。<br>Touchdesignerは楽だから。スイッチャーもここに入れちゃうのが〇<br>最後のUnityは仮想環境。ここで指定したディスプレイに映れば本番想定でやれる。</p>

<h2 class="wp-block-heading">実際はどうなの？</h2>

<p>基本的にはLEDビジョンの取り扱い会社が機材設置まで請け負ってることが多そう<br>（サイト見ると大体そんな感じ）</p>

<p>自分みたく演出設計/実装側からしたら、最終的にHDMIで映像が送れる状態になれば良いのだから、<br>Novastarの操作方法自体はそこまで知らなくてもよさそう。</p>

<p>中身がEthernetと言えど独自規格だと手が出せないし。</p>

<p>ちなみにシースルーは単にピッチが広くなっただけ、という捉え方ができる。<br>LEDビジョンを扱う会社が持ってるのも納得。</p>

<p>今度作ってみよう。<br>今回はここまで。</p>

<p>※ 調べた限りで全く本職ではないので推測でしかないです。</p>]]></description>
      <pubDate>Tue, 25 Nov 2025 17:39:42 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/consider_ledvision_control</guid>
    </item>
    <item>
      <title>ぶいすぽフェス2025 レポート</title>
      <link>https://irukanonedoko.com/vspofes2025_report</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>ぶいすぽフェス2025に行ってきました！！</p>

<p><a href="https://event.vspo.jp/vspo-festival-2025">https://event.vspo.jp/vspo-festival-2025</a></p>

<p>ぶいすぽをちゃんと見始めてもうすぐ1年という浅いファンですが、沢山楽しめたし沢山感動した良いフェスでした✨</p>

<p>なんと楽屋トーク付きプロローグ、そして両日通しSSで当選したので大満足セットで楽しんできました！</p>

<h2 class="wp-block-heading">DAY0  プロローグ</h2>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8056-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8056-768x1024.jpeg" alt="" class="wp-image-424" style="width:539px;height:auto"/></a></figure>

<p>早朝(といっても9:30)、LaLaアリーナに到着</p>

<p>迎える大きなぶいすぽマークの看板！<br>気合い入ってて良い！</p>

<p>人数は数千規模くらいで程よい感じ</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8061-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8061-1024x768.jpeg" alt="" class="wp-image-425" style="width:576px;height:auto"/></a></figure>

<p>11:00から開会式で、特に回れる場所も無かったので早速アリーナへ<br>入場して大きなキービジュが見えて結構テンション上がった</p>

<p>アリーナ内撮影禁止なので何も上げれないんですが、<br>思ったより会場が小さく、どこにいてもしっかりステージが見える感じ。<br>ほんと程よい。</p>

<p>ステージ上にコメ欄とQRがあったが、<br>どうやらリアルタイムでコメントを送って表示出来る仕組みのよう。</p>

<p><a href="https://visibby.com">https://visibby.com</a></p>

<p>↑これ使ってた。こんなサービスあったのね～<br>みんな思い思いにコメントしてて面白かった</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8238-scaled.png"><img src="/media/uploads/2025/11/IMG_8238-471x1024.png" alt="" class="wp-image-432" style="width:309px;height:auto"/></a><figcaption class="wp-element-caption">スマホからはこんな感じ</figcaption></figure>

<p>𝕏のタグ投稿企画で、FAを募集していたのだが、<br>その画像がステージ上のスクリーンに沢山流れてた</p>

<p>あっ、見たことある！これ好き～！みたいな感情で見ながら開会待ち。</p>

<p>開会式後は楽屋トークまで時間あったのでキッチンカーへ<br>すんごい並んでたので列が短かったパンケーキだけ買って食べることに</p>

<p>まぁこういう系はクオリティがね……</p>

<p>って思いきや！！</p>

<p>分厚い！フルーツ美味しい！生クリームたっぷり！しかも2枚！</p>

<p>無事腹パン<br>フードちゃんと美味しいの好感良すぎ～</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8083.jpeg"><img src="/media/uploads/2025/11/IMG_8083.jpeg" alt="" class="wp-image-426"/></a><figcaption class="wp-element-caption">フルーツも豪華で美味しかった</figcaption></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8082-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8082-768x1024.jpeg" alt="" class="wp-image-427"/></a><figcaption class="wp-element-caption">分厚くてびっくりした</figcaption></figure>
</figure>

<p>楽屋トークが長引いたみたいなのでドリンクへ<br>らむちのぱちしゅわドリンクと、ひねもすドリンクを買った</p>

<p>これもまた画像通りで綺麗だし美味しい！</p>

<p>さっぱりしつつもフルーツの主張がちゃんとあるバランスの良いひねもすドリンク<br>そしてちゃんとぱちしゅわしたらむちドリンク！</p>

<p>大満足です✨</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8087-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8087-768x1024.jpeg" alt="" class="wp-image-428"/></a><figcaption class="wp-element-caption">ひねもすドリンク</figcaption></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8088-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8088-768x1024.jpeg" alt="" class="wp-image-429"/></a><figcaption class="wp-element-caption">らむねのぱちしゅわドリンク</figcaption></figure>
</figure>

<p>そしていよいよ楽屋トークのお時間……</p>

<p>1分間の1on1トーク、私はあかりんとのトークに当たりました<br>最近あかりんの配信をよく見るようになり、明るい声に元気を沢山貰っていて、その感謝を伝えてきました</p>

<p>ブース入った時、開始したか分からないくておどおどしてたら、あかりんが同じようにおどおどしてくれて可愛かった</p>

<p>ありがとう─…</p>

<p>帰りに時間あったのでひなーのドリンクを買った！<br>あまあまで美味しかった</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8129-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8129-768x1024.jpeg" alt="" class="wp-image-430" style="width:409px;height:auto"/></a></figure>

<p>ドリンク売り場に手書き？のカードがあって嬉しかった</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8126-scaled.jpeg"><img src="/media/uploads/2025/11/IMG_8126-768x1024.jpeg" alt="" class="wp-image-431" style="width:490px;height:auto"/></a></figure>

<h2 class="wp-block-heading">DAY1</h2>

<p>9:00から物販ということでさらに早朝（5:30起きからの8:00現着）</p>

<p>某イベントでとんでもない待機列を経験しているのでため息つきながら向かってみると、<br>列形成すらなく近くの広場で待たされること50分。<br>8:50から入場で事前に購入リスト書いて9:10分くらいで列並べた。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8137.jpeg"><img src="/media/uploads/2025/11/IMG_8137-1024x768.jpeg" alt="" class="wp-image-433"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8138.jpeg"><img src="/media/uploads/2025/11/IMG_8138-1024x768.jpeg" alt="" class="wp-image-434"/></a></figure>
</figure>

<p>購入リストがそのまま注文用紙になってるから、用紙渡して取ってきてもらうスタンス。<br>拍子抜けするくらいあっさり買えて良い運営だなぁと思いながら。</p>

<p>外出たら人人人！！！<br>会場間違えた？ってくらいの人！！！！！</p>

<p>サブアリ展示も飲食も諦めてすぐアリーナへ...</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8233.jpg"><img src="/media/uploads/2025/11/IMG_8233-1024x683.jpg" alt="" class="wp-image-453"/></a><figcaption class="wp-element-caption">公式ツイートより引用</figcaption></figure>

<p>ゲームイベントは座ってわちゃわちゃでずっと笑って見れて楽しかった。<br>フォールガイズでしっぽ取られて体育館裏に呼び出されてギスってたのいつも通りすぎて面白かった</p>

<p>楽しみにしてたライブ！<br>SS席 アリーナA1 17列19席<br>A2が中央なんだけど、19席はほぼ中央だったからめっちゃいい席。</p>

<p>この為に謎の逆張りでアルバム一切聴かなかった。<br>ライブで初見の方が直感で好きになれるからね。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-34.png"><img src="/media/uploads/2025/11/image-34-1024x683.png" alt="" class="wp-image-435"/></a><figcaption class="wp-element-caption">公式ツイートから引用</figcaption></figure>

<p>以下セトリと感想。</p>

<p>・DIAMOND in the ROUGH　DAY1メンバー<br>今回の全体曲。<br>盛り上がっていい曲～～！！</p>

<p>・たまには夢のえすけぃぷ　花芽すみれ<br>初手すみーでびっくり<br>かわいい</p>

<p>・オドループ　一ノ瀬うるは× 千燈ゆうひ<br>なんかへ、いせい<br>色々懐かしい動きだったｗ</p>

<p>・なずなぞわんだぁ～らんど　花芽なずな<br>なずちゃん可愛かった</p>

<p>・パンダヒーロー　橘ひなの×藍沢エマ<br>たしかどこかで聴いたことあったよね？<br>ひなーのの高音たかすぎ～</p>

<p>〜MC〜　花芽すみれ×花芽なずな×一ノ瀬うるは<br>ぐだぐだMCで後続も安心ｗ<br>これぞぶいすぽ</p>

<p>・ゆらゆらサマー　白波らむね<br>会場内で一生流れててお気に入りになってた曲<br>サビの最後が楽しくて好き</p>

<p>・毒占欲　八雲べに×如月れん<br>セクシー＆かっこいい、良い</p>

<p>・Sunset Explorer 千燈ゆうひ<br>うひ～～！！！いい曲やないかい！！<br>大分好き曲</p>

<p>・Deep in Abyss 白波らむね×花芽なずな<br>アビスアニメ追いついてたからすんごい胸が苦しかった<br>いい曲～</p>

<p>〜MC〜　神成きゅぴ×白波らむね× 千燈ゆうひ<br>きゅぴの盛り上げ方が良かった</p>

<p>・Thunderbolt 神成きゅぴ<br>かっこよい</p>

<p>・ねぇねぇねぇ。一ノ瀬うるは×橘ひなの<br>なんだよ、かわいいじゃねぇか...ってなった</p>

<p>・Temptation 八雲べに<br>思ったよりセクシーじゃない？感じだった。よかった</p>

<p>・打上花火　紫宮るな×如月れん<br>一生れんくんにメロついてたら、左側にメロつく一般ファンガがいて笑ったｗ<br>しのみやぶれなさすぎるｗ</p>

<p>〜MC〜 八雲べに×一ノ瀬うるは×紫宮るな<br>うるはさんとるなちゃん一生喧嘩してて笑ったｗ</p>

<p>・大♡大♡大♡大好き　橘ひなの<br>めっちゃ平成だなぁ？！ってなったｗ</p>

<p>・超最強　神成きゅぴ×藍沢エマ<br>（記憶があいまいな箇所）</p>

<p>・あのね　紫宮るな<br>無限に可愛かったのだけ覚えてる</p>

<p>・怪物　千燈ゆうひ×白波らむね<br>声が合っててよかった</p>

<p>〜MC〜　如月れん×橘ひなの×藍沢エマ <br>なんかてぇてぇかった</p>

<p>・Ever Blue 一ノ瀬うるは<br>うるはさん！！！かっこいいやんけぇ...</p>

<p>・動く、動く　花芽すみれ×紫宮るな<br>動く🎶動く🎶<br>かわいいなこの二人</p>

<p>・Slow Bloom 如月れん<br>一生メロついてた。かっこよすぎるだろ<br>この辺りからちょっと涙腺に来ていた。<br>（れんくん大変だった話聞くからね...）</p>

<p>・花になって　神成きゅぴ×八雲べに<br>この二人いいね、よかった</p>

<p>・藍染の空　藍沢エマ<br>めっちゃ良かったこの曲、えまたその声良い...<br>結構泣いてた</p>

<p>・だから僕は音楽を辞めた　花芽姉妹<br>色んな考察で頭爆発しますが？？<br>この曲好きだし胸がきゅっとなった...<br>めっちゃ泣いてた</p>

<p>〜MC〜　花芽姉妹 <br>反則級のMC<br>すみーテンション低い時点で泣くの我慢してるなぁって思ったけど、<br>泣き出した時につられてもっと泣いた。<br>浅いファンでもこんなに泣けるのに初期のころからの人たちはもう膝から崩れ落ちるだろ...</p>

<p>・for Victory DAY1メンバー<br>もっともっと泣いた<br>いい曲やぁ...</p>

<p>と、大分しんみりDAY1だった。<br>こういう感動がいいんだよ。</p>

<h2 class="wp-block-heading">DAY2</h2>

<p>DAY1とほぼ同じ時間に起きて現地へ</p>

<p>DAY0, 1とめっちゃ込んでたサブアリ、会場後即ならんでさっと入れて本当によかった。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-35.png"><img src="/media/uploads/2025/11/image-35-1024x911.png" alt="" class="wp-image-436"/></a></figure>

<p>衣装展示良すぎ～！！<br>どれも出来が良すぎる！！</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8179.jpeg"><img src="/media/uploads/2025/11/IMG_8179-768x1024.jpeg" alt="" class="wp-image-437" style="width:430px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8180.jpeg"><img src="/media/uploads/2025/11/IMG_8180-768x1024.jpeg" alt="" class="wp-image-438"/></a></figure>
</figure>

<p>れんくんの服、意外とねこの要素あってかわいいギャップ良い</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8187.jpeg"><img src="/media/uploads/2025/11/IMG_8187-768x1024.jpeg" alt="" class="wp-image-439" style="width:441px;height:auto"/></a></figure>

<p>しらたまもいた。かわいい</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8191.jpeg"><img src="/media/uploads/2025/11/IMG_8191-768x1024.jpeg" alt="" class="wp-image-440" style="width:490px;height:auto"/></a></figure>

<p>あかりんのQRコードはちゃんと公式に飛ぶ</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8195.jpeg"><img src="/media/uploads/2025/11/IMG_8195-768x1024.jpeg" alt="" class="wp-image-441" style="width:501px;height:auto"/></a></figure>

<p>つむぎちゃんのスニーカー良すぎる欲しい。<br>こういう系の靴しか足に合わないから余計に欲しい。<br>是非に。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8197.jpeg"><img src="/media/uploads/2025/11/IMG_8197-768x1024.jpeg" alt="" class="wp-image-442" style="width:534px;height:auto"/></a></figure>

<p>スマホなあたりJKか！<br>ガラケーじゃないんかい！ってなった</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-36.png"><img src="/media/uploads/2025/11/image-36-1024x458.png" alt="" class="wp-image-443"/></a></figure>

<p>メンバーのイラスト展<br>ちゅなとくろむちゃん上手すぎ<br>もかさーんは...味しかない絵だなぁ...<br>プロローグで考察が捗るって聞いたけど、たしかに...</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8208.jpeg"><img src="/media/uploads/2025/11/IMG_8208-1024x768.jpeg" alt="" class="wp-image-444" style="width:829px;height:auto"/></a></figure>

<p>宝石モチーフのメンバー手作り石鹸<br>個性豊かで良い<br>（石鹸づくり楽しそう・・・）</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8209.jpeg"><img src="/media/uploads/2025/11/IMG_8209-1024x768.jpeg" alt="" class="wp-image-445"/></a></figure>

<p>ぬいもいます</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8234.jpg"><img src="/media/uploads/2025/11/IMG_8234-1024x683.jpg" alt="" class="wp-image-452"/></a><figcaption class="wp-element-caption">公式ツイートより引用</figcaption></figure>

<p>さて今日もゲームイベ！<br>すみーの特大トロールとアリヤのエペが印象に残っている。</p>

<p>なんかゲームの感想薄いように見えてちゃんと記憶に残ってる。<br>ただ書きにくいんよなぁ、ｗ</p>

<p>終わって少し時間あったから隙を見てドリンク購入！<br>がちうまでした</p>

<figure class="wp-block-image size-full is-resized"><a href="/media/uploads/2025/11/IMG_8223.jpg"><img src="/media/uploads/2025/11/IMG_8223.jpg" alt="" class="wp-image-446" style="width:466px;height:auto"/></a><figcaption class="wp-element-caption">すみれのガチウマドリンク</figcaption></figure>

<p>さてライブ。<br>SS席 アリーナA0 7列7席<br>A0ってどこやねん！！って思ったら色々あって緊急増設されたブロックだった。<br>左端だったけど7列ってだけあってほぼ最前列。迫力がすごくて十分いい席。</p>

<p>DAY2はさすがに泣く予定ないですわ～</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8232.jpg"><img src="/media/uploads/2025/11/IMG_8232-1024x683.jpg" alt="" class="wp-image-451"/></a><figcaption class="wp-element-caption">公式ツイートより引用</figcaption></figure>

<p>以下セトリと感想。</p>

<p>・DIAMOND in the ROUGH　DAY2メンバー<br>一生あかりんに向かってペンラ振ってた<br>何度聴いても良いこの曲</p>

<p>・君のいちばんになりたい　胡桃のあ<br>初手ですかぁ？！<br>王道アイドル曲、よい</p>

<p>・だいしきゅーだいしゅき　小森めと×夢野あかり<br>あかりんかわいいね・・・<br>めっさんさすがだったｗ</p>

<p>・ラビラビュ　兎咲ミミ<br>これも会場に沢山流れてて好きになってた曲<br>楽しい。たやかわいい<br>　<br>・フタリボシ　紡木こかげ×甘結もか<br>さわやかしっとりでおしゃれだった<br>この組合わせいいね</p>

<p>〜MC〜　小雀とと×兎咲ミミ×胡桃のあ<br>ゆるふわでかわいかった</p>

<p>・君がくれた羽　小雀とと<br>ととち～～<br>いい曲</p>

<p>・UNDEAD 猫汰つな×夢野あかり<br>2人ともかっこいいやん！！</p>

<p>・ひとくちの魔法　紡木こかげ<br>ね～お腹すいたね～って完全保護者気分になった</p>

<p>・いーあーるふぁんくらぶ　蝶結び<br>知ってる曲ってテンション上がるよね！</p>

<p>〜MC〜 小森めと×紡木こかげ×夜乃くろむ<br>ひねもす・・・？なんか違うぞｗ</p>

<p>・Ready set glow 夜乃くろむ<br>歌になると突然かっこいいうみんぐさん<br>かっこよすぎるだろ。</p>

<p>・D/N/A 空澄セナ×小雀とと<br>（あまり記憶がない）<br>難しい曲だなぁって思いながら聴いてた</p>

<p>・Everyday Party Time! 小森めと<br>めと！めと！コーレス楽しかった<br>　<br>・愛包ダンスホール　胡桃のあ× 猫汰つな<br>のあつな良すぎる</p>

<p>〜MC〜　夢野あかり×小雀とと×蝶屋はなび<br>お世話になっております～ってあかりんの挨拶おもろすぎなｗ</p>

<p>・蝶影繚乱　蝶屋はなび<br>フェス通しで見てもこれが一番楽しかった</p>

<p>・コネクト　兎咲ミミ×紡木こかげ<br>アビスと同じ気持ち。なんで胸苦しい曲選ぶん？ｗ<br>良い歌声でした。</p>

<p>・ビッグドリーマー　夢野あかり<br>あかりん～～～～～～！！！！<br>最初少しだけ会場で聞こえた時、某mkさんを感じる電波感で死ぬほど不安だった。<br>ちゃんといい曲ですやん・・・</p>

<p>・ロキ　空澄セナ×夜乃くろむ<br>ロキは楽しい！！かっこいい2人</p>

<p>〜MC〜　猫汰つな×空澄セナ×甘結もか<br>色々楽しい組み合わせだった</p>

<p>・適材適所ワンモアトライ！猫汰つな<br>ちゅな～！<br>ノリノリで楽しかった</p>

<p>・くりてぃかるぷりちー　兎咲ミミ×小森めと<br>一生みみたやかわいいしてた</p>

<p>・Next Page 甘結もか<br>もかさーん歌もいいですやん...</p>

<p>・RE:I AM 夜乃くろむ×小雀とと<br>いい曲だしいい歌い方だなぁ...<br>この曲どっかで...っておもったらユニコーンの曲だった。気づかんかった</p>

<p>・Momentary Light 空澄セナ<br>あしゅみ...<br>あれ？なんで泣いてるんだろう...<br>頑張ろうって思えるいい曲だった。これ好き</p>

<p>・ヒカリ証明論　蝶屋はなび×胡桃のあ<br>超しっとりの後にアゲ曲、風邪ひく</p>

<p>〜MC〜　胡桃のあ×兎咲ミミ<br>次の曲のコーレス練習ありがて～</p>

<p>・for Victory　DAY2メンバー<br>やっぱfor Victoryなんだよなぁ<br>サビを全員で手拍子しながらの合唱はずっと記憶に残るいい時間だった</p>

<p>DAY2は楽しいメインって感じ。<br>ゲームもライブも盛り上がってすごく良かった。</p>

<h2 class="wp-block-heading">その他</h2>

<p>全日あった等身大アクスタ<br>プロローグは全員統一衣装</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-39.png"><img src="/media/uploads/2025/11/image-39-1024x228.png" alt="" class="wp-image-449"/></a></figure>

<p>DAY1, DAY2はそれぞれゲームイベ参加の人はジャケット衣装に。</p>

<p>リサちゃんはライブに出れなかったから、統一衣装版はプロローグだけの限定<br>いつか生歌聴かせてくれよな</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_8100.jpeg"><img src="/media/uploads/2025/11/IMG_8100-768x1024.jpeg" alt="" class="wp-image-450" style="width:477px;height:auto"/></a></figure>

<p>想像を大きく超える良いFESだった。<br>本当に楽しかった。</p>

<p>また2年後くらいに開いてほしい。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_8228.jpeg"><img src="/media/uploads/2025/11/IMG_8228-1024x768.jpeg" alt="" class="wp-image-454"/></a></figure>]]></description>
      <pubDate>Tue, 25 Nov 2025 16:54:49 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/vspofes2025_report</guid>
    </item>
    <item>
      <title>JMS2025で見た透過ディスプレイについて考える会</title>
      <link>https://irukanonedoko.com/consider-transparentdisplay-jms2025</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>JMS(Japan Mobility Show 2025)で見かけたとある透過ディスプレイ。<br>その詳細とメリデメ、制御方法等、詳しく掘り下げて考える会です。</p>

<p>JMSのレポートはこちら↓<br><a href="/japanmobilityshow2025-report">https://irukanonedoko.com/japanmobilityshow2025-report</a></p>

<p>！お断り！<br>やっぱりEthernetだわってなってLEDビジョンの制御方法をこっちで考えてます。<br><a href="/consider_ledvision_control">https://irukanonedoko.com/consider_ledvision_control/</a></p>

<h2 class="wp-block-heading">映像から見てみる</h2>

<p>まずは会場で撮影した動画を見て考えていこう。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7828-1.mp4"></video></figure>

<p>何といっても特徴的な完全透過。<br>と言っても、柱やLEDの光があるため完全な透明とは言えない。</p>

<figure class="wp-block-image size-full is-resized"><a href="/media/uploads/2025/11/image-29.png"><img src="/media/uploads/2025/11/image-29.png" alt="" class="wp-image-411" style="width:610px;height:auto"/></a></figure>

<p>通常のディスプレイより奥行きを強く感じる。<br>光っている箇所と光っていない箇所が背景の見えやすさで表現されるため、<br>より光っている箇所が目立ち奥行きを感じるのかもしれない。</p>

<figure class="wp-block-image size-full is-resized"><a href="/media/uploads/2025/11/image-30.png"><img src="/media/uploads/2025/11/image-30.png" alt="" class="wp-image-412" style="width:622px;height:auto"/></a></figure>

<p>機材ははっきり見えてしまうものの、空中に映像が表示されているように見えるため、<br>近未来的なインパクトがある。</p>

<figure class="wp-block-image size-full is-resized"><a href="/media/uploads/2025/11/image-31.png"><img src="/media/uploads/2025/11/image-31.png" alt="" class="wp-image-413" style="width:614px;height:auto"/></a></figure>

<p>反対に、ちゃんとした映像だと全体的に薄く見え、<br>また本来見せたくないだろう背景も映ってしまいノイズになっている。</p>

<h3 class="wp-block-heading">表現的メリデメ</h3>

<p>表現に対して感じたメリット・デメリット</p>

<p>【メリット】</p>

<ul class="wp-block-list"><li>背景透過のインパクトにより注目度が上がる</li>

<li>明暗による立体的な表現ができる</li>
</ul>

<p>【デメリット】</p>

<ul class="wp-block-list"><li>黒が表現できない（黒 = LED offのため背景が映ってしまう）</li>

<li>背景が映り込むため映像全体にノイズが入る（背景 = 本来映像として見せる予定のない情報という意味のノイズ）</li>
</ul>

<h2 class="wp-block-heading">構造・制御方法</h2>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7832.jpeg"><img src="/media/uploads/2025/11/IMG_7832-768x1024.jpeg" alt="" class="wp-image-414"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7833-1.jpeg"><img src="/media/uploads/2025/11/IMG_7833-1-768x1024.jpeg" alt="" class="wp-image-415"/></a></figure>
</figure>

<p>まず表面から。<br>LEDが並んでいるが、縦方向に間隔が空いている。<br>この間隔のおかげで透過が成り立っているよう。</p>

<p>小さめといってもディスプレイのLEDとして考えればかなり大き目なLED。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7830.jpeg"><img src="/media/uploads/2025/11/IMG_7830-768x1024.jpeg" alt="" class="wp-image-416" style="width:509px;height:auto"/></a></figure>

<p>後ろから見るとこんな感じ。<br>40~50cm程度のブロックを1単位に、<br>複数のブロックを組み合わせて構成されているよう。<br>ここは通常の大型ビジョンと同様。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7829.jpeg"><img src="/media/uploads/2025/11/IMG_7829-768x1024.jpeg" alt="" class="wp-image-417" style="width:541px;height:auto"/></a></figure>

<p>ディスプレイの後ろ側にはライトがあった。<br>ディスプレイ単体の光量は各LEDの間隔分下がってしまうため、<br>それを補うためのライトと思われる。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7928-1.jpeg"><img src="/media/uploads/2025/11/IMG_7928-1-768x1024.jpeg" alt="" class="wp-image-418" style="width:525px;height:auto"/></a></figure>

<p>別のブースにも同様のディスプレイがあり、後ろ側に制御装置が見えた。<br>おそらくNovastar社のVX16sビデオコントローラと思われる。<br><a href="https://www.novaprocessors.com/product-page/vx16">https://www.novaprocessors.com/product-page/vx16</a></p>

<figure class="wp-block-image size-full is-resized"><a href="/media/uploads/2025/11/image-32.png"><img src="/media/uploads/2025/11/image-32.png" alt="" class="wp-image-419" style="width:665px;height:auto"/></a><figcaption class="wp-element-caption">spec sheetから引用</figcaption></figure>

<p>出力はメインがEthernet、モニター用でHDMIもサポート。<br>Ethernetでの大量LED制御と言えばArtnet。</p>

<p>すると考えられる制御方法は以下あたりだろう。</p>

<ul class="wp-block-list"><li>Artnetを使用したDMX制御<br>→ ユニバース設定やデータ送信が大変そう？</li>

<li>Monitor出力のHDMIを利用<br>→ ディスプレイがHDMIに対応するのか？</li>
</ul>

<h2 class="wp-block-heading">コスト考察</h2>

<p>特に調べたわけではないためあくまで想像になるが...</p>

<p>先ほどのサイズが大体 200cm * 600cm と仮定して 約250インチ。</p>

<p>大き目(60インチ程)のモニターでも10万円を超えることを考えると、<br>LEDビジョンで行った場合は数十万後半 ~ 百万円台までかかりそう。</p>

<p>対してこのディスプレイは大きさの割にLED密度が小さい。<br>各LED間15mm程度の隙間と考えると、大体42インチ相当に当たる。<br>そう考えると大きさはあるものの、通常のモニターより遥かに安価なのかもしれない。</p>

<h2 class="wp-block-heading">ここまでのまとめ</h2>

<p>ここまでの見た限りの考察をまとめると、</p>

<ul class="wp-block-list"><li>なかなか見ない透過ディスプレイ自体のインパクトが大きい</li>

<li>通常ディスプレイとは違った映像効果を狙える</li>

<li>通常ディスプレイより安価と推察される</li>
</ul>

<p>と言ったように<br><strong>珍しくて近未来的でおしゃれな上安価</strong><br>というメリットがかなり大きい設備に感じる。</p>

<h2 class="wp-block-heading">調べてみた</h2>

<p>ここまでは見て感じたことからの考察だったが、<br>ちゃんと調べてみた。</p>

<h3 class="wp-block-heading">正式名称</h3>

<p>なんと既にあった。（しかも5年以上前からある...）<br><a href="https://yamato-signage.com/transmissive-led-vision-features-benefits-and-effective-use/">https://yamato-signage.com/transmissive-led-vision-features-benefits-and-effective-use/</a></p>

<p><strong>透過LEDビジョン</strong>または<strong>シースルーLEDディスプレイ</strong>と呼ばれるらしい。</p>

<p>これとか<br><a href="https://www.cima-net.co.jp/sp-contents/14954">https://www.cima-net.co.jp/sp-contents/14954</a></p>

<p>これとか<br><a href="https://www.nisshintoaiwao.co.jp/materials/digital_signage/led.html">https://www.nisshintoaiwao.co.jp/materials/digital_signage/led.html</a></p>

<p>これとか<br><a href="https://seibidou.jp/sledvision/products/sled_transparent/">https://seibidou.jp/sledvision/products/sled_transparent/</a></p>

<p>思った以上に出てくる。<br>形状の自在さも強みっぽく特殊な形状でも低価格で提供している感じ。</p>

<h3 class="wp-block-heading">コスト調査</h3>

<p>LEDビジョンは以下の企業を参考にしてみる。<br><a href="https://gloval-stage.com/">https://gloval-stage.com/</a><br>250インチ5日レンタルで約90万円</p>

<p>透過LEDビジョンは以下の企業を参考にしてみる。<br><a href="https://www.cima-net.co.jp/sp-contents/14954">https://www.cima-net.co.jp/sp-contents/14954</a><br>1パネル1000*500mm 5日レンタルで約6.6万円<br>これを2000*6000mmに換算すると約160万円（計算合ってるか？）</p>

<p>もちろん企業や要件によるため単純比較にはならないが、<br>コストは下がると思ったら2倍くらい高くなるみたい。</p>

<h3 class="wp-block-heading">制御方法調査</h3>

<p>会場で見たVX16sは透過関係なく、LEDビジョンのビデオコントローラとして採用されているみたい。<br><a href="https://www.cima-net.co.jp/rental/led-display/ledcontroller/15163">https://www.cima-net.co.jp/rental/led-display/ledcontroller/15163</a><br><a href="https://www.arkbell.co.jp/equipment/vx16s/">https://www.arkbell.co.jp/equipment/vx16s/</a></p>

<p>概念的にはLEDビジョンと変わらないことを考えると、<br>透過LEDビジョンもHDMIと考えるのが妥当。</p>

<p>よっぽど特殊な形状以外はHDMIなんじゃないかなぁ。<br>（前使ったことある大型LEDビジョンがHDMIだったことを根拠にしてるけど、本当のところは謎）</p>

<h3 class="wp-block-heading">その他用途</h3>

<p>ちらっと書いたが、LEDビジョンと比べ形状のカスタマイズ性が高く、<br>オーダーを出せる企業もちらほらある。<br>特殊な形状に対応しやすいのはかなり長所な気がする。</p>

<p>また単純な映像表示とは別で、装飾としての用途にも使える。<br>少し違うが、お台場の階段とかこんな感じのLEDがあった記憶がある。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-33.png"><img src="/media/uploads/2025/11/image-33-1024x344.png" alt="" class="wp-image-420"/></a><figcaption class="wp-element-caption">引用：<a href="https://seibidou.jp/sledvision/products/sled_transparent/">https://seibidou.jp/sledvision/products/sled_transparent/</a></figcaption></figure>

<h3 class="wp-block-heading">調べた感想まとめ</h3>

<p>思ったより前から使われてたし、思い返せば色んな所で見かける一般的な技術だった。</p>

<p>思っていたよりコストが高いため<br>展示会等でも一定以上の規模を超えないと採用率が低下するのかもしれない。</p>

<p>初見ではArtnetや複雑な制御方法かと思っていたが、<br>純粋にLEDビジョンのピッチ広めverと考えるとHDMIに落ち着いた。<br>ここは作業コスト削減の意図もありそうだけど、<br>複雑な形状だとどうするんだろうって疑問は残る。</p>

<p>なんだこれは？！と思って調べてみて実は一般的だった、という結果だったが、<br>こうして身近な疑問に興味を持ち調べるのは楽しく、知見も広がり良い収穫だった。</p>

<h3 class="wp-block-heading">備考</h3>

<p>映像関係の人ではなく興味があって調べてるので、<br>実際の現場とは乖離がある可能性あります。</p>

<p></p>]]></description>
      <pubDate>Wed, 19 Nov 2025 17:17:16 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/consider-transparentdisplay-jms2025</guid>
    </item>
    <item>
      <title>【雑メモ】Windows11で突然強制サインアウトされてから復旧させた話</title>
      <link>https://irukanonedoko.com/recovery-windows11-20251113</link>
      <description><![CDATA[<p>雑メモです。<br>言いたいのはこれ。<br><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-amber-color"><span class="bold-red">回復環境からシステムの復元で直ることもある</span></mark></strong>。</p>

<h2 class="wp-block-heading">事象</h2>

<p>・11/12 深夜<br>　寝る前に更新してシャットダウンを実行<br>　再起動しています...で停滞（30分経っても画面変わらず）<br>　寝たいので電源ボタン長押しで強制シャットダウン<br>　もっかい電源ボタン押して起動<br>　更新進んでるような画面になる<br>　自動再起動<br>　...再起動せず。電源ボタン押して起動<br>　ログオン画面になる（壁紙含めいつもの通り）<br>　おっけ～と思ってログインせずシャットダウン<br>　すやすや...</p>

<p>・11/13 夜<br>　仕事から帰ってきて電源ボタン押して起動<br>　いつものログオン画面が出てきてログイン<br>　なぜか初期画面に。<br>　次いで<br>　　サインインに失敗しました。サインアウトして再起動すれば直ることがあります。<br>　というダイアログが表示される。<br>　従ってサインアウト、再起動する。<br>　初期画面のログオン画面になる。<br>　ログインする。<br>　初期画面のまま。<br>　なおっとらんやんけ！！！<br>　設定→アカウント 押しても無反応な ヘルプを表示 のみ。終わった。</p>

<h2 class="wp-block-heading">修復</h2>

<p>取り合えず調べたら回復環境から直りそうと判明。<br>この際壊れてもいいからやってみることに。（若干メンタル逝っててちょい自暴自棄）</p>

<p>Shift押しながら再起動押す。<br>F12押しながら待つ。<br>回復環境に入った。<br>トラブルシューティング → 詳細オプション → システムの復元</p>

<p>11/12 9:58 のWindowsUpdateイベントが最新イベントとして表示されてる。<br>どうやらこのイベントより前のシステム状態に戻せるらしい。</p>

<p>一応復元によって消えるデータの確認ができるので実行。<br>特になし。<br>じゃあいっかってことで復元開始</p>

<p>～10分くらい待つ～</p>

<p>復旧しました。再起動してください。<br>というダイアログ。<br>再起動ボタンがあるのでボタンぽち。</p>

<p>いつものログオン画面ちゃん！！<br>ログイン<br>いつものデスクトップちゃん！！</p>

<p>結果：復元できた</p>

<h2 class="wp-block-heading">後書き</h2>

<p>画像0なので役に立ち度激低だけど、記憶力ないからいつか同じ事象が起きた時のために、<br><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-amber-color"><span class="bold-red">回復環境からシステムの復元で直ることもある</span></mark></strong>ってことの実績をメモ。</p>

<p>あと再起動中の電源ボタン長押しもやめようね。危ないね。<br>でもさぁ！寝たかったんだもんさぁ！（自業自得）</p>

<p>お腹すいたのでこれで終わり。</p>

<p></p>]]></description>
      <pubDate>Thu, 13 Nov 2025 12:31:26 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/recovery-windows11-20251113</guid>
    </item>
    <item>
      <title>JapanMobilityShow2025のレポート</title>
      <link>https://irukanonedoko.com/japanmobilityshow2025-report</link>
      <description><![CDATA[<h2 class="wp-block-heading">はじめに</h2>

<p><a href="https://www.japan-mobility-show.com">https://www.japan-mobility-show.com</a></p>

<p>JapanMobilityShow2025に行ってきました！！<br>なんだかんだ今でも車に関わる仕事してるのでつい興味が湧いてしまう。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7650.jpeg"><img src="/media/uploads/2025/11/IMG_7650-1024x768.jpeg" alt="" class="wp-image-258"/></a><figcaption class="wp-element-caption">雲がかかってるけどいい天気</figcaption></figure>

<h2 class="wp-block-heading">まとめ・感想</h2>

<p>恒例の結論を先にシステム。</p>

<p>所謂コンセプトカーやモック品より、既に発表して投入予定の新型が多く、<br>更にそれらがこれまでモックとされてきたようなデザイン、機能を搭載してて<br>思っていた以上に市場の進化が進んでいたことを知れた。</p>

<p>近未来的・SF的なデザインがもはや現代のデザインになる日も近いと思うとワクワクする。</p>

<p>全体を通して車椅子や一人用小型車など、一人向け・屋内向けなどの軽移動用の乗物も多く、<br>車の形そのものの変化もあるのかなと感じた。<br>（去年を知らないから増加傾向かは分からない）</p>

<p>安価で一人用の移動乗物が今後普及すると生活がもっと豊かになるから、<br>この取り組みは進んでほしい。<br>将来に期待！</p>

<p>お仕事的な話で考えると、<br>そういった一人用乗物のUIや連携装置は今後必ず需要が出るからマークしておいた方がよさそう。<br>アシストデバイスとか、ARデバイスとか、組合せ次第で色々できそうだし考えてみようかな。</p>

<h2 class="wp-block-heading">東館: 車体関連</h2>

<h3 class="wp-block-heading">三菱重工</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image.png"><img src="/media/uploads/2025/11/image-1024x789.png" alt="" class="wp-image-262" style="width:513px;height:auto"/></a></figure>

<p>車両を自動で搬送するロボット。<br>商業施設の駐車場とかに使って、駐車をこのロボットに任せることで手間を減らしつつ駐車効率を高める施策。<br>帰る時はアプリで車を運んできてもらう仕組み。</p>

<p>既に一部の地域で実証が進んでいるらしい。<br>普通に便利。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-1.png"><img src="/media/uploads/2025/11/image-1-1024x756.png" alt="" class="wp-image-263" style="width:507px;height:auto"/></a><figcaption class="wp-element-caption">正面のお顔がとてもCute</figcaption></figure>

<h3 class="wp-block-heading">SusHiTech TOKYO</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-2.png"><img src="/media/uploads/2025/11/image-2-807x1024.png" alt="" class="wp-image-264" style="width:408px;height:auto"/></a></figure>

<p>一人用の車。<br>こういうの50万くらいで売ってくれたらいいよね。<br>某特殊小型原動機付き自転車よりこっちが普及してくれ。</p>

<h4 class="wp-block-heading">TIRE IV</h4>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7658.jpeg"><img src="/media/uploads/2025/11/IMG_7658-768x1024.jpeg" alt="" class="wp-image-265" style="width:384px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7659.jpeg"><img src="/media/uploads/2025/11/IMG_7659-768x1024.jpeg" alt="" class="wp-image-266"/></a></figure>
</figure>

<p>自動運転のOSS。<br>どっかで聞いたことあるんだけど思い出せない（仕事でちらっと聞いたことあるかも？）</p>

<p><a href="https://tier4.jp">https://tier4.jp</a><br><a href="https://github.com/autowarefoundation/autoware">https://github.com/autowarefoundation/autoware</a><br>...いつか中身見よう()</p>

<h3 class="wp-block-heading">ナンバープレート</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7661.jpeg"><img src="/media/uploads/2025/11/IMG_7661-768x1024.jpeg" alt="" class="wp-image-267" style="width:377px;height:auto"/></a></figure>

<p>皇居様式なんて存在初めて知った・・・</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7662.jpeg"><img src="/media/uploads/2025/11/IMG_7662-768x1024.jpeg" alt="" class="wp-image-268" style="width:399px;height:auto"/></a></figure>

<p>ナンバープレートも歴史があるって知ると不思議な気持ちになる。<br>車が出始めた時とか、様式がころころ変わった時って結構カオスだったんだろうな。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7664.jpeg"><img src="/media/uploads/2025/11/IMG_7664-768x1024.jpeg" alt="" class="wp-image-270" style="width:389px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7665.jpeg"><img src="/media/uploads/2025/11/IMG_7665-768x1024.jpeg" alt="" class="wp-image-271"/></a></figure>
</figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7666.jpeg"><img src="/media/uploads/2025/11/IMG_7666-768x1024.jpeg" alt="" class="wp-image-272" style="width:371px;height:auto"/></a></figure>

<p>色んな県のナンバープレート。<br>ミャクミャクが可愛く長崎がとてもおしゃん</p>

<h3 class="wp-block-heading">昔の車展</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7668.jpeg"><img src="/media/uploads/2025/11/IMG_7668-768x1024.jpeg" alt="" class="wp-image-274"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7670.jpeg"><img src="/media/uploads/2025/11/IMG_7670-1024x768.jpeg" alt="" class="wp-image-275"/></a></figure>
</figure>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7671.jpeg"><img src="/media/uploads/2025/11/IMG_7671-1024x768.jpeg" alt="" class="wp-image-280"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7672.jpeg"><img src="/media/uploads/2025/11/IMG_7672-1024x768.jpeg" alt="" class="wp-image-281"/></a></figure>
</figure>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7673.jpeg"><img src="/media/uploads/2025/11/IMG_7673-1024x768.jpeg" alt="" class="wp-image-282"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-3.png"><img src="/media/uploads/2025/11/image-3-1024x880.png" alt="" class="wp-image-284"/></a></figure>
</figure>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7675.jpeg"><img src="/media/uploads/2025/11/IMG_7675-1024x768.jpeg" alt="" class="wp-image-285"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-4.png"><img src="/media/uploads/2025/11/image-4-1024x992.png" alt="" class="wp-image-287"/></a></figure>
</figure>

<p>いっぱいあったけどほぼ分からんかった。<br>むかしのくるまだ～！くらいのゆんるり感覚で見てた。</p>

<h3 class="wp-block-heading">SHARP</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-5.png"><img src="/media/uploads/2025/11/image-5-1024x750.png" alt="" class="wp-image-288"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7678.jpeg"><img src="/media/uploads/2025/11/IMG_7678-1024x768.jpeg" alt="" class="wp-image-289"/></a></figure>
</figure>

<p>SHARPの多分コンセプトカー<br>部屋みたいになるのは面白い。</p>

<h3 class="wp-block-heading">AGC</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7681.jpeg"><img src="/media/uploads/2025/11/IMG_7681-768x1024.jpeg" alt="" class="wp-image-290" style="width:433px;height:auto"/></a></figure>

<p>日光とか光が強い所でも見やすくするフィルム（Smoke AR Film）<br>CIDとか全部これ入れてほしいよね。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7682.jpeg"><img src="/media/uploads/2025/11/IMG_7682-768x1024.jpeg" alt="" class="wp-image-291" style="width:437px;height:auto"/></a></figure>

<p>曲面ディスプレイの特徴として、見る方向によって色が変わってしまう問題があるらしい。（画像下側）<br>その色の変化を起きなくするようなフィルム。（画像上側：カラーシフトレスコーティング）</p>

<p>上下とも同じ真っ直ぐな物体の上に曲面ディスプレイを置いて、フィルムだけ違う状態。</p>

<p>「色の違いはなくなってますけど、なんかカクカクしてますね」<br>って説明してくれたお姉さんに言ってみたらなんと7日目にして初指摘だったらしい。<br>ずっと「たしかに...そうですね...」って呟いてた。相当衝撃的な気づきだったんだろう。。。<br>（人通り多いとこの展示だったから尚更かもしれない）<br>また開発の役に立ってしまった。</p>

<h3 class="wp-block-heading">HINO</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7701.jpeg"><img src="/media/uploads/2025/11/IMG_7701-1024x768.jpeg" alt="" class="wp-image-293"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7699.jpeg"><img src="/media/uploads/2025/11/IMG_7699-768x1024.jpeg" alt="" class="wp-image-294"/></a></figure>
</figure>

<p>poncho dotっていう未来？の多分コンセプトバス。<br>中は折り畳み式の椅子が両サイドにある。</p>

<p>後ろがガバっと開くので人も物も出入り楽ちん。<br>自動運転が進むと人輸送の他に物輸送も兼任できる方が強そうって思った。</p>

<h3 class="wp-block-heading">Mercedes-Benz</h3>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7705.jpeg"><img src="/media/uploads/2025/11/IMG_7705-1024x768.jpeg" alt="" class="wp-image-295"/></a></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7708.jpeg"><img src="/media/uploads/2025/11/IMG_7708-1024x768.jpeg" alt="" class="wp-image-296" style="width:523px;height:auto"/></a></figure>

<p>いったい何千万すんの？って感じの超高級仕様。とんでもねぇ。<br>お顔がちょっと残念感あるのは庶民故（だと思う）</p>

<p>とにかく内装がえげつない。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7712.jpeg"><img src="/media/uploads/2025/11/IMG_7712-1024x768.jpeg" alt="" class="wp-image-297" style="width:589px;height:auto"/></a></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7711.jpeg"><img src="/media/uploads/2025/11/IMG_7711-768x1024.jpeg" alt="" class="wp-image-298" style="width:419px;height:auto"/></a></figure>
</figure>

<p>後部座席広すぎる。<br>リア席ディスプレイは最近の高級車向けでよくあるのは知ってるけど、<br>こんなでかいのは初めて見た。<br>しかもDolby対応...パーティー仕様すぎない？</p>

<p>ついでに左側に一切の切れ目が見えない辺り、もしかして右側しか開かないのでは。<br>歩道側だけ開くってことだと思う。しゅごい。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-6.png"><img src="/media/uploads/2025/11/image-6-1024x920.png" alt="" class="wp-image-299"/></a></figure>

<p>多分最新モデルのCLA。かっこええ～～～</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7715.jpeg"><img src="/media/uploads/2025/11/IMG_7715-1024x768.jpeg" alt="" class="wp-image-300"/></a></figure>

<p>もちろんコックピットもおしゃん。</p>

<p>Mercedes Benz Operation System(MBOS)を積んだ初めてのモデルらしい。<br>どう違うのか気になる。</p>

<h3 class="wp-block-heading">YAMAHA</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7730.jpeg"><img src="/media/uploads/2025/11/IMG_7730-1024x768.jpeg" alt="" class="wp-image-301"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7732.jpeg"><img src="/media/uploads/2025/11/IMG_7732-768x1024.jpeg" alt="" class="wp-image-302"/></a></figure>
</figure>

<p>トライアルバイク。<br>トライアルっていうバイク乗りながらポーズしたりぴょんぴょんしたり、<br>かなりアグレッシブな競技？パフォーマンス？があるらしい。<br>前輪後輪をよく上げる関係でお腹側に見せる用のプレートが付いてる。<br>なんてえっちなこだわりなんだ・・・</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7733.jpeg"><img src="/media/uploads/2025/11/IMG_7733-1024x768.jpeg" alt="" class="wp-image-303" style="width:528px;height:auto"/></a></figure>

<p>どう乗るのかまったく分からなかった。絶妙なフォルムしてる。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7736.jpeg"><img src="/media/uploads/2025/11/IMG_7736-768x1024.jpeg" alt="" class="wp-image-304" style="width:451px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7958.jpeg"><img src="/media/uploads/2025/11/IMG_7958-768x1024.jpeg" alt="" class="wp-image-389"/></a></figure>
</figure>

<p>水素エンジンの2輪。<br>正直水素関連はあんまり信じてないんだけど、結構真面目に進めてるのね。<br>水素タンクってエナドリ見たいな形してるんだってことを知れた。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7960.jpeg"><img src="/media/uploads/2025/11/IMG_7960-1024x768.jpeg" alt="" class="wp-image-390" style="width:607px;height:auto"/></a></figure>

<p>何かの記念バイクっぽい？かっこいい。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7737.jpeg"><img src="/media/uploads/2025/11/IMG_7737-1024x768.jpeg" alt="" class="wp-image-305"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7739.jpeg"><img src="/media/uploads/2025/11/IMG_7739-768x1024.jpeg" alt="" class="wp-image-306"/></a></figure>
</figure>

<p>車いす。<br>未だ不便に見える車椅子に手掛けるのは好印象。<br>便利になるといいね。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7741.jpeg"><img src="/media/uploads/2025/11/IMG_7741-768x1024.jpeg" alt="" class="wp-image-307" style="width:419px;height:auto"/></a></figure>

<p>操作デバイスは不思議な感じ。<br>ターゲット年齢が高齢なのか、ずいぶん簡単なインターフェース。<br>将来この辺りに需要が出るかもしれない。</p>

<h3 class="wp-block-heading">SUZUKI</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7746.jpeg"><img src="/media/uploads/2025/11/IMG_7746-768x1024.jpeg" alt="" class="wp-image-308" style="width:388px;height:auto"/></a></figure>

<p>謎の4足移動型。<br>な、何用なんだ・・・</p>

<h3 class="wp-block-heading">HONDA</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-7.png"><img src="/media/uploads/2025/11/image-7-1024x853.png" alt="" class="wp-image-309"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7757.jpeg"><img src="/media/uploads/2025/11/IMG_7757-1024x768.jpeg" alt="" class="wp-image-310"/></a></figure>
</figure>

<p>コンセプトカーにしか見えない本当に発売されるHONDA 0シリーズ。<br>内装もすごく近未来的。<br>こういうコンセプトカーは沢山見てきたけど、実際に発売するってすごいよね。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-8.png"><img src="/media/uploads/2025/11/image-8-1024x520.png" alt="" class="wp-image-311"/></a></figure>

<p>個人的にはSUVタイプが好み。スマートなお顔がかっこいい。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-9.png"><img src="/media/uploads/2025/11/image-9-1024x899.png" alt="" class="wp-image-312"/></a></figure>

<p>移動用の乗物。障害を持つ方向けかと思いきや、一般人向け。<br>車椅子ではなく、歩く代わりにこれ乗って楽に移動しようってコンセプトの乗物。<br>ほ、ほしい！！</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-10.png"><img src="/media/uploads/2025/11/image-10-738x1024.png" alt="" class="wp-image-313" style="width:450px;height:auto"/></a></figure>

<p>スマホをセットして車体操作可能。<br>といいつつ昇降程度で、運転は体重移動だから直感的。</p>

<p>まだ実用化に至ってないらしいけど、こういうの普及して欲しい反面、足がどんどん退化しそう。<br>とはいえ商業施設とかで皆これ乗って周る未来は見てみたい。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-11.png"><img src="/media/uploads/2025/11/image-11-984x1024.png" alt="" class="wp-image-315" style="width:453px;height:auto"/></a></figure>

<p>プレリュードもいた。<br>カタログで見るよりかっこいい...気もする。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-12.png"><img src="/media/uploads/2025/11/image-12-1024x830.png" alt="" class="wp-image-316" style="width:531px;height:auto"/></a></figure>

<p>Acura RSX Prototype 北米市販予定の新型。<br>内装見えなかったけど外装いい感じ。国内はありますか？</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7775.jpeg"><img src="/media/uploads/2025/11/IMG_7775-768x1024.jpeg" alt="" class="wp-image-317"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7776.jpeg"><img src="/media/uploads/2025/11/IMG_7776-768x1024.jpeg" alt="" class="wp-image-318"/></a></figure>
</figure>

<p>ロケット！足元しっかり見えるの珍しいのでぱしゃり。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7782.jpeg"><img src="/media/uploads/2025/11/IMG_7782-1024x768.jpeg" alt="" class="wp-image-319" style="width:532px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7779.jpeg"><img src="/media/uploads/2025/11/IMG_7779-768x1024.jpeg" alt="" class="wp-image-320"/></a></figure>
</figure>

<p>MicroEV。1~2人用の小型車。かわいい。<br>ハンドルの真ん中にスマホ置けそう。自動運転想定かも？</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-13.png"><img src="/media/uploads/2025/11/image-13-932x1024.png" alt="" class="wp-image-321" style="width:449px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7787.jpeg"><img src="/media/uploads/2025/11/IMG_7787-768x1024.jpeg" alt="" class="wp-image-322"/></a></figure>
</figure>

<p>船にジェット。HONDAなんでもやってんな笑</p>

<h2 class="wp-block-heading">西館: モビリティ・部品関連</h2>

<h3 class="wp-block-heading">SCSK</h3>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7789.jpeg"><img src="/media/uploads/2025/11/IMG_7789-1024x768.jpeg" alt="" class="wp-image-324"/></a></figure>

<p>今回一番見たかったSCSK Car。<br>SIerが車作ったらどうなるの？ってコンセプトカー。<br>なんと、実際に走れる。（公道は申請降りてないけど、敷地内なら十分走れるレベル）</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7797.jpeg"><img src="/media/uploads/2025/11/IMG_7797-768x1024.jpeg" alt="" class="wp-image-325"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7794.jpeg"><img src="/media/uploads/2025/11/IMG_7794-1024x768.jpeg" alt="" class="wp-image-326"/></a></figure>
</figure>

<p>CIDはクラスターと完全一体のディスプレイ。<br>真ん中の青いのは謎。<br>後部座席は安定のディスプレイ付き。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7803.mp4"></video></figure>

<p>結構ぬるぬる動く。Androidだけど強めのSoC使ってるからかな。<br>上から下にスライドすると、スライドした位置からメニューが出てくる。<br>よく実装したなぁ...って感じ（動画撮り忘れた）</p>

<p>最初車作ったって聞いた時、何言ってんだぁ？って噛みつきに行こうと思ってたんだけど、<br>説明聞いてると外装や車体本体には力入れる気なくて、あくまで内装メインの提案を行っていくために作ったらしい。<br>確かに今後自動運転が進むにつれ内装の高級化や需要が増えるから、<br>それを見据えて実際に動く内装コンセプトを作ってるなら納得。いい施策だね。<br>（こういうコンセプトカーでおもちゃ大量に見てきたから、ちゃんと作ってあるのすごく印象がいい）</p>

<h3 class="wp-block-heading">三菱</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7810.jpeg"><img src="/media/uploads/2025/11/IMG_7810-1024x768.jpeg" alt="" class="wp-image-329" style="width:598px;height:auto"/></a></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7814.jpeg"><img src="/media/uploads/2025/11/IMG_7814-768x1024.jpeg" alt="" class="wp-image-330" style="width:430px;height:auto"/></a></figure>
</figure>

<p>新型。ディスプレイ遠くね？</p>

<h3 class="wp-block-heading">BMW</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7817.jpeg"><img src="/media/uploads/2025/11/IMG_7817-768x1024.jpeg" alt="" class="wp-image-331" style="width:471px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7816.jpeg"><img src="/media/uploads/2025/11/IMG_7816-768x1024.jpeg" alt="" class="wp-image-332"/></a></figure>
</figure>

<p>多分新型。ところでシフトレバーどこですか？<br>トグルスイッチ式のシフトチェンジ怖～。<br>他の展示車の一部が同じタイプだったからBMWはよく採用してるのかな。</p>

<h3 class="wp-block-heading">MINI</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7826.jpeg"><img src="/media/uploads/2025/11/IMG_7826-768x1024.jpeg" alt="" class="wp-image-333" style="width:454px;height:auto"/></a></figure>

<p>円形ディスプレイ。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7827.mp4"></video></figure>

<p>がちゃがちゃしてきた。<br>正直触りずらいし、円形の四象限がどの操作かって直感できるわけないからただただ触りにくい。<br>温度のUIはスライドすると操作方向側が大きくなるから、<br>下から上になぞった時に、下を触ってるはずなのに上が大きくなって気持ち悪かった。</p>

<h4 class="wp-block-heading">番外：透過ディスプレイ</h4>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7828.mp4"></video></figure>

<p>展示には全く関係ないけど、完全透過型ディスプレイがあった。<br>な、なんだこりは・・・！！！とても革新的じゃないかっ！！</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7833.jpeg"><img src="/media/uploads/2025/11/IMG_7833-768x1024.jpeg" alt="" class="wp-image-336"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7831.jpeg"><img src="/media/uploads/2025/11/IMG_7831-768x1024.jpeg" alt="" class="wp-image-337"/></a></figure>
</figure>

<p>見た感じはDMX。少なくともHDMIではない。<br>大型ディスプレイってすごい高いし重いし設置大変だしデータ量多いしで高コストだけど、<br>この方式なら安価で且つおしゃれだからすごくいいアイディア。<br>これは制御方法を紐解きたい・・・</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7928.jpeg"><img src="/media/uploads/2025/11/IMG_7928-768x1024.jpeg" alt="" class="wp-image-396" style="width:523px;height:auto"/></a></figure>

<p>別のとこにも同じのがいくつかあって、内一つの裏側が見えたので撮影。<br>NOVASTAR VX16Sっぽい。<br>Ethernetでディスプレイと接続だからArtNetだと思うけどどうだろうなぁ。</p>

<h3 class="wp-block-heading">ベンチャーエリア</h3>

<h4 class="wp-block-heading">SmartMat Cloud</h4>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-14.png"><img src="/media/uploads/2025/11/image-14-721x1024.png" alt="" class="wp-image-340"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7835.jpeg"><img src="/media/uploads/2025/11/IMG_7835-768x1024.jpeg" alt="" class="wp-image-341"/></a></figure>
</figure>

<p>下に敷いてあるのが該当IoTデバイス。<br>これで重さ測ってサーバに送信、Web画面で在庫数の管理ができるシステム。</p>

<p>これあれば大抵の在庫管理が楽にできるじゃんって思ったけど、<br>1つあたりの重量でキャリブレーションするはずだからネジとか軽量すぎるものには使えなさそうだし、<br>単純にデバイス単価が高そうだねって連れと話してた。</p>

<p>工場でネジがなくなったからアンドン引くとかよくあるからね～<br>こういうので管理できたらいいのにね。</p>

<h4 class="wp-block-heading">CUEBUS 自動物流道路</h4>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7840.jpeg"><img src="/media/uploads/2025/11/IMG_7840-768x1024.jpeg" alt="" class="wp-image-343" style="width:443px;height:auto"/></a></figure>

<p>パレットが動くのではなく、道路を制御しちゃおうってやつ。<br>小さい四角の所が電磁石になってるんじゃないかな。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7839.mp4"></video></figure>

<p>保守性やコスト面ではパレットに劣るけど、収納効率は高そう。<br>あと事故率低そう。</p>

<h3 class="wp-block-heading">DUNLOP</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7931.jpeg"><img src="/media/uploads/2025/11/IMG_7931-768x1024.jpeg" alt="" class="wp-image-374" style="width:517px;height:auto"/></a></figure>

<p>自動車タイヤ国産第一号（のレプリカ）<br>珍しかったのでぱしゃり。<br>意外と細かったのね。</p>

<h3 class="wp-block-heading">BRIDGESTONE</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7932.jpeg"><img src="/media/uploads/2025/11/IMG_7932-768x1024.jpeg" alt="" class="wp-image-375" style="width:550px;height:auto"/></a></figure>

<p>エアレスタイヤ。<br>ホイール側で衝撃吸収してタイヤに空気を入れないってタイプ。<br>そんなのあるんすね～<br></p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-21.png"><img src="/media/uploads/2025/11/image-21-852x1024.png" alt="" class="wp-image-376" style="width:610px;height:auto"/></a></figure>

<p>世界最大級のタイヤ。でかすぎんだろ。<br>鉱山用の重機につくらしい。でかすぎんだろ。</p>

<h3 class="wp-block-heading">Tokyo Feture Tour 2035</h3>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-22.png"><img src="/media/uploads/2025/11/image-22-1024x527.png" alt="" class="wp-image-377"/></a></figure>

<p>もっと未来へGOって感じの展示。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7937.mp4"></video></figure>

<p>小型の運ぶ車がお出迎え。かわいい。<br>一家に一台の時代になったらいいね。こぼしたら大変そうだけど。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7938.jpeg"><img src="/media/uploads/2025/11/IMG_7938-1024x768.jpeg" alt="" class="wp-image-379"/></a></figure>

<p>SKYDRIVE　電力駆動型のヘリ。<br>車体持ち上がるレベルのトルクが出る小型モータがプロペラ部分にあるってこと？</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7939.jpeg"><img src="/media/uploads/2025/11/IMG_7939-768x1024.jpeg" alt="" class="wp-image-380" style="width:543px;height:auto"/></a></figure>

<p>MOBILARIA　瞬足のもっとバネな靴。<br>履いてみたい。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7940.jpeg"><img src="/media/uploads/2025/11/IMG_7940-768x1024.jpeg" alt="" class="wp-image-381" style="width:615px;height:auto"/></a></figure>

<p>進化版車椅子？<br>こういう支援車が全体的に増えてていい傾向だね。<br>健康な人も楽して移動できる未来がいい。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7942.jpeg"><img src="/media/uploads/2025/11/IMG_7942-768x1024.jpeg" alt="" class="wp-image-382" style="width:464px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7944.jpeg"><img src="/media/uploads/2025/11/IMG_7944-768x1024.jpeg" alt="" class="wp-image-383"/></a></figure>
</figure>

<p>芝刈り機。今日も元気に草刈りしてた。<br>ハウステンボスにいるらしい。これを見に行くって名目で行きたい（）</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-23.png"><img src="/media/uploads/2025/11/image-23-700x1024.png" alt="" class="wp-image-384"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-24.png"><img src="/media/uploads/2025/11/image-24-601x1024.png" alt="" class="wp-image-385"/></a></figure>
</figure>

<p>コライドンとミライドン。<br>乗りたかったが整理券がなく断念。</p>

<p>コライドンは瞬きもしてて可愛かった。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7947.jpeg"><img src="/media/uploads/2025/11/IMG_7947-768x1024.jpeg" alt="" class="wp-image-386"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-25.png"><img src="/media/uploads/2025/11/image-25.png" alt="" class="wp-image-387"/></a></figure>
</figure>

<p>コライドンはHONDA、ミライドンはTOYOTAが作ったってマークが乗り口にあった。<br>こういう主張好き。</p>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7950.jpeg"><img src="/media/uploads/2025/11/IMG_7950-768x1024.jpeg" alt="" class="wp-image-388"/></a></figure>

<p>このエリアにいくつかあったAIナビゲーター（デザイナー？）<br>といいつつ普通のチャットボット＋絵</p>

<p>他の人が会話してたけど特に革新的でもなかったのでスルー。</p>

<p></p>

<h2 class="wp-block-heading">南館: 高級車・Kids関連</h2>

<h3 class="wp-block-heading">TOYOTA</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-15.png"><img src="/media/uploads/2025/11/image-15-689x1024.png" alt="" class="wp-image-349"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-16.png"><img src="/media/uploads/2025/11/image-16-792x1024.png" alt="" class="wp-image-350"/></a></figure>
</figure>

<p>AIガーディアン・・・？<br>子供幽閉装置にしか見えないんだけどこれいつどこで使うやつなんだろう。<br>かわいいはかわいい。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7844.mp4"></video></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7847.jpeg"><img src="/media/uploads/2025/11/IMG_7847-768x1024.jpeg" alt="" class="wp-image-351" style="width:474px;height:auto"/></a></figure>

<p>座ってる。かわいい。四脚型の動く椅子。<br>単体だと大分怖い。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7846.mp4"></video></figure>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-18.png"><img src="/media/uploads/2025/11/image-18-918x1024.png" alt="" class="wp-image-355"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-17.png"><img src="/media/uploads/2025/11/image-17-711x1024.png" alt="" class="wp-image-354"/></a></figure>
</figure>

<p>新型カローラ。言われないとカローラだと分からない。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7865.jpeg"><img src="/media/uploads/2025/11/IMG_7865-768x1024.jpeg" alt="" class="wp-image-356"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7861.jpeg"><img src="/media/uploads/2025/11/IMG_7861-768x1024.jpeg" alt="" class="wp-image-357"/></a></figure>
</figure>

<p>内装は若干見えてこんな感じ。<br>CIDがなくなってクラスターに集約、助手席が補助モニターって感じかな？<br>真ん中の机っぽいところのインターフェースが気になる。</p>

<h3 class="wp-block-heading">LEXUS</h3>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/image-19.png"><img src="/media/uploads/2025/11/image-19-1012x1024.png" alt="" class="wp-image-358"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7887.jpeg"><img src="/media/uploads/2025/11/IMG_7887-768x1024.jpeg" alt="" class="wp-image-359"/></a></figure>
</figure>

<p>一人用の自走車・・・かな？<br>皇帝感が高まりそう。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7889.jpeg"><img src="/media/uploads/2025/11/IMG_7889-1024x768.jpeg" alt="" class="wp-image-360" style="width:619px;height:auto"/></a></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7890.jpeg"><img src="/media/uploads/2025/11/IMG_7890-1024x768.jpeg" alt="" class="wp-image-361" style="width:608px;height:auto"/></a></figure>

<p>シンプルにかっこいい。</p>

<figure class="wp-block-gallery has-nested-images columns-default is-cropped"><figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7891.jpeg"><img src="/media/uploads/2025/11/IMG_7891-768x1024.jpeg" alt="" class="wp-image-362" style="width:433px;height:auto"/></a></figure>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7894.jpeg"><img src="/media/uploads/2025/11/IMG_7894-768x1024.jpeg" alt="" class="wp-image-363"/></a></figure>
</figure>

<p>内装がとにかくおしゃれ。<br>自動運転の先は車室空間を部屋と見立てた快適空間なのかなって感じの木目調。<br>考えてみれば採用率少ない割に一気に部屋感出るからいいかもね。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7898.jpeg"><img src="/media/uploads/2025/11/IMG_7898-768x1024.jpeg" alt="" class="wp-image-365" style="width:491px;height:auto"/></a></figure>

<p>コックピットがはちゃめちゃにかっこいい。実用的かは謎。<br>2層になってるけど裏側はどう操作するんだろう...<br>左右にも広がってるのは操作しやすそうだけどね。触ってみたい。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7897.mp4"></video></figure>

<p>ぴかぴかしてておしゃん。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7899.jpeg"><img src="/media/uploads/2025/11/IMG_7899-1024x768.jpeg" alt="" class="wp-image-366" style="width:610px;height:auto"/></a><figcaption class="wp-element-caption">珍しい六輪車</figcaption></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7901.jpeg"><img src="/media/uploads/2025/11/IMG_7901-1024x768.jpeg" alt="" class="wp-image-367" style="width:606px;height:auto"/></a></figure>

<p>ハイエースの新型らしい。<br>すごい高級ホテル感。これで送迎されたい人生だった。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7903.jpeg"><img src="/media/uploads/2025/11/IMG_7903-1024x768.jpeg" alt="" class="wp-image-368" style="width:558px;height:auto"/></a></figure>

<p>もしかして下に光が出てる？かっこよい。</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/image-20.png"><img src="/media/uploads/2025/11/image-20-1024x618.png" alt="" class="wp-image-369" style="width:666px;height:auto"/></a></figure>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7906.jpeg"><img src="/media/uploads/2025/11/IMG_7906-1024x768.jpeg" alt="" class="wp-image-370" style="width:658px;height:auto"/></a></figure>

<p>これまたかっこいい。スポーツフォルムかっこいいね。<br>多分2人用かな？</p>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7909.jpeg"><img src="/media/uploads/2025/11/IMG_7909-1024x768.jpeg" alt="" class="wp-image-371" style="width:694px;height:auto"/></a></figure>

<p>これから本当に流行るんですか？って感じのクラスター。<br>これまたCIDレス。</p>

<p>曲面ディスプレイおしゃれだけど無駄な領域もありそうでなんだかなぁという感じ。<br>動きを見たいので触らせて下さい。</p>

<h3 class="wp-block-heading">DAIHATSU</h3>

<figure class="wp-block-image size-large is-resized"><a href="/media/uploads/2025/11/IMG_7912.jpeg"><img src="/media/uploads/2025/11/IMG_7912-768x1024.jpeg" alt="" class="wp-image-372" style="width:585px;height:auto"/></a></figure>

<p>1人用車。<br>かわいい～欲しい～～</p>

<h2 class="wp-block-heading">おまけ</h2>

<h3 class="wp-block-heading">再びYAMAHAへ、そこには・・・</h3>

<p>一通り周った後、連れの知り合いに会うためにもう一度YAMAHAへ。<br>そしたら聴きなれた歌声が・・・</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7951.mp4"></video></figure>

<p>ミク！ミクじゃないか！！</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7955.mp4"></video></figure>

<p>さらにバイクトライアルまで！！かっこよい～！<br>バイクのお腹側見せるのえっちすぎる。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/11/IMG_7956.mp4"></video></figure>

<p>そしてラストパート<br>私の大大大好きなTell Your Worldのブラスバンド版<br>ミク・・・；；</p>

<p>嬉しさと普通に演出良くてひっそり泣いてた。とてもえがった。。。</p>

<p><s>真後ろにエンジンふかす体験できる展示あったんだけど少しは空気読めやってキレてはいた。<br>真正面のSUZUKIのステージはこれ終わった直後に始めてたんだし見習え。</s><br>（↑仕方ないし何も言えないんだけどね。内心ね。）</p>

<p>YAMAHAさん、ありがとう・・・</p>

<h3 class="wp-block-heading">さらにおまけ。JMSの後に食べるものと言えば・・・</h3>

<figure class="wp-block-image size-large"><a href="/media/uploads/2025/11/IMG_7966.jpeg"><img src="/media/uploads/2025/11/IMG_7966-1024x768.jpeg" alt="" class="wp-image-394"/></a></figure>

<p>知ってた。<br>ラーメン二郎 松戸駅前店。</p>

<p>いつも通り小ラーメン ヤサイニンニクアブラ</p>

<p>微乳化で私の好きなタイプの二郎の味。<br>上に乗ってるのはとろっとろのほぐし豚。<br>これだけでも十分な豚量なのに中に2枚いる。</p>

<p>ストレートで太目なもっちり麺が微乳化とマッチしていておいしかった。</p>

<p>珍しい先買いタイプなので並ぶ時に若干グタったのは反省。<br>あと量が多く2日連続だったとはいえ結構きつかった。<br>でも超美味しかったので満足。</p>

<p>来年もJMS行きたいな～！</p>]]></description>
      <pubDate>Tue, 11 Nov 2025 18:44:27 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/japanmobilityshow2025-report</guid>
    </item>
    <item>
      <title>突如任されたバックエンド開発にぼこぼこにされた話</title>
      <link>https://irukanonedoko.com/wrecked_by_backend</link>
      <description><![CDATA[<h2 class="wp-block-heading">概要</h2>

<p>今までUnityやら組み込みやら比較的フロントエンドに近い開発を行ってきた私。</p>

<p>突如「簡単なAWS連携するバックエンドシステムの開発してくれない？」と。<br>いうて今までも未経験領域ばっかりだったし、いけるやろ！と思い、<br>「いいですよ！やってみますね～！」<br>そう答えた。</p>

<p>これが悪夢の始まりと知らずに─</p>

<h3 class="wp-block-heading">リポジトリ</h3>

<p>今回の説明用に作成したサンプル。<br><a href="https://github.com/shinyshinpy/backend_sample">https://github.com/shinyshinpy/backend_sample</a></p>

<h3 class="wp-block-heading">取り扱い内容</h3>

<p>前段の茶番は置いておいて。</p>

<p>まじで安請け合いしてがっつりバックエンドにぼっこぼこにされてトラウマになったので<br>どんな構成で、どう組んだのかをまとめようと思います。</p>

<ul class="wp-block-list"><li>バックエンド初学者</li>

<li>フロントいけたしバックエンドいけるやろ！と考えた人</li>

<li>バックエンドってどう作るんか分からん</li>
</ul>

<p>↑こんな人にピッタリな記事になると思うので、よかったら読んでくださいね～<br>トラウマを追体験しましょう！</p>

<p>※ AWSは今回は触れません。</p>

<h2 class="wp-block-heading">構成</h2>

<p>構成はこんな感じ</p>

<figure class="wp-block-image size-large has-custom-border"><img src="/media/uploads/2025/09/image-1024x338.png" alt="" class="has-border-color has-light-blue-border-color wp-image-218"/></figure>

<p>デバイスからデータが飛んできて、それをDBに保存。<br>外部からAPIでそのデータを吸い上げ。</p>

<p>”簡単”そうですね！<br>（実際簡単なシステムではある）</p>

<h3 class="wp-block-heading">開発環境</h3>

<p>ここからが本題。<br>python書いてSQL書くくらいなら簡単ですわ～</p>

<p>え？環境ごとノーヒントで作れ...？</p>

<p>ということで後任とか保守性とか分からないなりに考えた結果、<br>以下の環境で作ることに。<br>（会社なんだからサポートつけてくれ～～）</p>

<ul class="wp-block-list"><li>WSL2<ul class="wp-block-list"><li>Windows上でLinux使えて開発に便利！</li>
</ul>
</li>

<li>devcontainer<ul class="wp-block-list"><li>開発環境そのものがリポジトリに保存できて人依存の問題が減って便利！</li>

<li>VSCode上でしか使えない？けど開発環境統一できて便利！</li>

<li>依存性の他、拡張機能もコンテナ毎に設定できて環境ずれが起きなくて便利！</li>
</ul>
</li>

<li>docker compose<ul class="wp-block-list"><li>よく分からんがビルドする時に便利！</li>

<li>ビルドイメージとかビルド方法とか、ビルド関連の設定が色々できて便利！</li>
</ul>
</li>
</ul>

<p>一応VirtualBox上のUbuntuでDocker使ったことはあるが、<br>当然開発環境が出来上がった上で実装書いてたもので...</p>

<p>バックエンド開発ってみんな環境ごと作るの？すごいね...</p>

<h3 class="wp-block-heading">事前準備</h3>

<p>色々準備します。</p>

<h4 class="wp-block-heading">WSL</h4>

<p>WSLはWSL2です。<br>Linux用Windowsサブシステムを有効化して</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-16-1024x577.png" alt="" class="wp-image-235"/></figure>

<p>ターミナルで wsl --install って打つだけです。</p>

<p>具体的な方法はいくらでも載ってるので適当に調べてください。</p>

<h4 class="wp-block-heading">dockerの準備</h4>

<p>本当はDockerDesktopを使う方が楽らしいんですけど、これ商用利用ライセンスが必要なんですよね。<br>大体の記事は皆個人開発なので↑使ってるんですけど、商用使えないの、困りますよねぇ...</p>

<p>ということで無償のDockerEngineを使います。</p>

<p>基本的には公式の手順に従ってコマンド打っていくだけです。<br><a href="https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/ubuntu">https://matsuand.github.io/docs.docker.jp.onthefly/engine/install/ubuntu</a></p>

<p>よっぽどリポジトリからのインストールで問題ないと思います。</p>

<pre class="wp-block-code bash"><code>$  sudo apt-get update
$  sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o 
/usr/share/keyrings/docker-archive-keyring.gpg

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin</code></pre>

<p>docker -v でバージョンが出ればOKです。</p>

<h2 class="wp-block-heading">環境構築</h2>

<p>さて構築していきましょう。</p>

<h3 class="wp-block-heading">作業フォルダに入る</h3>

<p>まずWSLに入ります。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-1-1024x576.png" alt="" class="wp-image-219"/></figure>

<p>入れたら作業フォルダを選びます。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-2-1024x576.png" alt="" class="wp-image-220"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-4-1024x577.png" alt="" class="wp-image-222"/></figure>

<p>こうなっていればOK</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-5-1024x576.png" alt="" class="wp-image-223"/></figure>

<h3 class="wp-block-heading">devcontainerに入る</h3>

<p>次にdevcontainerの準備をします。</p>

<p>ホスト側（Windows側）でもよいので以下の拡張機能を入れます。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-6-1024x293.png" alt="" class="wp-image-224"/></figure>

<p>Shit+Ctrl+Pでコマンドを開きます。</p>

<p>開発コンテナー：開発コンテナー構成ファイルを追加　を選択</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-9.png" alt="" class="wp-image-227"/></figure>

<p>今回はpythonで開発する環境が欲しいので、<br>pythonと入力して一番シンプルな python3 を選択。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-10.png" alt="" class="wp-image-228"/></figure>

<p>pythonのバージョンはお好みで。今回は既定の3.12<br>実務ではpythonバージョンによって仕様が変わるので、関係者と相談して決めよう！（一敗）</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-11.png" alt="" class="wp-image-229"/></figure>

<p>今回はmysql使うことが確定しているのでこのタイミングで追加。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-12.png" alt="" class="wp-image-230"/></figure>

<p>こうなればOK</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-13-1024x576.png" alt="" class="wp-image-231"/></figure>

<p>この時点でdevcontainerの環境を作ることはできましたが、まだコンテナに入ってません。<br>左下の&gt;&lt;に入っている環境が表示されています。<br>devcontainerに入ると、ここがコンテナ名になります。<br>今はWSLなので、まだWSL上でフォルダを開いているだけ、という状態です。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-14-1024x415.png" alt="" class="wp-image-232"/></figure>

<p>もう一度 Ctrl+Shit+P でコマンドを開き、<br>コンテナーでリビルドして再度開く を選択します。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-15.png" alt="" class="wp-image-233"/></figure>

<details class="wp-block-details"><summary>開けない場合</summary><p>以下のようなエラーが出て開けない場合。</p>

<pre class="wp-block-code"><code>&#91;981117 ms] Start: Run in Host: docker version --format {{json .}}
&#91;981208 ms] {"Client":{"Platform":{"Name":"Docker Engine - Community"},"Version":"28.3.3","ApiVersion":"1.51","DefaultAPIVersion":"1.51","GitCommit":"980b856","GoVersion":"go1.24.5","Os":"linux","Arch":"amd64","BuildTime":"Fri Jul 25 11:34:04 2025","Context":"default"},"Server":null}
&#91;981209 ms] Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

&#91;981210 ms] Exit code 1</code></pre>

<p>dockerが起動してないはずなので起動する。</p>

<pre class="wp-block-code"><code>$ sudo service docker status
 * Docker is not running

$ sudo service docker start
 * Starting Docker: docker                                                                                                                   &#91; OK ] </code></pre>
</details>

<p>こうなっていればOK<br>コンテナ名は .devcontainer.json の name に書かれている名前。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-17-1024x576.png" alt="" class="wp-image-236"/></figure>

<h3 class="wp-block-heading">devcontainer設定</h3>

<p>devcontainerは開く度に環境がリセットされます。</p>

<p>なのでこの状態でいつも通りタブから拡張機能入れたり、pip installしたりしても、<br>次開いたらそれらがなかったことになります。</p>

<p>しかも手動でやっちゃったら開く人によって環境変わっちゃうので<br>devcontainerの環境統一の恩恵が受けれません。</p>

<p>それら必要なものは全て .devcontainer.json に書くことで、<br>コンテナを開いた時（入った時）に自動的に全てインストールしてくれます。</p>

<pre class="wp-block-code json"><code>{
	"name": "Python 3",

	"image": "mcr.microsoft.com/devcontainers/python:1-3.12-bullseye",
	"features": {
		"ghcr.io/devcontainers-extra/features/mysql-homebrew:1": { }
	},
	"customizations": {
		"vscode": {
			"extensions": &#91;
				"ms-python.python",
				"VisualStudioExptTeam.vscodeintellicode",
				"mhutchie.git-graph",
				"ms-python.black-formatter"
			]
		}
	},
	"postCreateCommand": "apt-get update &amp;&amp; (apt-get install -y docker-ce-cli || apt-get install -y docker.io); pip install --no-cache-dir -r .devcontainer/requirements.txt"
}</code></pre>

<pre class="wp-block-code plaintext"><code>fastapi
uvicorn
sqlalchemy
pymysql
pytest
numpy
freezegun
black</code></pre>

<p>詳しく見ていきます。</p>

<h4 class="wp-block-heading">拡張機能の設定</h4>

<pre class="wp-block-code"><code>	"customizations": {
		"vscode": {
			"extensions": &#91;
				"ms-python.python",
				"VisualStudioExptTeam.vscodeintellicode",
				"mhutchie.git-graph",
				"ms-python.black-formatter"
			]
		}
	},</code></pre>

<p>extensionsの中には拡張機能IDを記載します。</p>

<p>欲しい拡張機能を右クリックして 拡張機能IDのコピー を押して、<br>jsonに貼り付けるだけです。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-18.png" alt="" class="wp-image-240"/></figure>

<h4 class="wp-block-heading">依存系の設定</h4>

<p>pip installとかで入れる必要があるものを全て requirements.txt 内に記載します。<br>（ファイル名は自由です）</p>

<pre class="wp-block-code plaintext"><code>fastapi
uvicorn
sqlalchemy
pymysql
pytest
numpy
freezegun
black</code></pre>

<p>これでdevcontainerを開いた時点で、コンテナ内にインストールさせることができます。</p>

<p>後述する個別のコンテナにも同様にインストールさせる必要があるので、<br>このようにファイルにまとめておくと便利です。</p>

<p>バージョン指定なども fastapi==0.45.0 など、通常のpip installと同様の記法が使えます。<br>未記載なら最新版が入ります。</p>

<h4 class="wp-block-heading">インストール設定</h4>

<p>前述のrequirements.txtに加え、開発環境自体に必要なライブラリを入れます。</p>

<pre class="wp-block-code"><code>"postCreateCommand": "apt-get update &amp;&amp; (apt-get install -y docker-ce-cli || apt-get install -y docker.io); pip install --no-cache-dir -r .devcontainer/requirements.txt"</code></pre>

<p>postCreateCommandを使用することで、引数のコマンドを実行されることができます。<br>ここでは、以下のことを行っています。</p>

<ul class="wp-block-list"><li>dockerEngineに必要な docker-ce-cliとdocker.ioの明示的なインストール</li>

<li>requirements.txt のインストール</li>
</ul>

<p>本来、一つ目のものは不要のはずですが、<br>まれにdocker-ce-cliが無くてビルドできない、という状態に陥るので明示的に入れてます。（一敗）</p>

<h4 class="wp-block-heading">インストール確認</h4>

<p>構成(json)を変更したらリビルドして開き直しましょう。<br>ターミナルにログが残るので、正常に入ったかはターミナルを監視して確認しましょう。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-19-1024x275.png" alt="" class="wp-image-242"/></figure>

<h2 class="wp-block-heading">Dockerコンテナ作成</h2>

<p>ここまででdevcontainer上での開発環境構築が完了しました。</p>

<p>さて！開発するぞ～！</p>

<p>...</p>

<p>ど こ に ど う や っ て ？？</p>

<p></p>

<p>ここに直接pythonファイル置いて動かすこともできるんですけど、<br>冒頭に示した構成をどう実現するのか？ってところが本題なんですよね。<br>（なのにその辺の記事がほとんどないという）</p>

<h3 class="wp-block-heading">コンテナ作り</h3>

<p>Dockerコンテナとして、アプリサービス用コンテナ、DB用コンテナの2種類に分けて開発することとします。</p>

<p>その際に、Dockerコマンドを使ってコンテナを立てるのではなく、<br>DockerFileに構成を記載し、docker composeコマンドで立てます。</p>

<p>こうすることで、コンテナの構成やビルドも統一することができ、<br>保守性が大きく向上します。</p>

<blockquote class="wp-block-quote"><p>wikiとかreadmeにコマンド手順書けばよくね？</p>

<p>ありがちなんですけど、こんな風に思うと思います。<br>　docker composeいる？<br>　Dockerコマンド使って個々に作ってもらう方が速くね？</p>

<p>まぁ大体記載されたコマンドは間違っていたり、環境依存なことが大きいことが大半です。<br>つまり、</p>

<p>書いてある通りにやってもコンテナできなくて開発できない！！！！</p>

<p>って声が”自分以外の人から”やってきます。<br>困りますねぇ～</p>

<p>docker composeならコンテナ作りが1つのコマンドで済み、<br>更にどんな構成でコンテナ作ったかがファイルにまとまっているので管理しやすいです。</p>

<p>構成が変更されても、git管理するのでいつだれが変えたか分かるので保守しやすいです。</p>

<p>そんな訳で、docker composeで構成する方が良いです。<br>（ただ記事あんまりないので一人でやるの大分むずかしいです。）</p>
</blockquote>

<h4 class="wp-block-heading">コンテナ構成</h4>

<figure class="wp-block-image size-large has-custom-border"><img src="/media/uploads/2025/09/image-21-1024x847.png" alt="" class="has-border-color has-light-blue-border-color wp-image-244"/></figure>

<p>docker-compose.ymlにコンテナ情報を記載<br>Dockerfileにビルド情報を記載</p>

<p>docker-compose.ymlをdevcontainer.jsonから呼び出すようにすれば<br>開いた時にコンテナ作成、マウントなどをやってくれる。</p>

<p>（始めたばかりすぎて合ってるかは不明...）</p>

<h4 class="wp-block-heading">docker-compose.yml</h4>

<pre class="wp-block-code"><code>services:
  mysql:
    image: mysql:8.4
    container_name: mysql_container
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=my_database
      - MYSQL_USER=user
      - MYSQL_PASSWORD=user_password
    ports:
      - "3306:3306"
    volumes:
      - ./database:/docker-entrypoint-initdb.d
      - mysql_data:/var/lib/mysql
    healthcheck:
      test: &#91;"CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

  app:
    container_name: app_container
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: mysql_pymysql://user.user_password@mysql_container/my_database
    depends_on:
      mysql:
        condition: service_healthy
    build:
      context: ../
      dockerfile: .devcontainer/Dockerfile
    volumes:
      - ../:/app

volumes:
  mysql_data:</code></pre>

<p>順番に見ていく</p>

<pre class="wp-block-code"><code>  mysql:
    image: mysql:8.4
    container_name: mysql_container
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=my_database
      - MYSQL_USER=user
      - MYSQL_PASSWORD=user_password
    ports:
      - "3306:3306"
    volumes:
      - ./database:/docker-entrypoint-initdb.d
      - mysql_data:/var/lib/mysql
    healthcheck:
      test: &#91;"CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10</code></pre>

<p>image: mysql 8.4を使用する。<br>mysql_container内にmysql8.4のイメージを展開するという意味。</p>

<p>environment: 環境変数。<br>ユーザーとかパスワードとかはここ以外でも設定できる。</p>

<p>volumes: マウント設定<br>一行目の./databaseにinit.sqlやら.envやら構成に必要なファイルを入れておく。<br>docker-entrypoint-initdb.dは魔法の言葉。ここにsqlとか置くと起動時に勝手にテーブル作ってくれる。<br>※ 既にテーブルがあると作成してくれないため、再作成時は削除してから。</p>

<p>healthcheck: ヘルスチェック<br>なくてもいいがあった方が良いやつ。<br>pingが通ればコンテナが作成されたことを示す。</p>

<pre class="wp-block-code"><code>  app:
    container_name: app_container
    ports:
      - "8000:8000"
    environment:
      DATABASE_URL: mysql_pymysql://user.user_password@mysql_container/my_database
    depends_on:
      mysql:
        condition: service_healthy
    build:
      context: ../
      dockerfile: .devcontainer/Dockerfile
    volumes:
      - ../:/app</code></pre>

<p>environment: 環境変数。<br>使用するDBの依存設定。<br>デバッグ時などはここをデバッグ用DBに変えるといい。</p>

<p>depends_on: 起動順の設定<br>mysqlコンテナが健康状態で生成されてからappコンテナを生成する。</p>

<p>build: ビルド設定<br>  context: ルート。.devcontainerに置いているためプロジェクトルートにする。<br>  dockerfile: Dockerfileの在処</p>

<p>volumes: マウント設定<br>プロジェクトルートから全部appコンテナにマウントさせる<br>　→ appコンテナ内で作業するための設定</p>

<h4 class="wp-block-heading">Dockerfile</h4>

<pre class="wp-block-code"><code>FROM python:3.12-slim

WORKDIR /app

COPY .devcontainer/requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 8000

CMD &#91; "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000" ]
</code></pre>

<p>python3.12-slimというコンテナを使用する。</p>

<p>最後コマンドでuvicornを実行している。<br>今回の構成がFastAPIを使用する構成のため、ここでサーバーを立ち上げてる。<br>（構成が違ったらここはなくてもいい）</p>

<pre class="wp-block-code"><code>.devcontainer.json</code></pre>

<pre class="wp-block-code"><code>// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
	"name": "Python 3",

	"dockerComposeFile": "./docker-compose.yml",
	"service": "app",
	"workspaceFolder": "/app",
	"features": {
		"ghcr.io/devcontainers/features/docker-outside-of-docker:1": {
			"moby": false
		}
	},
	"containerEnv": {
		"COMPOSE_FILE": ".devcontainer/docker-compose.yml"
	},
	"customizations": {
		"vscode": {
			"extensions": &#91;
				"ms-python.python",
				"VisualStudioExptTeam.vscodeintellicode",
				"mhutchie.git-graph",
				"ms-python.black-formatter",
				"ms-azuretools.vscode-docker"
			]
		}
	},
	"postCreateCommand": "apt-get update &amp;&amp; (apt-get install -y docker-ce-cli || apt-get install -y docker.io); pip install --no-cache-dir -r .devcontainer/requirements.txt"
}</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-22-1024x362.png" alt="" class="wp-image-245"/></figure>

<p>image: コンテナイメージの設定<br>Dockerfileで設定するため削除。</p>

<p>dockerComposefile, service, workspaceFolder: appコンテナマウント設定<br>appじゃなくてもいいはず。<br>docker-compose.ymlの在処の設定。<br>imageがない場合はどこにマウントするか記載する必要があるためこれを書く。</p>

<p>features: 追加設定<br>mysqlは別コンテナにするため削除。<br>docker-outside-of-dockerでホスト側dockerコマンドの実行権を取得。<br>（なくても良い）</p>

<details class="wp-block-details"><summary>docker-outside-of-dockerについて</summary><p>これがあると、コンテナ内でdockerコマンドが使用できる。<br>ただし、通常運用は危険らしいので非推奨。</p>

<p>というのも、せっかくコンテナ毎に分けて開発環境を分離したのに、<br>ホスト側操作をするdockerコマンドがコンテナ内で使用できると、<br>理解していない人が勝手に docker rmで削除したり、コンテナ追加したり、<br>意図しない操作が起きる可能性がある。</p>

<p>本来はターミナルを別で立ち上げ、<br>　ビルドはホストターミナル<br>　開発はコンテナに入ったVSCode<br>とするのが良いらしい。</p>
</details>

<h4 class="wp-block-heading">関連ファイル作成</h4>

<p>init.sql: DB初期化テーブル設定<br>　→ .devcontainer/database/init.sql</p>

<pre class="wp-block-code"><code>CREATE TABLE sample(
    id VARCHAR(10) PRIMARY KEY,
    info VARCHAR(50)
)</code></pre>

<p>今回はサンプル用。<br>ここに初期化時点で持っておきたいテーブルを記載する。</p>

<p>main.py: fastAPIエントリー<br>　→ app/main.py</p>

<pre class="wp-block-code"><code>from fastapi import FastAPI


app = FastAPI()</code></pre>

<p>fastAPIを使うため書いてる。使わなかったら不要。<br>ここにFastAPIのメソッドを書いていくと、URLアクセスでそのメソッドに応じた内容を返せる。</p>

<h3 class="wp-block-heading">ビルド / 確認</h3>

<p>ビルドは docker comopse build もしくはdevcontianerリビルドで可能。</p>

<p>docker compose buildした場合以下のようにビルドできる。<br>appコンテナにマウントしているため、mysqlコンテナのビルドはできない<br>mysqlコンテナのビルドは、devcontainerリビルドかホスト側でdocker composeする。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-24.png" alt="" class="wp-image-247"/></figure>

<p>今回はappコンテナをポート8000で開いているため、<br>localhost:8000にアクセスすれば何かしら開く。<br>※ fastAPIメソッドの ("/") がないためエラーメッセージが返る。</p>

<figure class="wp-block-image size-full has-custom-border"><img src="/media/uploads/2025/09/image-23.png" alt="" class="has-border-color has-light-blue-border-color wp-image-246"/></figure>

<p>MySQLテーブルができたか確認。</p>

<p>MySQL workbenchを使う。<br><a href="https://www.mysql.com/jp/products/workbench">https://www.mysql.com/jp/products/workbench</a></p>

<p>⊕マーク押して追加。<br>username, passwordをdocker-compose.ymlに書いた内容に合わせて記載<br>※ 今回は user, user_password</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/09/image-25-1024x700.png" alt="" class="wp-image-248"/></figure>

<p>TestConnectionでOKが出るか確認</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-26.png" alt="" class="wp-image-249"/></figure>

<p>OKで作成し、開くとテーブルがあることが分かる。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/09/image-27.png" alt="" class="wp-image-250"/></figure>

<p>SQL打ったり、DB状態を見たりできるためMySQL使う分には便利。<br>（ちょっと操作しにくいけど...コマンドよりはこっちの方が好き）</p>

<p>ここまでできれば開発を開始できる。<br>やったね！</p>

<h2 class="wp-block-heading">まとめ</h2>

<p>え？これバックエンド見たこともない初心者にやらせるんですか？？<br>フロントに帰りたい。</p>

<p>まぁ～～サンプルがなくて大変困った。<br>だってどのパラメータがどこに絡んでて中どうなっててとか分かんないんだもん！！！</p>

<p>最初ClaudeCodeに作らせて必要なファイルが何か理解して（当然動かし方分からないから動かない）<br>一つ一つ調べて理解してってやるの大変だった...</p>

<p>”簡単な”システムなのはコードの方であって、環境構築は難しいど。<br>車で10分の目的地に連れてって！（車は自作してね）って言われてる気分。<br>簡単なアプリ作ってね！（Unityとかフレームワークは自作してね）って言われてる気分。<br>お願いだから環境は知ってる人が作ってくれ～～～初学でやるの辛すぎるよ...</p>

<p>これインフラだろふざけんなって調べたら、環境構築もバックエンドの仕事らしい。<br>バックエンドの手広すぎだろ。</p>

<p>バックエンドエンジニアが見ればツッコミどころしかないだろうけど、<br>何も知らん！！！な人の足掛かりになればいいな。<br>（その前にそんな仕事振られたら逃げてくれって感じ）</p>

<p>バックエンドたのしいね！！！！（白目）</p>]]></description>
      <pubDate>Sun, 07 Sep 2025 10:35:01 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/wrecked_by_backend</guid>
    </item>
    <item>
      <title>【HLSLシェーダーの魔導書】ライティング（Chapter7）のメモ</title>
      <link>https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-7</link>
      <description><![CDATA[<h2 class="wp-block-heading">Chapter7 PBR(物理ベースレンダリング)</h2>

<h3 class="wp-block-heading">PBR</h3>

<p>PS4辺りからトレンドになった技術。</p>

<p>処理能力向上により、Phongの反射モデルでは取り入れられなかった<strong><span class="bold-red">物理的に正しいライティング</span></strong>ができるようになった。</p>

<p>以下を満たすことで物理的に正しい処理になる。</p>

<ul class="wp-block-list"><li><span class="red">エネルギー保存の法則<br></span>　→ 入射光より強い光を跳ね返さないこと（入射光の一部を吸収し反射する）</li>

<li><span class="red">ヘルツホルツの相反性<br></span>　→ 入射方向と射出方向が入れ替わっても射出量が変化しない</li>
</ul>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-12-23-24-03-1024x569.png" alt="" class="wp-image-205"/></figure>

<p><span class="marker-under">Phongの反射モデルはエネルギー保存の法則を満たしていないためPBRではない。</span></p>

<h4 class="wp-block-heading">正規化Lambert拡散反射</h4>

<p>Lambert拡散反射によるエネルギー総量を積分すると入射エネルギーのπ倍になる。<br>よってこれではエネルギー保存の法則が満たせない。</p>

<p>Lambert拡散反射の計算結果にπを除算することでエネルギー保存の法則を満たしPBRなライティングになる。<br>この、πで除算した拡散反射の計算モデルを<strong><span class="bold-red">正規化Lambert拡散反射</span></strong>という。</p>

<pre class="wp-block-code"><code>diffuse /= 3.1415926f;</code></pre>

<p>左が除算前、右が除算後</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-06-12-23-42-06.png" alt="" class="wp-image-206"/></figure>

<h3 class="wp-block-heading">ディズニーの論文によるPBR</h3>

<p>ディズニーの論文(Physically Based Shading at Disney)<br><a href="https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf">https://media.disneyanimation.com/uploads/production/publication_asset/48/asset/s2012_pbs_disney_brdf_notes_v3.pdf</a></p>

<p>元々ラプンツェルの髪の表現で作ったけど、<br>服などその他の部分はPBRじゃないから沢山ライティングいるし髪と大幅に反射が違うから不自然だし不便だよねってことで全部PBRのシェーダーが進んでいったらしい。</p>

<p>とにかく<span class="red">この論文が今のPBRのベース</span>になってるらしい。</p>

<h4 class="wp-block-heading">パラメーター</h4>

<p>物理的なパラメーターを調整することで多くの表現ができることを目的としている。</p>

<p>元が映画制作のためというのもあり、<br>映像を作成するのに効果的な、1個のカラー情報と10個のパラメーターに絞られた。</p>

<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout"><thead><tr><th><strong>パラメーター</strong>名</th><th>説明</th></tr></thead><tbody><tr><td>baseColor</td><td>サーフェイスカラー</td></tr><tr><td>subsurface</td><td>表面化錯乱具合。<br>大きいほど拡散反射が起きる</td></tr><tr><td>metallic</td><td>金属度</td></tr><tr><td>specular</td><td>鏡面反射率</td></tr><tr><td>specularTing</td><td>スペキュラーカラーをベース色にするための調整値</td></tr><tr><td>roufhness</td><td>表面の粗さ</td></tr><tr><td>anistropic</td><td>異方性反射率</td></tr><tr><td>sheen</td><td>光沢</td></tr><tr><td>sheenTint</td><td>光沢をベース色にするための調整値</td></tr><tr><td>clearcoat</td><td>クリアコート</td></tr><tr><td>clearcoatGloss</td><td>クリアコートの光沢の調整値</td></tr></tbody></table></figure>

<p>割とBlenderのBRDFそのままって感じ。</p>

<h4 class="wp-block-heading">ゲーム使用のPBRで使われるパラメータ</h4>

<h5 class="wp-block-heading">アルベドカラー</h5>

<p>これまで使用していたテクスチャは<span class="red">ディフューズテクスチャ</span>。<br>PBRで使用するテクスチャは<span class="red">アルベドテクスチャ</span>。</p>

<p>違いは<strong><span class="bold-red">ライティング結果による陰影が描かれているかどうか</span></strong>。</p>

<p>ディフューズは陰影を描かれているため、そのまま使っても陰影があった。<br><span class="marker-under-red">アルベドは陰影を描いてはいけないため、そのまま使うとのっぺりする</span>。</p>

<p>サーフェイスカラー(baseColor)に該当。</p>

<h5 class="wp-block-heading">スペキュラーカラー</h5>

<p>鏡面反射用のテクスチャ。<br>アルベドと同義で扱われる。</p>

<p>稀に分かれてる。<br>その際はアルベドカラーの方にブラーがかかってる。<br>（拡散反射光は物体内部で拡散して反射するため）</p>

<p><strong><span class="bold-red">baseColor = サーフェイスカラー = アルベドカラー = スペキュラーカラー</span></strong> と覚えておけばひとまず大丈夫。</p>

<h5 class="wp-block-heading">メタリック</h5>

<p>鏡面反射光の色を物体のカラーか光源のカラーどちらの割合を多くするかの設定。</p>

<p><span class="red">金属は物体の色</span>を返すが、<span class="red">非金属は光源の色</span>を返すため。</p>

<h5 class="wp-block-heading">粗さ</h5>

<p>物体表面の目に見えない小さな凹凸を表す。</p>

<p>レンダリングエンジンによって粗さ(roughness)、マイクロサーフェイス、滑らかさ(smooth)など名称が変わるが意味は一緒。</p>

<p>※ Unityでは滑らかさ、UE4では粗さ</p>

<h4 class="wp-block-heading">ワークフロー</h4>

<p>使用するエンジンによりPBRのパラメータからテクスチャの作り方まで変わってくる。<br><span class="marker-under">PBRだからこう！というわけではなく、エンジンのワークフローに従うこと</span>が大事。</p>

<h4 class="wp-block-heading">実装</h4>

<p>ディズニーの論文をベースにした今回独自のPBRを組む。</p>

<ul class="wp-block-list"><li>拡散反射: 正規化Lambert拡散反射 + フレネル拡散反射</li>

<li>鏡面反射: Cook-Torranceモデル</li>

<li>ワークフロー: Unityメタリックモード(アルベドカラー、メタリック、滑らかさで表現)</li>
</ul>

<p>メタリックマップはワークフローの関係でrにメタリック、aに滑らかさが格納されてる</p>

<pre class="wp-block-code"><code>// step-1 各種マップにアクセスするための変数を追加

// アルベドマップ
Texture2D&lt;float4&gt; g_albedo : register(t0);

// 法線マップ
Texture2D&lt;float4&gt; g_normalMap : register(t1);

// メタリックマップ
Texture2D&lt;float4&gt; g_metallicSoothMap : register(t2);</code></pre>

<p>前述の通り、正規化Lambert拡散反射とフレネル拡散反射を求め、それをアルベドに混ぜて拡散反射光とする。<br>※ フレネル拡散反射の詳細については後述</p>

<pre class="wp-block-code"><code>// step-3 シンプルなディズニーベースの拡散反射を実装する
DirectionalLight light = directionalLight&#91;ligNo];

// フレネル拡散反射を算出
float diffuseFromFresnel = CalcDiffuseFromFresnel(normal, -light.direction, toEye);

// 正規化Lambert拡散反射を算出
float NdotL = saturate(dot(normal, -light.direction));
float3 lambertDiffuse = light.color * NdotL / PI;

// 拡散反射を合成
float diffuse = albedoColor * diffuseFromFresnel * lambertDiffuse;</code></pre>

<p>Cool-Torranceについては詳細を割愛。</p>

<p>メタリックは金属である割合のため、これを利用し金属と非金属それぞれの反射を表現する。<br>※ specColor = アルベドカラー</p>

<ul class="wp-block-list"><li>金属: 色が付く</li>

<li>非金属: 色が付かず白っぽくなる</li>
</ul>

<pre class="wp-block-code"><code>// step-5 Cook-Torranceモデルを利用した鏡面反射率を計算する
float3 spec = CookTorranceSpecular(-light.direction, toEye, normal, smooth) * light.color;
spec *= lerp(float3(1.0f, 1.0f, 1.0f), specColor, metallic);</code></pre>

<p>滑らかさが高いほど拡散反射が弱くなる。</p>

<pre class="wp-block-code"><code>// step-6 滑らかさを使って、拡散反射光と鏡面反射光を合成する
lig += diffuse * (1.0f - smooth) + spec;</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-13-01-56-32-1024x577.png" alt="" class="wp-image-207"/></figure>

<p>PBRと言ってもワークフローでかなり変わるみたい。<br>今回のだとUEとUnityの中間くらいな印象？</p>

<p>実はUnityBRPもURPもHDRPも全部PBR。<br>ただワークフローやレンダーパイプラインの違いによってあれだけの見た目の差が生じているだけで、基本原理は同じ。</p>

<h4 class="wp-block-heading">今回のフレネル拡散反射</h4>

<p>今回の実装は「<span class="marker-under">フレネル反射率が低い時に拡散反射率が高くなる</span>」という箇所に着目した簡易式で表現。</p>

<p>本来の計算式は更に後述で記載。</p>

<p><span class="marker-under">フレネル反射は鏡面反射のこと。</span><br>光の入射角が大きい<span class="marker-under">(面に対して水平な)ほど鏡面反射率が上がる</span></p>

<p>エネルギー保存の法則に則り、光の総量は拡散反射量 + 鏡面反射量であることを考えると、<br><strong><span class="bold-red">光の入射角が小さい(面に対して垂直な)ほど拡散反射率が上がる</span></strong> と言える。</p>

<p>更に、実際に目に入る光(カメラの位置)を考慮すると、<br><strong><span class="bold-red">「光の入射ベクトル」「法線ベクトル」「カメラまでのベクトル」のなす角が小さい程強い</span></strong>と言える。</p>

<pre class="wp-block-code"><code>float CalcDiffuseFromFresnel(float3 N, float3 L, float3 V)
{
&nbsp; &nbsp; // step-4 フレネル反射を考慮した拡散反射光を求める
&nbsp; &nbsp; float dotNL = saturate(dot(N, L));
&nbsp; &nbsp; float dotNV = saturate(dot(N, V));
&nbsp; &nbsp; return dotNL * dotNV;
}</code></pre>

<h4 class="wp-block-heading">実際のフレネル拡散反射</h4>

<p>\( f_d = \frac{\text{baseColor}}{\pi} \left(1 + (F_{D90} - 1) (1 - \cos\theta_{l})^5 \right) \left(1 + (F_{D90} - 1)(1 - \cos\theta_{v})^5 \right) \)</p>

<p>ただし、光が面に対しほぼ平行に入射してきたときの拡散反射率を \( F_{D90} = 0.5 + 2 \times {roughness} \times \cos^2\theta_{d} \) とする。</p>

<p>ここで、それぞれ以下に分解できる。</p>

<ul class="wp-block-list"><li>アルベドカラー: \( \frac{\text{baseColor}}{\pi} \)<br>　正規化するためπで割る。</li>

<li>法線と入射光ベクトルとの拡散反射率: \( \left(1 + (F_{D90} - 1) (1 - \cos\theta_{l})^5 \right) \)</li>

<li>法線とカメラベクトルとの拡散反射率: \( \left(1 + (F_{D90} - 1)(1 - \cos\theta_{v})^5 \right) \)</li>
</ul>

<p>今回使用した式は以下。<br>Nはベクトル、Lは入射光ベクトル、Vはカメラべクトルを示す。<br>(dotは内積を求める関数として省略)</p>

<p>\( f_d = \frac{\text{baseColor}}{\pi} \left(dot(N, L)\right) \left(dot(N, V)\right) \)</p>

<h5 class="wp-block-heading">法線と入射光・カメラベクトルの拡散反射率の詳細</h5>

<p>法線と入射光の式を基準に考える。<br>\( \left(1 + (F_{D90} - 1) (1 - \cos\theta_{l})^5 \right) \)</p>

<p>一番左の1とその次の1は、垂直入射した際の拡散反射率(100%の意)。</p>

<p>\( F_{D90} \) は、平行入射した際の拡散反射率。<br>基本的に1より小さくなる。<br>そのため \( (F_{D90} - 1) \) は基本的にマイナスになる。</p>

<p>\( (1 - \cos\theta_{l}) \) は、法線と光源に向かうベクトルの内積。<br>5乗してる理由はカーブをつけるため。<br>（現実世界の現象は指数関数的な変化をするため）</p>

<p>カメラの場合はこれがカメラに向かうベクトルに変わるだけ。</p>

<p>この式を実装に変換すると以下のようになる。</p>

<pre class="wp-block-code"><code>// 垂直入射した時の拡散反射率 (一番左の1)
float f0 = 1.0f;

// 平行入射した時の拡散反射率 (Fd90 - 1の結果)
float f90 = 0.5f;

// 法線との内積
float t = pow(1.0f - dot(N, L), 5.0f);

// 拡散反射の算出
flaot diffuseRate = lerp(0f, 90f, t);</code></pre>

<p>結局何してたかというと、<br><strong><span class="bold-red">垂直反射率と平行反射率とのバランスを、法線との内積を利用して算出している</span></strong>ということ。</p>

<p>この言葉が最初にあればすんなり理解できたのに...()</p>

<h5 class="wp-block-heading">Fd90について</h5>

<p>光が面に対しほぼ平行に入射してきたときの拡散反射率<br>\( F_{D90} = 0.5 + 2 \times {roughness} \times \cos^2\theta_{d} \)</p>

<p>基本1より小さい値になると前述したが、最大で2.5になるらしい。<br>そりゃそうで、roughnessは0~1, cos2θも0~1なのだから、<br>0.5 + 2 * 1 * 1 で 2.5になるね。</p>

<p>だから<span class="marker-under">範囲は 0.5 ~ 2.5</span> となる。</p>

<p>これにより、面が粗さを考慮した拡散反射を求めることができる。</p>

<h5 class="wp-block-heading">実装</h5>

<p>ディズニーの論文からの式ではエネルギー保存の法則が満たされていないことがあるが、<br>これを解消する<span class="red">EA DICEによる改良版コード</span>を使用する。</p>

<pre class="wp-block-code"><code>float CalcDiffuseFromFresnel(float3 N, float3 L, float3 V)
{
    // step-1 ディズニーベースのフレネル反射による拡散反射を真面目に実装する。

    // 光源へのベクトルと視線へのベクトルのハーフベクトル
    float3 H = normalize(L + V);

    // 粗さ
    float roughness = 0.5f;

    float energyBias = lerp(0.0f, 0.5f, roughness);
    float energyFactor = lerp(1.0f, 1.0f / 1.51f, roughness);

    // Fd90の算出
    float dotLH = saturate(dot(L, H));
    float Fd90 = energyBias + 2.0f * roughness * dotLH * dotLH;

    // 法線と光源との拡散反射
    float dotNL = saturate(dot(N, L));
    float FL = (1 + (Fd90 - 1) * pow(1 - dotNL, 5));

    // 法線と視線との拡散反射
    float dotNV = saturate(dot(N, V));
    float FV = (1 + (Fd90 - 1) * pow(1 - dotNV, 5));

    return FL * FV * energyFactor;
}</code></pre>

<p>今回版</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-13-01-56-32-1-1024x577.png" alt="" class="wp-image-212"/></figure>

<p>実際版</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-14-00-52-14-1024x577.png" alt="" class="wp-image-213"/></figure>

<p>...わ、わからん！！<br>けどフレネル反射が強い位置の面でも拡散反射が強く出てるらしい。</p>

<h4 class="wp-block-heading">EA DICEの改良版コードについて</h4>

<p>DICE 論文「Moving Frostbite to PBR」および GDC 等で発表された、“Frostbite Disney Diffuse” モデルで使用される式。</p>

<pre class="wp-block-code"><code>float FD90 = 0.5 + 2.0 * roughness * dot(h, l) * dot(h, l);
float3 diffuse = baseColor / PI * (1.0 + (FD90 - 1.0) * pow(1.0 - dot(l, n), 5.0));</code></pre>

<p>数式にするとこう。</p>

<p>〇 ディズニーの論文から導出される式</p>

<p>\( f_d = \frac{\text{baseColor}}{\pi} \left(1 + (F_{D90} - 1) (1 - \cos\theta_{l})^5 \right) \left(1 + (F_{D90} - 1)(1 - \cos\theta_{v})^5 \right) \)<br>\( F_{D90} = 0.5 + 2 \times {roughness} \times \cos^2\theta_{d} \)</p>

<p>〇 EA DICEの改良版</p>

<p>\( f_d = \frac{\text{baseColor}}{\pi} \left(1 + (F_{D90} - 1) (1 - \cos\theta_{l})^5 \right) \)<br>\( F_{D90} = 0.5 + 2 \times {roughness} \times \cos^2\theta_{h} \)</p>

<p>\( \left(1 + (F_{D90} - 1)(1 - \cos\theta_{v})^5 \right) \) は処理に対し得られる効果が少ないため省略。</p>

<p>Fd90で使用するcos2θがハーフベクトルに変わっている。<br>調べる感じ、元は \( F_{D90} = 0.5 + 2 \times {roughness} \) らしい、、</p>

<p>これ以上は論文読まないといけなくなるからここで撤退。<br><span class="marker-under">基本はEA DICE</span>使っておけば良いと思う。</p>]]></description>
      <pubDate>Fri, 13 Jun 2025 17:08:23 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-7</guid>
    </item>
    <item>
      <title>【HLSLシェーダーの魔導書】ライティング（Chapter6）のメモ</title>
      <link>https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-6</link>
      <description><![CDATA[<h2 class="wp-block-heading">Chapter6 さまざまなテクスチャの利用</h2>

<h3 class="wp-block-heading">テクスチャ</h3>

<p>テクスチャの種類は以下のようなものがある。</p>

<ul class="wp-block-list"><li>ディフューズマップ: 模様を表現する（一般にテクスチャって言われたらこれ）</li>

<li>法線マップ: 凹凸を表現する</li>

<li>ハイトマップ: 高さを表現する</li>

<li>透明度マップ: 透明度を表現する</li>

<li>スペキュラマップ: 鏡面反射を表現する</li>

<li>AO(アンビエントオクルージョン)マップ: 環境光の強さを表現する</li>
</ul>

<p>他にもさまざまな用途で使われる。<br>用途が違うだけで、基本は各ピクセルにRGBが書き込まれている。<br>書き込まれたRGBの値をどう使うかによって名称が変わる。</p>

<h3 class="wp-block-heading">法線マップ</h3>

<p>法線マップはPS3あたりから登場。<br>目的はローポリで細かなディティールを表現するため。</p>

<p>細かい凹凸表現を頂点で表現すると極端にデータ量が増え、パフォーマンスに影響が出るため。<br>　...なのだが、UE5のNanite(ナナイト)機能によると法線マップが不要になる、らしい。</p>

<p>公式: <a href="https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5">https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5</a><br>参考: <a href="https://soysoftware.sakura.ne.jp/archives/2314">https://soysoftware.sakura.ne.jp/archives/2314</a></p>

<p>し、知らなんだ...UEしゅごい...</p>

<p>実際の開発現場がどうなっているのかは分からないが、<br>UE専用で作る時やNaniteに制限がなければ本当に法線マップ不要だし、頂点数削減もLODも不要っぽい。</p>

<p>ただモデル単位で考えると、UE5以外の環境ではやはり従来のローポリモデルが必要なケースが多いため、完全にはなくならない、、と思う。</p>

<p>Unityにもくれんか？</p>

<h4 class="wp-block-heading">法線マップの仕組み</h4>

<p>目で凹凸を認識する時、最も重要なのは<strong><span class="bold-red">光の陰影</span></strong>。<br>この陰影の表現は、<strong><span class="bold-red">ライトの方向と頂点の法線</span></strong>によって決まっていた。（これまでに学習した内容）</p>

<p>つまり、法線の計算が出来さえすれば頂点がなくとも同様の陰影を表現することが可能という理論。<br>テクスチャのRGBに法線XYZを書き込むことで法線マップとして使える。</p>

<p>法線マップにはデータ形式によって次の2種類が存在する。</p>

<h4 class="wp-block-heading">オブジェクトスペース法線マップ</h4>

<p><span class="red">オブジェクト空間</span>の法線マップ。</p>

<p>法線が-1.0~1.0なのに対し、テクスチャRGBは0.0~1.0の範囲のため、<br>計算の際は <span class="red">(RGB値 - 0.5) * 2</span> で復元する。</p>

<p>この法線はオブジェクトの回転がかかっていない場合の法線のため、<br>使用する際はさらにワールド空間行列をかけてワールド空間に直してから使用する。</p>

<p>疑似コードは以下。</p>

<pre class="wp-block-code"><code>// オブジェクトスペース法線マップを読み込み
float3 normal = normalMap.Sample(sampler, In.uv).xyz;

// 復元
normal = (normal - 0.5f) * 2.0f;

// ワールド空間へ変換
normal = mul(worldMatrix, normal);</code></pre>

<p>この方式だと法線マップテクスチャはモデル基準点からのベクトルになるため<span class="red">カラフル</span>になる。<br>また変形の際に法線向きが固定されてしまい、意図しない法線になるため<strong><span class="bold-red">変形に弱い</span></strong>。<br>そのため、<strong><span class="bold-blue">一般には使用されない</span></strong>。</p>

<h4 class="wp-block-heading">タンジェントスペース法線マップ</h4>

<p>法線マップを貼り付けるポリゴンの<strong><span class="bold-red">法線座標系から見た法線</span></strong>が書き込まれた法線マップ。<br>法線座標系は、以下の3つの直行するベクトルを規定軸とした空間のこと。</p>

<ul class="wp-block-list"><li>ポリゴンの法線ベクトル</li>

<li>法線と直行している接ベクトル(タンジェントベクトル)</li>

<li>法線と接ベクトルの外積で求めた従法線ベクトル</li>
</ul>

<p>なおこの空間を<span class="red">タンジェントスペース</span>とも呼ぶ。</p>

<h4 class="wp-block-heading">タンジェントスペース補足</h4>

<p>まｔｔｔｔｔったく分からなかったので調べた。</p>

<p>参考: <a href="https://coposuke.hateblo.jp/entry/2020/12/21/144327">https://coposuke.hateblo.jp/entry/2020/12/21/144327</a></p>

<p>タンジェントスペース(TBN空間)では、各RGB値は以下のように扱われる。</p>

<ul class="wp-block-list"><li>R = X = タンジェント方向(U方向)の成分</li>

<li>G = Y = バイノーマル方向(V方向)の成分</li>

<li>B = Z = 法線方向(垂直な長さ方向)の成分</li>
</ul>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image-1.png" alt="" class="wp-image-194"/></figure>

<p>まず基準は<span class="red">メッシュ平面に垂直な法線</span>である。<br>そのため、<span class="marker-under">特に何も変更がない法線の場合、(0, 0, 1)</span>になる。<br>これはUV方向に対し傾きがなく、メッシュに対して垂直なベクトルが法線に当たるためである。</p>

<p>次に、僅かに<span class="marker-under">V方向に傾いた時の値を考えてみると、(0, 0.1, 0.995)</span>となる。<br>法線は単位ベクトルのため、合成すれば必ず1となる。</p>

<p>これを逆手に取ったのがこの方法。<br>上記の場合、<span class="marker-under">合成すれば僅かにV方向に傾くベクトル</span>になることが分かる。</p>

<p>XY成分はUVであることから、<span class="marker-under">メッシュのUV展開</span>によって値が変わってくる。<br>オブジェクトスペースの場合は回転0の時を基準にしているためUVに影響されないが、TBNではこれを考慮する。<br>これにより、<span class="marker-under-red">メッシュ変形によりポリゴン自体のTBNが変化したとしても、それに合わせて法線を再計算できるため常に正しい法線を得ることができる</span>。</p>

<p>反対に、オブジェクトスペースの場合はメッシュが変形した際に法線マップの計算が合わなくなり、法線が崩れやすくなる。<br>これが<span class="bold-red">TBNが原理的に変形に強い</span>理由。</p>

<p>もう少し深堀をすると、<br>オブジェクトスペースはUV展開、メッシュの局所的な変形を考慮していない。</p>

<p>オブジェクト固有のローカル空間で表現されているため、例えば(0.7, 0, 0.7)の頂点に垂直な法線は(0.707, 0, 0.707)になるが、<br>この頂点が変形した時、面がどの方向に向いたのかを一つの行列から再計算することができない。</p>

<p>つまり、変形を考慮して法線を復元する際にTBNを使用するため、結果的に<span class="marker-under">初めからTBNで保存した方が有利</span>という見方ができる。</p>

<p>理論上はオブジェクトスペース法線マップから復元した法線をTBNに分解し、変形メッシュのTBN計算をすることで同様の結果を得ることができる、はず。</p>

<h4 class="wp-block-heading">法線空間からワールド空間への変換</h4>

<p><span class="red">法線 * 基底軸</span> で求まる。</p>

<p>TBN空間における法線は各基底軸(メッシュから垂直なベクトル)が元になるため、これを掛けることでワールド空間にすることができる。</p>

<p>ワールド空間のベクトルをV、法線マップからのベクトルをVx,Vy,Vz、各頂点のTBN基底軸をT,B,Nとすると、以下の式で表すことができる。</p>

<pre class="wp-block-code"><code>V = (Vx * T) + (Vy * B) + (Vz * N)</code></pre>

<p>TBN法線マップの場合、xyzの各成分はTBNに順ずるため、頂点からTBN情報を取得すれば復元することができる。</p>

<p>hlslで表すと以下の通り。</p>

<pre class="wp-block-code"><code>// 法線マップから読み込み
flaot3 localNormal = normalMap.Sample(sampler, In.uv).xyz;

// 復元
localNormal = (localNormal - 0.5f) * 2.0f;

// ワールド空間へ変換
float3 worldNormal = mul(localNormal, float3x3(tangent, binormal, normal));</code></pre>

<p>この方式はメッシュから垂直なベクトル(Z方向に1なベクトル)が基準のため、<br>全体的にZ成分が多くなり<span class="red">青みがかる</span>。</p>

<p><strong><span class="bold-red">基本的にはこの方式が採用される</span></strong>。</p>

<h4 class="wp-block-heading">実装</h4>

<p>タンジェント、バイノーマルは頂点データのため<span class="red">セマンティクスで取得</span>できる。<br>法線はNORMAL、接ベクトルはTANGENT、従ベクトルはBINORMALで取る。</p>

<pre class="wp-block-code"><code>struct SVSIn
{
    float4 pos : POSITION;  // モデルの頂点座標
    float3 normal : NORMAL; // 法線

    // step-1 頂点シェーダーの入力に接ベクトルと従ベクトルを追加
    float3 tangent : TANGENT;
    float3 binormal : BINORMAL;
};</code></pre>

<p>法線適用前後。<br>適用後の方が細部の陰影がはっきりしているのが分かる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-16-13-27-1024x577.png" alt="" class="wp-image-195"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-16-13-53-1024x577.png" alt="" class="wp-image-196"/></figure>

<h3 class="wp-block-heading">スペキュラマップ</h3>

<p><span class="red">鏡面反射の強さを制限</span>する。</p>

<p>例えば、1マテリアルで金属面と非金属面が共存するようなモデルで、<br>反射させたくない非金属面の箇所だけ黒く、金属面だけを白くすれば、反射箇所の制御ができる。</p>

<p>基本的に<span class="red">グレースケール</span>のテクスチャになる。</p>

<h4 class="wp-block-heading">実装</h4>

<p>グレースケールのためRGBどの値を取得しても同じなため今回はR成分だけで判断。</p>

<pre class="wp-block-code"><code>float specPower = g_specularMap.Sample(g_sampler, psIn.uv).r;</code></pre>

<p>反射光に直接掛ければ良いだけ。</p>

<pre class="wp-block-code"><code>specLig *= specPower</code></pre>

<p>金属部分だけに鏡面反射が加わったことが分かる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-16-40-19-1024x577.png" alt="" class="wp-image-198"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-16-43-45-1024x577.png" alt="" class="wp-image-199"/></figure>

<h3 class="wp-block-heading">アンビエントオクルージョンマップ(AOマップ)</h3>

<p><span class="red">環境光の強さを制限</span>する。</p>

<p>顎の下、首元など、環境光を受けやすい場所、受けにくい場所の環境光の強さを調整する。</p>

<p>大体はグレースケールのはず。</p>

<h4 class="wp-block-heading">実装</h4>

<p>テクスチャ読み込んで環境光に掛けるだけ。</p>

<pre class="wp-block-code"><code>float3 ambient = ambientLight;

// AOマップ読み込み
float ambientPower = g_aoMap.Sample(g_sampler, psIn.uv);

// 乗算
ambient *= ambientPower;</code></pre>

<p>わずかに陰影がついたのが分かる。<br>この陰影を生み出すための光源調整を不要にし、意図した陰影をシンプルな環境光で表現するのが目的。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-17-13-57-1024x577.png" alt="" class="wp-image-200"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-09-17-16-15-1024x577.png" alt="" class="wp-image-201"/></figure>

<p></p>]]></description>
      <pubDate>Mon, 09 Jun 2025 13:48:57 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-6</guid>
    </item>
    <item>
      <title>【HLSLシェーダーの魔導書】ライティング（Chapter5）のメモ</title>
      <link>https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-5</link>
      <description><![CDATA[<h2 class="wp-block-heading">Chapter5 ライティング発展</h2>

<h3 class="wp-block-heading">ポイントライト</h3>

<p>ディレクショナルライトと比べ、考慮しないといけない点は以下</p>

<ul class="wp-block-list"><li>入射してくる光の方向</li>

<li>光源との距離による光の減衰</li>
</ul>

<h4 class="wp-block-heading">入射光の方向</h4>

<p>各頂点毎に入射方向を求める必要がある。</p>

<p>純粋に頂点と光源とのベクトルで良い。<br>　→ 頂点座標 - 光源座標</p>

<h4 class="wp-block-heading">距離による減衰</h4>

<p>距離は前述のベクトルの長さが該当する。</p>

<p>距離をD, 影響範囲をRとした時、頂点毎の影響力Aは以下で求まる。</p>

<pre class="wp-block-code"><code>A = 1 - (1 / R) * D &#91;%]</code></pre>

<p>※ 影響範囲はポイントライトの光の強さのイメージ。<br>ただし、このまま結果を使用すると距離と影響力が比例してしまい非現実的になるため、<br>影響力を2乗した値を使用し、緩やかになカーブにする。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-05-28-02-12-26-1024x311.png" alt="" class="wp-image-174"/><figcaption class="wp-element-caption">左：結果そのまま、右：結果を2乗した時</figcaption></figure>

<h4 class="wp-block-heading">実装</h4>

<p>今回はディレクショナルライトと同様のモデルで実装する。</p>

<p>フローは以下。</p>

<ul class="wp-block-list"><li>光源座標と頂点座標から入射光のベクトルを算出</li>

<li>入射光ベクトルを使用し、拡散反射光、鏡面反射光を求める</li>

<li>入射光ベクトルの長さから影響力を求める</li>

<li>影響力を反射光に乗算し、最終的な反射光を算出する</li>
</ul>

<h4 class="wp-block-heading">cpp側</h4>

<p>構造体を作る。</p>

<p>ptColorの次のfloatに必要な変数を入れているが、パディングじゃなくていい理由はなに？<br>　→ （後述で説明）</p>

<pre class="wp-block-code"><code>// step-1 ライト構造体にポイントライト用のメンバ変数を追加する
Vector3 ptPosition;     // ポイントライトの位置
float pad2;
Vector3 ptColor;        // ポイントライトのカラー
float ptRange;          // 影響範囲</code></pre>

<h4 class="wp-block-heading">hlsl側</h4>

<p>拡散反射光、鏡面反射光を算出する処理は関数化しておくと便利。</p>

<pre class="wp-block-code"><code>// step-8 減衰なしのLambert拡散反射光を計算する
float3 diffPoint = CalcLambertDiffuse(ligDir, ptColor, psIn.normal);

// step-9 減衰なしのPhong鏡面反射光を計算する
float3 specPoint = CalcPhongSpecular(ligDir, ptColor, psIn.worldPos, psIn.normal);</code></pre>

<p>動かすとちゃんとポイントライトしてることが見える。</p>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/06/2025-05-28-02-36-41-1.mp4"></video></figure>

<h4 class="wp-block-heading">構造体定義にパディングがいらないことの調査</h4>

<p>パディングを入れてみる。</p>

<pre class="wp-block-code"><code>// step-1 ライト構造体にポイントライト用のメンバ変数を追加する

Vector3 ptPosition;     // ポイントライトの位置
float pad2;
Vector3 ptColor;        // ポイントライトのカラー
float pad4;　// ☆ 追加
float ptRange;          // 影響範囲
Vector3 eyePos;         // 視点の位置
float pad3;
Vector3 ambientLight;   // アンビエントライト</code></pre>

<p>色がおかしくなった。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-05-28-02-43-44-1024x577.png" alt="" class="wp-image-177"/></figure>

<p>なんでptColorの後のptRangeをパディングなしで取れるのだ？</p>

<p>これに関してパディングとcpp-hlsl間のデータ連携の前提を間違えて理解している。</p>

<p>Vector3の受け渡しにパディングが必要なのではなく、その本質は<strong><span class="red">スロットを整理する</span></strong>ためのもの。</p>

<p>基本的に、データはスロットを跨いで取得することはできない。</p>

<p>1スロットあたり16バイトで構成されている中で、<br>例えば以下のような構造体の場合、cpp側では連続したメモリにデータが格納される。</p>

<pre class="wp-block-code"><code>struct sample
{
    Vector3 a;
    Vector3 b;
}</code></pre>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-05-28-03-08-22.png" alt="" class="wp-image-178"/></figure>

<p>HLSLが1スロット(4バイト)ずつ読む際に、<br>float3 bの読み始めはb.xの位置(12バイト目)ではなく、<span class="red">次のスロットの16バイト目から</span>になる。</p>

<p>だからデータがずれる。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-05-28-03-10-59.png" alt="" class="wp-image-179"/></figure>

<p>この、スロットの調整のためにパディングを設け、<br><strong><span class="bold-red">スロットを跨ぐようなデータ配置になった時、次のスロットからデータが始まるようにする</span></strong>のがパディングの本質。</p>

<pre class="wp-block-code"><code>// step-1 ライト構造体にポイントライト用のメンバ変数を追加する
Vector3 ptPosition;     // ポイントライトの位置
float pad2;
Vector3 ptColor;        // ポイントライトのカラー
float pad4;　// ☆ 追加
float ptRange;          // 影響範囲
Vector3 eyePos;         // 視点の位置
float pad3;
Vector3 ambientLight;   // アンビエントライト</code></pre>

<pre class="wp-block-code"><code>cbuffer DirectionLightCb : register(b1)
{
    // step-6 定数バッファーにポイントライト用の変数を追加
    float3 ptPosition;      // 位置
    float3 ptColor;         // カラー
    float ptRange;          // 影響範囲
    float3 eyePos;          // 視点の位置
    float3 ambientLight;    // アンビエントライト
};</code></pre>

<p>今回の場合、pad4を追加したことで、<span class="red">pad4がHLSL側ptRangeとして読まれたため</span>データがずれた。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-05-28-03-19-31.png" alt="" class="wp-image-180"/></figure>

<p>だからpad4は不要だった。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-05-28-03-21-43.png" alt="" class="wp-image-181"/></figure>

<h3 class="wp-block-heading">スポットライト</h3>

<p>今回はコーンの表示はなし。残念。</p>

<p>実装はポイントライトのデータに放射方向と角度を追加するだけ。<br>処理手順は以下。</p>

<ul class="wp-block-list"><li>スポットライトの位置を光源として、ポイントライトを計算</li>

<li>そこから頂点へ向かうベクトルを計算</li>

<li>そのベクトルとスポットライトの放射方向ベクトルとの内積から角度を算出</li>

<li>その角度から影響率を算出</li>
</ul>

<h4 class="wp-block-heading">内積の特性</h4>

<p>角度の算出には、内積のこの性質を利用する。</p>

<blockquote class="wp-block-quote"><p> 単位ベクトル同士の内積は、なす角の余弦の値になる</p>
</blockquote>

<p>計算式は以下。</p>

<pre class="wp-block-code"><code>float angle = acos(dot(v1, v2));</code></pre>

<p>内積の公式が a·b = |a||b|cosθ であることを考えると納得。</p>

<h4 class="wp-block-heading">実装</h4>

<pre class="wp-block-code"><code>// step-11 入射光と射出方向の角度を求める
float angle = abs(acos(dot(ligDir, spDirection)));

// step-12 角度による影響率を求める
affect = 1.0f - 1.0f / spAngle * angle;
if(affect &lt; 0.0f) affect = 0.0f;
affect = pow(affect, 3.0f);

// step-13 角度による影響率を反射光に乗算して、影響を弱める
diffSpotLight *= affect;
specSpotLight *= affect;</code></pre>

<p>step11は前述したとおり。absで符号を外す。<br>角度の影響率はポイントライトと同様の考え方。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-03-02-50-01-1024x577.png" alt="" class="wp-image-183"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-03-02-50-24-1024x577.png" alt="" class="wp-image-184"/></figure>

<p>wtf<br>思ったように光らない...</p>

<h4 class="wp-block-heading">修正</h4>

<p>after品を使ったら正常だったので何かが違う。</p>

<p>変数の型が違った。</p>

<pre class="wp-block-code"><code>// step-6 サーフェイスに入射するスポットライトの光の向きを計算する
float ligDir = normalize(psIn.worldPos - spPosition);
　↓
float3 ligDir = normalize(psIn.worldPos - spPosition);</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-04-02-29-01-1024x577.png" alt="" class="wp-image-185"/></figure>

<p>これだとx成分しか残らず、以降float3として扱う時に{x, 0, 0}の状態になっていたっぽい。</p>

<p>これでもコンパイルエラーが出ないことが驚き...<br>C#ほど親切じゃないことに注意した方が良い。</p>

<h4 class="wp-block-heading">コーン表示</h4>

<p>せっかくなのでコーン表示に挑戦...<br>したかったが、3Dモデルを追加せず実装するには深度テクスチャが必須になる。</p>

<p>今のエンジンに深度テクスチャを取得するシステムがなく、かなり時間がかかりそうなので今はスキップ。<br>全部終わってからか、余裕ができたらやってみる。</p>

<h3 class="wp-block-heading">リムライト</h3>

<p>頂点法線と光の入射方向・視線方向を考える必要がある。</p>

<h4 class="wp-block-heading">法線と入射方向</h4>

<p>光の向きと頂点法線が<strong><span class="bold-red">垂直に近い箇所</span></strong>で強く光る。</p>

<p>これは、2つの単位ベクトルの内積となす角の関係が以下のようになる性質を利用して制御できる。</p>

<ul class="wp-block-list"><li>0°: 1.0</li>

<li>90°: 0.0</li>

<li>180°: -1.0</li>
</ul>

<p>拡散反射光の演算とほぼ同様に影響度を制御できる。</p>

<pre class="wp-block-code"><code>拡散反射: 内積 * -1
　↓
リムライト: 1 - max(0, 内積)</code></pre>

<h4 class="wp-block-heading">法線と視線</h4>

<p>入射方向と同様だが、方向が逆向きのため符号反転させる</p>

<pre class="wp-block-code"><code>1 - max(0, 内積 * -1)</code></pre>

<p>ここまでの状況をまとめると下図のようになる。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-06-06-02-40-42.png" alt="" class="wp-image-187"/></figure>

<p>最終的にはこれらを乗算する。</p>

<h4 class="wp-block-heading">実装</h4>

<p>常にカメラを視線中央とするため、法線はカメラからの法線になるよう演算する。</p>

<pre class="wp-block-code"><code>SPSIn VSMain(SVSIn vsIn, uniform bool hasSkin)
{
    ...
    // step-2 カメラ空間の法線を求める
    psin.normalInView = mul(mView, psIn.normal);
    ...
}</code></pre>

<p>カメラを視線中央にしている場合、視線ベクトルは(0, 0, 1)になる。<br>この場合、内積は常にz成分と同じ値になるため内積の計算は不要で、z成分を直接内積として扱える。</p>

<pre class="wp-block-code"><code>// step-4 サーフェイスの法線と視線の方向に依存するリムの強さを求める
float power2 = 1.0f - max(0.0f, psIn.normalInView.x * -1.0f)</code></pre>

<p>結果</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-06-02-58-04-1024x577.png" alt="" class="wp-image-188"/></figure>

<p>今までリムライトとかどうやって端の検出してたんだろうって思ってたけど、<br>法線との内積でやってたのは意外でびっくりした。</p>

<h3 class="wp-block-heading">半球ライト</h3>

<p>シンプルな計算だがディレクショナルライトよりリアルな光源。</p>

<p>PS3、スマホなど<strong><span class="bold-red">GPUの計算速度が心もとない環境で有効的</span></strong>。<br>今でもスマホゲーで採用されることがあるらしい（Unityにはなかったよね？）</p>

<p>考慮するのは地面の色（照り返しの色）と空の色の2種類。<br>計算は頂点法線と地面との内積を求めるだけ。<br>（ここまでくると内積だろうな～って予想がつくくらい内積大活躍）</p>

<h4 class="wp-block-heading">計算</h4>

<p>内積が1の場合は空、-1の場合は地面を向いていることになる。<br>それぞれ0~1に揃えるため、(内積 + 1) / 2 をする。</p>

<h4 class="wp-block-heading">実装</h4>

<p>空の色と地面の色の合成はLerpで良い。</p>

<pre class="wp-block-code"><code>float3 hemiLight = lerp(groundColor, skyColor, t);</code></pre>

<p>左が地面の色、右が空の色の設定値。</p>

<pre class="wp-block-code"><code>light.groundColor = { 0.7f, 0.5f, 0.3f };
light.skyColor = { 0.15f, 0.7f, 0.95f };</code></pre>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/06/image2025-06-06-03-30-38.png" alt="" class="wp-image-189"/></figure>

<p>結果</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/image2025-06-06-03-26-44-1024x577.png" alt="" class="wp-image-190"/></figure>

<p>おそらく他のライトとか元のモデルの色に影響を受けて緑っぽくなってる。</p>

<p>実際には空の模様とか地面の模様とかで変わってくるだろうけれど、<br>最低限の処理であればここまでになる。</p>

<p></p>]]></description>
      <pubDate>Sun, 08 Jun 2025 15:13:50 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-5</guid>
    </item>
    <item>
      <title>技研公開2025へ行ったレポート</title>
      <link>https://irukanonedoko.com/report-giken-2025</link>
      <description><![CDATA[<p>HP：<a href="https://www.nhk.or.jp/strl/open2025/index.html">https://www.nhk.or.jp/strl/open2025/index.html</a></p>

<h2 class="wp-block-heading">概要</h2>

<p>NHK放送技術研究所にて開催された技研公開を偶然にもTwitter(X)で知ったためふらっと行ってきた。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6925_2-768x1024.png" alt="" class="wp-image-123"/></figure>

<p>放送関係技術の他、様々なUXに関する展示やディスプレイなどハードウェア関係の展示などがあり、<br>興味をそそられる内容がそれなりにあり楽しかった。</p>

<h2 class="wp-block-heading">各種展示</h2>

<h3 class="wp-block-heading">(1) 広がるコンテンツ体験</h3>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6928-768x1024.png" alt="" class="wp-image-137"/></figure>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6927_1.mp4"></video></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6927_2.mp4"></video></figure>
</div>
</div>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6927_3.mp4"></video></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6927_4.mp4"></video></figure>
</div>
</div>

<p>XRグラスによるAR表現と、付属カメラによるジェスチャー操作、<br>専用デバイスによるアイテム表示、香り、色・温度制御などの展示。</p>

<p>温度制御によって冷たい・暖かいなども伝えれるのは新しい。</p>

<p>XRグラスはNTTのミルザらしい。<br><a href="https://www.devices.nttqonoq.com/mirza">https://www.devices.nttqonoq.com/mirza</a></p>

<p>専用デバイスからの香りは、デバイスから出ているのではなくデスク下に別デバイスを仕掛け、<br>そこから6種のカートリッジ式で出してるらしい。残念。</p>

<p>デバイス上に穴が開いており、そこから香りが出るのかと思いきや<br>温度制御の仕組みにより冷却が必要なためらしい。</p>

<h3 class="wp-block-heading">(3) イマーシブメディア体験</h3>

<p></p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6930-1024x768.png" alt="" class="wp-image-138"/></figure>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6931-1024x768.png" alt="" class="wp-image-139"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6933-1-768x1024.png" alt="" class="wp-image-141"/></figure>
</div>
</div>

<p>高画質360°撮影の展示。</p>

<p>表示デバイスは...人テク2025のある企業の展示で見たような...</p>

<p>カメラよくわかんないけどすごい！ｷｬｯｷｬ</p>

<h3 class="wp-block-heading">(5) 自由な曲面を可能にするディフォーマブルディスプレイ</h3>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6935-768x1024.png" alt="" class="wp-image-142"/></figure>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6934.mp4"></video></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6936-1024x768.png" alt="" class="wp-image-144"/></figure>
</div>
</div>

<p>今回個人的に一番気に入った展示。<br>フレキシブルディスプレイ。</p>

<p>フレキシブルディスプレイ自体は現行品があるはずだが、それより柔軟に動く。<br>半分に折りたたんでも大丈夫なくらいぐにゃぐにゃ。</p>

<p>伸びは2倍まで問題なく、耐久性は数万回試験を合格、さらにゴム状の膜で覆うため耐水性もありとのこと。<br>中の導線に液体金属を使用しているため、伸びきって一時的に断線しても元に戻せば自然と戻り再導通するらしい。</p>

<p>今は画素が64*32と低いが、LEDの問題ではなく導線を細くすることができないためらしい。<br>将来的にはテレビと同じくらいの画素までもっていきたいらしい。</p>

<p>これ服とか色んなとこに使えるからめちゃええやんと思って見てた。これ好き。</p>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6939.mp4"></video></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6941-768x1024.png" alt="" class="wp-image-146"/></figure>
</div>
</div>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6940.mp4"></video></figure>

<p>応用品。</p>

<p>下に距離検知センサを付けておけば、押した分だけLEDを光らせる箇所を変えれるというデモ。</p>

<p>シンプルだが色んな応用が思いつく良いデモ。普通に欲しい。。。！！</p>

<h3 class="wp-block-heading">(8) Webベース放送メディア③ コンテンツナレッジ</h3>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6950-768x1024.png" alt="" class="wp-image-149"/></figure>

<p>検索する際に入力する "米 高い なぜ" みたいなワードに対し、<br>検索者が真に知りたい情報をAIを用いて抽出する技術。</p>

<p>各記事の右側に色のついた〇があるが、<br>入力されたワードから引っ張られた記事がグレー、<br>それ以外は、AIが抽出した他のキーワードに関する記事。</p>

<p>グレー以外の記事を抽出できる = 検索者が知りたい可能性はあるが、自力ではたどり着けない情報<br>これをサポートする目的のモデル。</p>

<h3 class="wp-block-heading">(12) 縦型動画自動切り出し技術</h3>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6953-768x1024.png" alt="" class="wp-image-150"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6954-768x1024.png" alt="" class="wp-image-151"/></figure>
</div>
</div>

<p>通常横型で編集され放映されるが、近年縦型の需要に伴い、増えた編集工数を削減する目的。</p>

<p>単に縦に切り抜くだけではなく、AIを用いて編集者の癖やその動画の趣旨などをモデルから選定し、<br>見せたいカットやカメラワークを崩すことなく縦型に収めるよう自動編集してくれるらしい。</p>

<p>YouTubeとかでも需要ありそう。</p>

<h3 class="wp-block-heading">(13) イマーシブコンテンツ提示のための映像・音響の連動技術</h3>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6956-1024x768.png" alt="" class="wp-image-152"/></figure>

<figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6955_1-1.mp4"></video></figure>

<p>360°カメラで撮影し、3D空間にボリュメトリックモデルとしてモデルを置き、<br>それとは別で収録した360°音声をシーンに配置。<br>コントローラー（視聴者）の任意の位置に移動し、その位置に応じた映像と音声を返す技術。</p>

<p>撮影範囲は現状1~2人程度で、<br>多人数だと映像の重なりにより影が出てしまい、ボリュメトリックに影響が出るため難しいらしい。<br>モーキャプと合わせてCG補正しても良いが、今はしてないらしい。</p>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-video"><video controls src="/media/uploads/2025/06/IMG_6957.mp4"></video></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6958-1024x768.png" alt="" class="wp-image-157"/></figure>
</div>
</div>

<p>収録スタジオ。</p>

<p>カメラ12台、単一指向性マイク38台くらいらしい。</p>

<p>アクターにはピンマイクも持たせ、細かい音声はそっちでひろい、<br>音の広がりを周囲のマイクで取るらしい。</p>

<p>アクターをポイントライトと考えると分かりやすいかも。<br>各マイクで取れる音はポイントライトからの光ベクトルと考えれば補正するイメージも湧く。</p>

<p>今は技術的に映像と音声を別撮りせざるを得ないらしいが、将来的には同時収録可能にしたいらしい。</p>

<p>ちなみにこのデモの他に演奏者が並ぶデモも聴いたが、<br>なんで音量バランスの調整が大切な演奏において自由に動いて一つの楽器を集中的に聴くだの言われないといけないんだって気持ちでいっぱいで何の用途で開発してるのかまるで分からなかった。<br>多分デモが悪い。</p>

<p>一応用途を聴いたが、将来的にはユーザーが映像内を自由な位置で視聴できる環境にしたいらしく、<br>それに備えて開発しているらしい。<br>先のXRグラスのジェスチャー操作とかも含めればまぁ分からなくはないが、<br>例えばドラマの撮影をこれでしたとして、意図的なカットとか映像効果が多いはずのドラマに対し視聴者が自由に動いて視聴するってマッチしてなくないかと、テレビで放送する映像においてこの技術により得られる体験がある専用の番組以外はよほどマッチしないんじゃないかという気持ちしかなかった。</p>

<p>否定してはいないが、デモをするなら想定される用途で撮影した映像でやってほしかったところ。<br>残念。</p>

<h3 class="wp-block-heading">N5 黎明期の貴重な機器に見る放送技術の原点</h3>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6962-1024x768.png" alt="" class="wp-image-158"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6965-1-1024x768.png" alt="" class="wp-image-162"/></figure>
</div>
</div>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6963-768x1024.png" alt="" class="wp-image-159"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6964-768x1024.png" alt="" class="wp-image-160"/></figure>
</div>
</div>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6966-1024x768.png" alt="" class="wp-image-163"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6967-1024x768.png" alt="" class="wp-image-164"/></figure>
</div>
</div>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6968-768x1024.png" alt="" class="wp-image-165"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6969-768x1024.png" alt="" class="wp-image-166"/></figure>
</div>
</div>

<p>なかなかお目にかかれない1950年代の映像機器。<br>歴史を感じた。</p>

<h2 class="wp-block-heading">その後</h2>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6972_2-1024x591.png" alt="" class="wp-image-167"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6975-1024x768.png" alt="" class="wp-image-168"/></figure>
</div>
</div>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6973-1024x768.png" alt="" class="wp-image-169"/></figure>
</div>

<div class="wp-block-column"><figure class="wp-block-image size-large"><img src="/media/uploads/2025/06/IMG_6974-1024x768.png" alt="" class="wp-image-170"/></figure>
</div>
</div>

<p>もんじゃFoooooo!!</p>

<p>実はDUOだったので同伴者と一緒にもんじゃへ。<br>明太バターもんじゃ、ネギ塩豚もんじゃ、丸ごとイカ焼き肝付、ホタテじゃがバタ。<br>ちゃんとしたもんじゃ初めてだった、とてもおいしかった。<br>めっちゃ気さくな店員さんがすごく話しかけてきたけどわいわいできて楽しかった。</p>

<p>店員さん曰くイカ墨もんじゃが美味しいらしいのでまた行きたい。</p>]]></description>
      <pubDate>Sun, 01 Jun 2025 16:28:38 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/report-giken-2025</guid>
    </item>
    <item>
      <title>【Blender】GeometryNodeで平面を虫食い・まばらにしたいお話</title>
      <link>https://irukanonedoko.com/insectbites-and-sparseness-ofaplane-in-geometrynode</link>
      <description><![CDATA[<h2 class="wp-block-heading">前書き</h2>

<p>ノイズテクスチャ混ぜていい感じにまばらな見た目が作れたけど、<br>やっぱりメッシュ自体がまばらになっててほしいなぁ。</p>

<p>...これGeometryNodeで楽に作れんか？？</p>

<h2 class="wp-block-heading">制作</h2>

<h3 class="wp-block-heading">虫食いを作る</h3>

<p>とりあえず平面を作り、GeometryNodesタブから新規にGeometryNodeを作成する。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-23-1024x576.png" alt="" class="wp-image-109"/></figure>

<p>言うてほとんど知らないけれど、<br>Unityのシェーダーグラフとか、BlenderのシェーダーやCompositとかと一緒で<br>InputとOutputが成立してれば大丈夫だと思う。</p>

<p>ということでChatGPTに頼りつつ作っていく。</p>

<p>フローはこんな感じ</p>

<ul class="wp-block-list"><li>ランダムな配置点を生成する</li>

<li>そこにスフィアを置く</li>

<li>平面と重なっている箇所を消す</li>
</ul>

<p>GeometryNodeで表現するとこんな感じ。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-24.png" alt="" class="wp-image-111"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-25-1024x672.png" alt="" class="wp-image-112"/></figure>

<p>NoiseTextureのScale、Detail、UVSphereのRadiusを調整して虫食いのサイズを変えていく。</p>

<p>ちなみにRealizeInstanceのノードを直接Outputに入れるとスフィアが表示される。</p>

<div class="wp-block-columns"><div class="wp-block-column"><figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-27.png" alt="" class="wp-image-114"/></figure>
</div>

<div class="wp-block-column is-vertically-aligned-center"><figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-26.png" alt="" class="wp-image-113"/></figure>
</div>
</div>

<h3 class="wp-block-heading">まばらにする</h3>

<p>上記のRealizeInstanceの先に重複している箇所だけを表示するようにノードを組んでいく。</p>

<ul class="wp-block-list"><li>ランダムな配置点を生成する</li>

<li>そこにスフィアを置く</li>

<li>置いたスフィアをまとめて、重複を消す（New！）</li>

<li><s>平面と重なっている箇所を消す</s><br>平面と重なっている箇所以外を消す</li>
</ul>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-28.png" alt="" class="wp-image-115"/></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-29-1024x498.png" alt="" class="wp-image-116"/></figure>

<p>以下のことに注意する。<br>・RealizeInstanceのRealizeAllにチェックを入れる<br>・最後マージするMeshBooleanをIntersectにする</p>

<p>重複箇所を消しておかないと、最後Booleanが上手く動いてくれない。</p>

<p>位置が気に入らない場合は冒頭のDistributePointsOnFacesのSeedをいじっていい感じの場所を探すと良い。</p>

<h2 class="wp-block-heading">後書き</h2>

<p>何となく頂点シェーダー見たいな感じで触れるのがとても良い。<br>複雑な編集をできるうえに修正が容易なのはとても良い。</p>

<p>スフィアの各頂点にノイズを入れて歪ませたかったけど、<br>思ったように動かなかったからまた次の機会に。</p>

<p>GeometryNode、楽しい。</p>]]></description>
      <pubDate>Tue, 27 May 2025 16:38:36 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/insectbites-and-sparseness-ofaplane-in-geometrynode</guid>
    </item>
    <item>
      <title>【HLSLシェーダーの魔導書】ライティング（Chapter4）のメモ</title>
      <link>https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-4</link>
      <description><![CDATA[<h2 class="wp-block-heading">Chapter4 ライティング基礎</h2>

<h3 class="wp-block-heading">ライトの種類</h3>

<h4 class="wp-block-heading">ディレクションライト</h4>

<p>現実世界の太陽に近い存在。<br>位置、影響力の減衰が存在しない。<br>シンプルで高速。最も基本的なライト。</p>

<p>以下の要素で構成される。</p>

<ul class="wp-block-list"><li>方向：3次元ベクトル</li>

<li>カラー：RGB</li>
</ul>

<h4 class="wp-block-heading">ポイントライト</h4>

<p>位置と距離を考慮するライト。<br>複雑で処理も重い。</p>

<p>PS3, Xbox360辺りの時代だと1シーンに大量におけなかった。<br>　→ TBR系アルゴリズムによって大量配置が可能になった。</p>

<p>※ TBR系アルゴリズムはChapter16で紹介のため、そういうアルゴリズムによって変化があったことを覚えておく。</p>

<p>以下の要素で構成される。</p>

<ul class="wp-block-list"><li>方向：3次元ベクトル</li>

<li>カラー：RGB</li>

<li>影響範囲：メートル</li>
</ul>

<p>影響範囲は光が届く距離の調整のための減衰率に関与する。</p>

<h4 class="wp-block-heading">スポットライト</h4>

<p>シンプルなものであればポイントライトを元に実装できる</p>

<p>以下の要素で構成される。</p>

<ul class="wp-block-list"><li>方向：3次元ベクトル</li>

<li>カラー：RGB</li>

<li>放射方向：3次元ベクトル</li>

<li>放射角度：rad or deg（多分rad）</li>

<li>影響範囲：メートル</li>
</ul>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image2025-05-16-02-16-01.png" alt="" class="wp-image-91"/><figcaption class="wp-element-caption">スポットライトの各要素</figcaption></figure>

<p>一時期スポットライトのコーンを表示するシェーダーを書こうとした時期があって結局書けなかったが、構成要素を知ることで何となく書けそうな気がしてくる。</p>

<h3 class="wp-block-heading"><strong>反射モデル</strong></h3>

<p>ライトによる反射モデルはいくつかあり、今回は<strong><span class="bold-red">Phongの反射モデル</span></strong>を使用する。</p>

<p>反射モデルとは、</p>

<p>物体の表面がどのように光を反射するかを<strong><span class="bold-red">数値的に表現</span></strong>し、<br>コンピュータグラフィックスなどで<strong><span class="bold-red">視覚的な表現を可能にするためのモデル</span></strong>のこと。</p>

<p>光の入射方向と反射方向の間の関係を表す関数 (<strong>BRDF</strong> (Bidirectional Reflectance Distribution Function)) を用いて光の反射の特性を表現する。</p>

<h4 class="wp-block-heading">Phongの反射モデルとは</h4>

<p><a href="https://ja.wikipedia.org/wiki/Phong%E3%81%AE%E5%8F%8D%E5%B0%84%E3%83%A2%E3%83%87%E3%83%AB">https://ja.wikipedia.org/wiki/Phong%E3%81%AE%E5%8F%8D%E5%B0%84%E3%83%A2%E3%83%87%E3%83%AB</a></p>

<p>ユタ大学の理学博士 ブイ・トゥオン・フォン により開発され、1973年に "Illumination for Computer Generated Pictures" という学位論文として発表された反射モデル。</p>

<p>同論文内で法線ベクトル補間手法も提案されており、<strong>Phongシェーディング</strong>として知られている。<br>一番有名な反射モデルって覚えておけばよさそう。</p>

<h4 class="wp-block-heading">その他の反射モデル</h4>

<p>"Phongの" って言うことは他にもあるのか？<br>ということで調べてみた。</p>

<figure class="wp-block-table is-style-vk-table-scrollable" data-scroll-breakpoint="table-scrollable-pc"><table class="has-fixed-layout"><thead><tr><th>モデル名</th><th>概要</th><th>特徴</th><th>用途</th></tr></thead><tbody><tr><td>Blinn-Phongモデル</td><td>Phongモデルの改良版。<br>Phongモデルと同様に非物理ベース。</td><td>スペキュラの計算にハーフベクトルを使う点が違う。</td><td>軽量表現</td></tr><tr><td>Lambert反射モデル</td><td>拡散反射の最も基本的なモデル。<br>Phongモデルの拡散反射と同一のモデル。</td><td>光の角度により強度が変わるが、観測方向に依存しない。</td><td>非光沢表面（マット）</td></tr><tr><td>Cook-Torranceモデル</td><td>物理ベースレンダリング(PBR)で使用される反射モデル。</td><td>マイクロファセット理論に基づく。</td><td>物理表現</td></tr><tr><td>Oren-Nayarモデル</td><td>Lambertモデルの拡張。</td><td>粗い拡散面を表現できる。</td><td>ザラザラした物のリアルな拡散反射</td></tr><tr><td>Wardモデル</td><td>表面の異方性を考慮したモデル。</td><td>-</td><td>金属など</td></tr><tr><td>DisneyBRDF<br> (Disney Principled BSDF)</td><td>Pixarが開発した反射モデル。</td><td>多くのマテリアルを統一的に扱うことができ、Blenderで採用されている。</td><td>PBR</td></tr><tr><td>Torrance-Sparrowモデル</td><td>古典的なマイクロファセット理論を使用した反射モデル。</td><td>Cook-Torranceと似ている。</td><td>PBR?</td></tr><tr><td>Ashikhmin-Shirleyモデル</td><td>異方性反射をリアルに表現したモデル。</td><td>Wardより精度が高い。</td><td>金属など？</td></tr></tbody></table></figure>

<p>...多っ！！</p>

<p>用途別にまとめると以下。</p>

<ul class="wp-block-list"><li>ゲームで軽量な表現: Phong、Blinn-Phong、Lambert</li>

<li>映画・VFXなど高品質表現: Cook-Torrance、Disney BRDF</li>

<li>マットな材質: Oren–Nayar</li>

<li>金属、光沢面: Cook-Torrance、Ward</li>

<li>異方性素材(髪、布など): Ward、Ashikhmin–Shirley</li>
</ul>

<p>こう見るとPhongが一番基本的な反射モデルに見える。<br>Phong自体も1973年とかなり前からあったのを考えると反射一つ取っても奥が深いことがよく分かる...</p>

<h3 class="wp-block-heading">今回使用する反射モデル</h3>

<p>Phong反射モデルは <strong>拡散反射光、鏡面反射光、環境光</strong> のそれぞれを合成したものになる。<br>今回は以下のように計算していく。</p>

<ul class="wp-block-list"><li>拡散反射光 → Lambert拡散反射モデル</li>

<li>鏡面反射光 → Phong鏡面反射モデル</li>

<li>環境光 → 近似モデル</li>
</ul>

<p>当然、各光要素を求める方法全てがPhongモデルに含まれているが、<br>今回は各要素ごとに別のモデルを使用する。</p>

<h3 class="wp-block-heading">Lambert拡散反射光</h3>

<p><strong><span class="bold-red">光が当たっていれば明るく、当たっていなければ暗く</span></strong>するモデル。</p>

<p>計算は <span class="red">法線とライト方向との内積</span> で行う。<br>※ 法線：面の向きを示す単位ベクトル</p>

<details class="wp-block-details"><summary>内積とは</summary><p><a href="https://qiita.com/kenmatsu4/items/a144047c1b49aa8c7eb0">https://qiita.com/kenmatsu4/items/a144047c1b49aa8c7eb0</a></p>

<pre class="wp-block-code"><code>a･b = (ax * bx) + (ay * by) ...
&nbsp; &nbsp; = abcosθ</code></pre>

<p>答えはスカラー（方向を持たない大きさのみのベクトル）になる。</p>

<p>単位ベクトル同士の場合、以下の性質がある。</p>

<ul class="wp-block-list"><li>同じ向きの内積は1</li>

<li>向きが異なるほど数値が小さくなり、逆向きになると-1</li>
</ul>
</details>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image2025-05-18-03-39-16.png" alt="" class="wp-image-96"/></figure>

<p>上図の様な関係の際、それぞれの内積は以下のようになる。</p>

<ul class="wp-block-list"><li>a: 0</li>

<li>b: -1</li>

<li>c: 0</li>

<li>d: 1</li>

<li>e: -0.7</li>
</ul>

<p>この結果を<span class="red">全て-1</span>すると、光（-1, 0, 0）により<span class="red">当たっている箇所が1</span>に、<span class="red">当たっていない箇所が0以下</span>になることが分かる。</p>

<ul class="wp-block-list"><li>a: 0 &nbsp;   → 0 &nbsp; &nbsp; → 暗い</li>

<li>b: -1  &nbsp; → 1 &nbsp;  &nbsp;→ 明るい</li>

<li>c: 0      → 0 &nbsp;  &nbsp;→ 暗い</li>

<li>d: 1 &nbsp;    → -1 &nbsp;  → 暗い</li>

<li>e: -0.7  → 0.7  → やや明るい</li>
</ul>

<p>つまり、Lambert反射モデルにおける反射光の求め方は</p>

<p><span class="bold-red">　<strong>法線と光の内積が1な程明るく、0な程暗くする</strong></span></p>

<p>ということ。（単位ベクトルという前提）</p>

<h4 class="wp-block-heading">cpp側</h4>

<pre class="wp-block-code"><code>modelInitData.m_expandConstantBuffer = &amp;directionLig;
modelInitData.m_expandConstantBufferSize = sizeof(DirectionalLight);</code></pre>

<p>ディレクショナルライトもGPUで参照するため、定数バッファーを使用して渡す。<br>CPU側ではモデルデータ、シェーダーパス、ライトデータ（方向と強さ）を渡すだけで、<br>実際の<span class="red">陰影計算はGPU側</span>で行う。</p>

<h4 class="wp-block-heading">Vector3とfloat3の扱いについて</h4>

<p>今回のディレクショナルライトは方向と色のデータをVector3で送っている。<br>その際に定義した構造体は以下。</p>

<pre class="wp-block-code"><code>struct DirectionalLight
{
    Vector3 ligDirection;
    float pad;
    Vector3 ligColor;
};</code></pre>

<p>HLSL側で定義した定数バッファーは以下。</p>

<pre class="wp-block-code"><code>cbuffer DirectionLightCb : register(b1)
{
    float3 ligDirection;
    float3 ligColor;
};</code></pre>

<p>この、cpp側で定義していたpadは<strong><span class="bold-red">パディング</span></strong>という、意図した変数である。</p>

<p>HLSLでは、定数バッファーのデータは<span class="red">16の倍数のアドレス</span>に配置される。<br>対して、cppでは<span class="red">4の倍数のアドレス</span>に配置されていく。</p>

<p>すると下図左側の表のように、2つ目の変数からcppとhlslでデータの不整合が起きる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-19-02-24-58-1024x306.png" alt="" class="wp-image-99"/></figure>

<p>ここで、cpp側に2つめのVector3変数の前にfloat変数を挟むと4バイト分ずれるため<br>hlslとの不整合が起きなくなる。（上図右側の表）</p>

<p>UnityなどでHLSLを触る場合は意識しなくていいはずなので知識程度かな。<br>もし自分でcpp側を組むことがあれば覚えておくと過去の自分にとても感謝しそうな内容。</p>

<h4 class="wp-block-heading">頂点法線の補正</h4>

<pre class="wp-block-code"><code>SPSIn VSMain(SVSIn vsIn, uniform bool hasSkin)
{
    SPSIn psIn;

    // step-6 頂点法線をピクセルシェーダーに渡す
    psIn.normal = mul(mWorld, vsIn.normal);
}</code></pre>

<p>モデルの回転に合うようにするには、<span class="red">頂点毎の法線にワールド行列を掛ける</span>ことが必要。<br>頂点座標の配置空間を直す際もワールド行列を掛けたが、今回は回転を直すために掛けている。<br>　→ なんでこれで回転が直る？</p>

<p><span class="red">法線は座標を無視し、回転と拡大だけで十分</span>であるため、<br>ワールド行列を掛けることで位置、回転、拡大をまとめてワールド空間に直している。</p>

<p>なお、拡大については(1.0, 1.0, 1.0)である前提のため無視できる。<br>この通りでない場合（非等方スケーリング）は別途計算が必要。</p>

<h4 class="wp-block-heading">反射光の演算</h4>

<pre class="wp-block-code"><code>// step-7 ピクセルの法線とライトの方向の内積を計算する
float t = dot(psIn.normal, ligDirection);
t *= -1.0f; // 符号反転</code></pre>

<p>dotで内積を求めることができる。<br>反射光から色を算出し、テクスチャカラーの乗算することで反射を組み込むことができる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-19-02-52-18-1024x577.png" alt="" class="wp-image-100"/></figure>

<h3 class="wp-block-heading">鏡面反射光 (Phongモデル)</h3>

<p>金属のような反射を表現するためのモデル。<br>「<span class="red">反射した光がどれだけ目に飛び込んでくるか</span>」を計算する。<br>　→ 屈折率を考慮した反射光って理解でいいと思う。</p>

<p>鏡面反射の強さに必要な処理</p>

<ul class="wp-block-list"><li>ライトが面に反射したベクトルを算出</li>

<li>面から視点に向かって伸びるベクトルを算出</li>

<li>上記2ベクトルの内積を算出 (これが鏡面反射の強さ)</li>

<li>上記の値を絞り、最終的な反射値を算出</li>
</ul>

<h4 class="wp-block-heading">反射ベクトルの演算</h4>

<p>光源ベクトルL、法線Nとした時の反射ベクトルRは以下で求まる。</p>

<pre class="wp-block-code"><code>R = L + 2(-N･L)N</code></pre>

<p>これはHLSLの<span class="red">reflect関数</span>の内部処理であり、通常はこのメソッドを使用すれば良い。</p>

<h4 class="wp-block-heading">視点へのベクトルの演算</h4>

<p>視点座標から光が入射した座標を引いた値。<br>入射した座標から視点座標へ移動すると考えると自然な式。<br>求めた値は正規化するのがベター。</p>

<h4 class="wp-block-heading">反射ベクトルと視点へのベクトルとの内積</h4>

<p>ここまで下図のような状態</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-20-02-18-35-1024x467.png" alt="" class="wp-image-102"/></figure>

<p>当然、光は視点に届いて初めて明るさとして認識されるため、<br>内積、つまりどの程度反射ベクトルが視点ベクトルと重なるかを求めれば<br>その値をもって反射値を算出できることは理解できる。</p>

<p>そういえば反射ベクトルはreflectで勝手に正規化されるって理解でいいのかな？<br>それとも法線が単位ベクトルって前提だから？<br>　→ 法線、光源ベクトル共に正規化されてる前提っぽい。</p>

<h4 class="wp-block-heading">反射値の絞り</h4>

<p>反射値を<span class="red">累乗</span>して絞りを付けて行く。</p>

<p>累乗することで1未満の値を減少させることができ、<br>きれいな反射(1の値)以外の強さを調整できる。</p>

<h4 class="wp-block-heading">定数バッファーの別の書き方</h4>

<p>拡散反射の時もしれっと出ていたが、<br>定数バッファーは以下みたいにも書けるらしい。</p>

<pre class="wp-block-code"><code>// 今まで
flaot3 pos : register(b1)

// ☆ 別の書き方
cbuffer DirectionLightCb : register(b1)
{
    float3 ligDirection;
    float3 ligColor;
    float3 eyePos;
};</code></pre>

<h4 class="wp-block-heading">絞りの実装について</h4>

<p>絞りの指数は5<br>大きいほど減衰が増す。</p>

<pre class="wp-block-code"><code>// step-7 鏡面反射の強さを絞る
t = pow(t, 5.0f);</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-26-01-03-54-1024x577.png" alt="" class="wp-image-103"/></figure>

<p>実際は調整できるように変数化した方が良い気がする。<br>（今回はなんとなく5になってると思う。）</p>

<p>試しに2にしてみる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-26-01-04-57-1024x577.png" alt="" class="wp-image-104"/></figure>

<p>想定通り僅かに明るい部分が増えた。</p>

<h3 class="wp-block-heading">環境光</h3>

<p>地面・壁などの跳ね返りの光(2次反射)などの間接光を加える。<br>ただし一般に2次反射の計算は対象が多く膨大になりパフォーマンスに大きく影響が出てくる。<br>　→ <span class="red">物体は一律で同じ間接光を受けている</span> として計算する。</p>

<p>この近似計算モデルを<span class="bold-red">環境光(アンビエントライト)</span>という。</p>

<p>rgb全てに一定の値を加算して底上げする。</p>

<h4 class="wp-block-heading"><strong>実装</strong></h4>

<p>拡散反射と鏡面反射を足した光に対し、一律な値を加算するだけ。</p>

<pre class="wp-block-code"><code>// 拡散反射光と鏡面反射光を足し算して、最終的な光を求める
float3 lig = diffuseLig + specularLig;

// step-1 ライトの効果を一律で底上げする
lig.x += 0.3f;
lig.y += 0.3f;
lig.z += 0.3f;</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-26-01-27-00-1024x577.png" alt="" class="wp-image-105"/></figure>

<p>一律で加算するアンビエント値は定数バッファーでcpp側から渡してもOK<br>エンジン固定ならこっちの方が編集しやすいかも？</p>

<pre class="wp-block-code"><code>float3 ambientLight : register(b1)

// step-9 拡散反射光と鏡面反射光を足し算して、最終的な光を求める
float3 lig = diffuseLig + specularLig + ambientLight;</code></pre>

<p></p>]]></description>
      <pubDate>Mon, 26 May 2025 18:01:04 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-4</guid>
    </item>
    <item>
      <title>【Unity】シェイプキーを動かすと意図しないシャドウになる？！</title>
      <link>https://irukanonedoko.com/unity-happen-shadow-bug-when-edit-shape-key</link>
      <description><![CDATA[<p>デザイナーさんが組んでくれたモデルがプッシュされたし、確認するか～</p>

<p>コーヒー飲みながらプルして開いて確認していた昼過ぎ。<br>確認のためシェイプキーを動かしてみた。<br>すると。。。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-12.png" alt="" class="wp-image-68"/></figure>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-13.png" alt="" class="wp-image-69"/></figure>

<p>な、なんだこれは～～～！！！</p>

<h2 class="wp-block-heading">事象</h2>

<p>分かっていることはシェイプキーを動かすと顔の一部に意図しないシャドウがかかる。</p>

<p>目と口周りが怖いことになっとる...</p>

<h2 class="wp-block-heading">結論</h2>

<p>結論を先に。</p>

<p>UnityのFBXインポート設定で、<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">ブレンドシェイプの法線をインポートに変更</mark>する。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-22.png" alt="" class="wp-image-78"/></figure>

<h2 class="wp-block-heading">Blenderを見てみる</h2>

<p>とりあえず元のFBXをBlenderで開いてみる。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-14.png" alt="" class="wp-image-70"/></figure>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-15.png" alt="" class="wp-image-71"/></figure>

<p>大丈夫そうやな。。。</p>

<p>目と口周りがおかしくなるけど、どんなメッシュになっとる？</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-16-807x1024.png" alt="" class="wp-image-72"/></figure>

<p>なるほどシャープがかかっているみたい。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-17-717x1024.png" alt="" class="wp-image-73"/></figure>

<p>ついでに法線も。<br>これも大丈夫そう。</p>

<p>一旦シャープ外してみる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-18-751x1024.png" alt="" class="wp-image-74"/></figure>

<p>お？なんとなく事象と同じような見た目になったぞ？？</p>

<h3 class="wp-block-heading">シャープ処理について</h3>

<p class="has-text-align-left">普段モデリングする時クリースばっかりだからシャープって何してるんだろう。</p>

<p>GPT質問</p>

<blockquote class="wp-block-quote"><p>「シャープをマーク」は、選択したエッジに「シャープ」属性を付与し、<strong>そのエッジを境に法線の補間を分断</strong>します。これにより、エッジの両側の面で<strong>異なる法線が設定される</strong>ため、視覚的に「鋭い角」が生まれます。</p>
</blockquote>

<p>根拠として若干薄いが、法線がシャープによって変わったことに起因するみたい。</p>

<p>ということはFBXに正常に法線情報が渡っていないか、Unityでインポートする際に正常に処理できてないかの2択になる。</p>

<h2 class="wp-block-heading">Unityインポート</h2>

<p>一度FBXのインポート設定を見てみる。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-19-593x1024.png" alt="" class="wp-image-75"/></figure>

<p>この項目・・・</p>

<p>モデル自体の法線とシェイプごとの法線は別処理扱いになってる？？</p>

<p>調べてみる。</p>

<p><a href="https://docs.unity3d.com/ja/2022.3/Manual/FBXImporter-Model.html#blendshapenormals">https://docs.unity3d.com/ja/2022.3/Manual/FBXImporter-Model.html#blendshapenormals</a></p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-20-1024x205.png" alt="" class="wp-image-76"/></figure>

<p>やはり別々で処理されているみたい。</p>

<p>今回はモデル側で作られた法線を使いたいのでImportにしてみる。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-21.png" alt="" class="wp-image-77"/></figure>

<p>直った！</p>

<h2 class="wp-block-heading">まとめ</h2>

<p>冒頭の結論でも書いたが、ブレンドシェイプの法線をインポートに変えることで直った。</p>

<p>デフォルトでCalculateなので知らないと引っかかるトラップ感がすごい。</p>

<p>3Dモデルを複数ソフトで使う時はシャープとか法線に影響する設定はあまりやらない方がいいのかも？<br>私がクリース派だからな気もするけれど。</p>

<p>（クリース使うとサブディビジョンが必須だからメッシュ数増えるのが嫌でシャープ選ぶとかもあるから一概には言えないね。）</p>

<p></p>

<p>ちなみに今回のモデルは再現用にBlenderで作ったものだが、事象発生時はMayaで作られていた。</p>

<p>あまりないと思うけど制作ソフトによっても変わるかも？</p>

<p></p>

<h2 class="wp-block-heading">追記</h2>

<p>もしインポートにしても変な時はNoneにしてみるのもあり。</p>]]></description>
      <pubDate>Wed, 21 May 2025 17:38:18 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/unity-happen-shadow-bug-when-edit-shape-key</guid>
    </item>
    <item>
      <title>【HLSLシェーダーの魔導書】入門（Chapter1~3）のメモ</title>
      <link>https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-1-to-3</link>
      <description><![CDATA[<h2 class="wp-block-heading">Chapter1 レンダリングパイプライン入門</h2>

<h3 class="wp-block-heading">レンダリングパイプライン</h3>

<p>描画する手順のこと。</p>

<p>必要最低限の手順</p>

<ul class="wp-block-list"><li>入力アセンブラー<br>　頂点バッファー、インデックスバッファーなどをグラフィックスメモリからロード</li>

<li>頂点シェーダー<br>　頂点データをスクリーン空間に変換</li>

<li>ラスタライザー<br>　塗りつぶすピクセルを決定</li>

<li>ピクセルシェーダー<br>　ピクセルカラーを決定</li>
</ul>

<p>この後にドローコールをすれば描画できる。</p>

<p>頂点シェーダー、ピクセルシェーダーは自由なプログラミングが可能。<br>ラスタライザーはカリング設定の選択程度。</p>

<h2 class="wp-block-heading">Chapter2 はじめてのシェーダー</h2>

<h3 class="wp-block-heading">VisualStudio2022でビルドする際のエラー解消</h3>

<p>VisualStudio2022でビルドする場合、altbase.hが見つからない。<br>（本書はVisualStudio2019が前提）</p>

<p>ATLをインストールすれば解決する。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-13-02-03-33-1024x576.png" alt="" class="wp-image-53"/><figcaption class="wp-element-caption">ALTと誤字しているが、ATLが入ればOK...</figcaption></figure>

<h3 class="wp-block-heading">頂点シェーダー</h3>

<pre class="wp-block-code"><code>// HLSL

VSOutput VSMain(VSInput In)
{
&nbsp; &nbsp; VSOutput vsOut = (VSOutput)0;

&nbsp; &nbsp; // step-1 入力された頂点座標を出力データに代入する
&nbsp; &nbsp; vsOut.pos = In.pos;

&nbsp; &nbsp; // step-2 入力された頂点座標を2倍に拡大する
&nbsp; &nbsp; vsOut.pos.x *= 2.0f;
&nbsp; &nbsp; vsOut.pos.y *= 2.0f;

&nbsp; &nbsp; // step-3 入力されたX座標を1.5倍、Y座標を0.5倍にして出力
&nbsp; &nbsp; vsOut.pos.x *= 1.5f;
&nbsp; &nbsp; vsOut.pos.y *= 0.5f;

&nbsp; &nbsp; return vsOut;
}</code></pre>

<p>代入した出力用データは演算していじれる。</p>

<h3 class="wp-block-heading">セマンティクス</h3>

<pre class="wp-block-code"><code>// HLSL

// 頂点シェーダーへの入力頂点構造体
struct VSInput
{
&nbsp; &nbsp; float4 pos : POSITION;
};

// 頂点シェーダーの出力
struct VSOutput
{
&nbsp; &nbsp; float4 pos : SV_POSITION;
};</code></pre>

<p>: の後は<mark style="background-color:#FFEE58" class="has-inline-color">セマンティクス</mark><br>頂点が持つデータの中で、どのデータを扱う変数なのかを決める &nbsp;</p>

<p>頂点データは座標、色、法線、UVなどを持つ</p>

<p>これを引数で渡されたデータから<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">どう取るかを指示する</mark>のがセマンティクス</p>

<p>以下代表例（他にもregisterとかある）</p>

<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td>名前</td><td>説明</td></tr><tr><td>POSITION</td><td>座標</td></tr><tr><td>COLOR</td><td>色（頂点カラー）</td></tr><tr><td>NORMAL</td><td>法線ベクトル</td></tr><tr><td>TANGENT</td><td>接ベクトル（法線マップを利用した法線の算出に使用される）</td></tr><tr><td>TEXCOORD</td><td>UV座標</td></tr><tr><td>BLENDWEIGHT</td><td>ボーンへのウェイト（ウェイトは頂点毎に決まるからこのデータがある）</td></tr><tr><td>BLENDINDICES</td><td>ボーン番号</td></tr></tbody></table></figure>

<p>やっててよかったBlender。</p>

<p>出力の時はSV_が付く。多分DirectXの決まり事？<br>　→ 今の所POSITONのみSV_POSITIONでなければならず、他はそのままでよさそう。</p>

<pre class="wp-block-code"><code>// cpp

// パイプラインステートの初期化
void InitPipelineState(PipelineState&amp; pipelineState, RootSignature&amp; rs, Shader&amp; vs, Shader&amp; ps)
{
&nbsp; &nbsp; // 頂点レイアウトを定義する
&nbsp; &nbsp; D3D12_INPUT_ELEMENT_DESC inputElementDescs&#91;] =
&nbsp; &nbsp; {
&nbsp; &nbsp; &nbsp; &nbsp; { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA, 0 },
&nbsp; &nbsp; };</code></pre>

<p>ここでやってるからセマンティクスを定義してる？っぽいからもしかしたらパイプライン毎かも。分からない。</p>

<p>定義してるのか、HLSLが定義しているセマンティクスを、セマンティクスとして扱うための処理なのか、多分後者かな？</p>

<h3 class="wp-block-heading">シェーダーメソッドのエントリー</h3>

<pre class="wp-block-code"><code>// HLSL

// 頂点シェーダー
VSOutput VSMain(VSInput In)

// ピクセルシェーダー
float4 PSMain(VSOutput vsOut) : SV_Target0</code></pre>

<p>こいつらのコールはどこから？</p>

<pre class="wp-block-code"><code>// cpp

// 2. シェーダーをロード
Shader vs, ps;
vs.LoadVS("Assets/shader/sample.fx", "VSMain");
ps.LoadPS("Assets/shader/sample.fx", "PSMain");</code></pre>

<p>ここ！！！</p>

<p>パイプライン（エンジン？アプリ？）毎に設定されるシェーダーロードの第一引数でファイル、第二引数でメソッド名が指定される。<br>　→ Shaderクラスが今回用のエンジンのクラスのためエンジン毎って理解でいいはず。</p>

<p>逆にいうとパイプラインが隠蔽されている場合はエントリーポイントとなるメソッドは<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">必ず一定の名称になる</mark>ということ。<br>　→ Unityとかがそう。</p>

<p>引数、戻り値で使ってる構造体(VSInputとか)はユーザー設定だから名称は自由かも？まだ分からない。</p>

<p>コール順はパイプラインが決めてる（DirectXかも？）から、頂点→ピクセルの順で呼ばれるのはそういうものと思った方がよさそう</p>

<p>まぁそういうステージ順になるよねって理解でいいと思う。</p>

<h3 class="wp-block-heading">コール回数</h3>

<p>頂点シェーダー、ピクセルシェーダー共に一回のドローコールで頂点数と同じ回数だけコールされる。<br>　↑間違い。<br>　　頂点シェーダーは頂点数、ピクセルシェーダーはピクセル数に応じる。</p>

<p>3頂点ならそれぞれ3回ずつという理解でいいらしい。<br>　↑間違い。<br>　　3頂点なら頂点シェーダーは3回、描画が640*480ならピクセルシェーダーは307200回呼ばれる。</p>

<p>頂点シェーダーの引数には、おそらく頂点バッファー配列の要素を一つずつ入れてるんだと思う。</p>

<p>だから頂点シェーダーは↓みたいに単に入力座標を返すだけでも異なった座標を出力できるんだと思う。</p>

<pre class="wp-block-code"><code>// hlsl

// 頂点シェーダー
// 1. 引数は変換前の頂点情報
// 2. 戻り値は変換後の頂点情報
VSOutput VSMain(VSInput In)
{
    VSOutput vsOut = (VSOutput)0;
    vsOut.pos = In.pos;
    vsOut.color = In.color; // カラーの情報を出力する
    return vsOut;
}</code></pre>

<h3 class="wp-block-heading">ピクセルシェーダー</h3>

<p>ピクセルシェーダーが色を決定する場所。</p>

<p>典型例は陰影。</p>

<p>シェーダーと言われてぱっと思いつくのはここ。</p>

<h3 class="wp-block-heading">頂点カラーとピクセルカラー</h3>

<p>頂点カラーとピクセルカラーは別物。</p>

<p>特に、頂点シェーダーで設定した色はあくまで頂点毎の色。</p>

<p>各頂点違う色が設定されていれば、頂点間のピクセル色は<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">ラスタライザーによって補完</mark>される。</p>

<pre class="wp-block-code"><code>// hlsl

float4 PSMain(VSOutput vsOut) : SV_Target0
{
    // 赤色を出力している
    return float4(1.0f, 0.0f , 0.0f, 1.0f);
}</code></pre>

<p>つまり↑みたいな処理はせっかく入ってきた頂点情報 vsOut（厳密にはラスタライザーによって補完された各ピクセル情報のはず？）を使わず<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">赤色に上書き</mark>しているという解釈で良い。</p>

<p>だから↓みたいに入力情報をそのまま出力すればラスタライザーによって補完された色を見ることができる</p>

<pre class="wp-block-code"><code>// hlsl

// ピクセルシェーダー
float4 PSMain(VSOutput vsOut) : SV_Target0
{
    // step-4 頂点シェーダーから受け取ったカラーを出力する
    float4 color;
    color.x = vsOut.color.x;
    color.y = vsOut.color.y;
    color.z = vsOut.color.z;
    color.w = 1.0f; // α値は固定
    return color;
}</code></pre>

<h3 class="wp-block-heading">ピクセルシェーダーに渡るデータ</h3>

<p>じゃあVSOutPutとして入ってきたposには・・・？</p>

<pre class="wp-block-code"><code>// hlsl

// ピクセルシェーダー
float4 PSMain(VSOutput vsOut) : SV_Target0
{
    // test 頂点座標のデータを色にするとどうなる？
    float4 color;
    color.x = vsOut.pos.x;
    color.y = vsOut.pos.y;
    color.z = vsOut.pos.z;
    color.w = 1.0f; // α値は固定
    return color;
}</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-11-05-44-33-1024x577.png" alt="" class="wp-image-60"/></figure>

<p>黄色（1, 1, 0）?!<br>一定の値が入ってきているってことっぽい？</p>

<p>いや、色は0.0~1.0で正規化されてるからそれ以上の値が入ってきたときに1.0になるからだ。</p>

<p>最大値分かんないけど適当に1000で割っておけばいい色になりそう。</p>

<pre class="wp-block-code"><code>// hlsl

// ピクセルシェーダー

float4 PSMain(VSOutput vsOut) : SV_Target0
{
    // test 頂点座標のデータを色にするとどうなる？
    float4 color;
    color.x = vsOut.pos.x / 1000;
    color.y = vsOut.pos.y / 1000;
    color.z = vsOut.pos.z / 1000;
    color.w = 1.0f; // α値は固定
    return color;
}</code></pre>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-11-05-51-06-1024x577.png" alt="" class="wp-image-61"/></figure>

<p>できた！</p>

<p>上左右の順に(0.5, 0)(0, 1)(1, 1)のイメージっぽい？</p>

<p>やっぱり各ピクセルごとの座標が入ってくるみたい。</p>

<h2 class="wp-block-heading">Chapter3 シェーダープログラミングの基本</h2>

<h3 class="wp-block-heading">座標の求め方</h3>

<p>座標は ワールド行列、カメラ行列、透視変換行列 の乗算で求めることができる。</p>

<p>変換順序</p>

<ul class="wp-block-list"><li><mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">モデル空間</mark>（モデル毎が基準の空間）<br>　↓ 全頂点に<mark style="background-color:rgba(0, 0, 0, 0);color:#0040ff" class="has-inline-color">ワールド行列</mark>を乗算</li>

<li><mark style="background-color:rgba(0, 0, 0, 0);color:#0040ff" class="has-inline-color">ワールド空間</mark>（ワールド基準点からの位置）<br>　↓ 全頂点に<mark style="background-color:rgba(0, 0, 0, 0);color:#23a129" class="has-inline-color">カメラ行列</mark>を乗算</li>

<li><mark style="background-color:rgba(0, 0, 0, 0);color:#23a129" class="has-inline-color">カメラ空間</mark>（カメラからの位置）<br>　↓ 全頂点に<mark style="background-color:rgba(0, 0, 0, 0);color:#ff8200" class="has-inline-color">透視変換行列</mark>を乗算</li>

<li><mark style="background-color:rgba(0, 0, 0, 0);color:#ff8200" class="has-inline-color">スクリーン空間</mark>（2次元平面に変換）</li>
</ul>

<p>頂点数が多く計算量も多いため<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">乗算はGPU</mark>が担当する。<br>ただし、<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">行列の作成はCPU</mark>が担当する。</p>

<p>行列作成がCPUの理由</p>

<ul class="wp-block-list"><li>行列作成のための情報がメインメモリにあるから</li>

<li>1フレーム当たりの計算量が少ないから</li>
</ul>

<h3 class="wp-block-heading">定数バッファー</h3>

<p>CPUで作った行列をGPUに渡すシステム（<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">定数バッファー</mark>）を使用する。</p>

<p>定数バッファーに関連するAPIをDirectXが提供している</p>

<p>定数バッファーを使用するための仕組み → <mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">ディスクリプタヒープ</mark></p>

<p>イメージ</p>

<ul class="wp-block-list"><li>行列：ご飯</li>

<li>定数バッファー：お椀</li>

<li>ディスクリプタヒープ：お盆</li>
</ul>

<h3 class="wp-block-heading">サンプルコードのエンジン</h3>

<p>サンプルコード中のMainEngineは著者さんが作成したエンジンっぽい。</p>

<p>実際に一から作るのであればDirectXのAPIをラップするようなエンジンが必要なことは覚えておいた方が事故らなさそう。</p>

<h3 class="wp-block-heading">セマンティクスが使用できるカ所</h3>

<p>セマンティクスは<mark style="background-color:rgba(0, 0, 0, 0);color:#0037ff" class="has-inline-color">構造体宣言時以外</mark>でも使える！！</p>

<pre class="wp-block-code"><code>// hlsl

float4x4 g_worldMatrix : register(b0);</code></pre>

<p>↑ がメソッド外にあっても大丈夫。</p>

<p>この場合、<mark style="background-color:#FFEE58" class="has-inline-color">float4x4（float行列）のg_worldMatrix変数をbレジスタ0番目（CPU側で設定した定数バッファー）へのアクセス変数として定義する </mark>という意味</p>

<h3 class="wp-block-heading">テクスチャロード</h3>

<p>テクスチャは本体の画像データをCPUで読みこんでグラフィックスメモリに入れる。</p>

<p>定数バッファーでbレジスタに入れた時と同様に、<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">tレジスタ</mark>に入れる。</p>

<p>bはバッファのb、tはテクスチャのtらしい。</p>

<p>定数バッファ同様、テクスチャはディスクリプタヒープに入れる</p>

<pre class="wp-block-code"><code>// cpp

// ディスクリプタヒープに定数バッファを登録
ds.RegistConstantBuffer(0, cb);

// step-3 テクスチャをディスクリプタヒープに登録
ds.RegistShaderResource(0, tex);</code></pre>

<p>つまり正確には以下の関係性</p>

<ul class="wp-block-list"><li>データ：ご飯（行列、テクスチャなど）</li>

<li>レジスタ：お椀（bレジスタ、tレジスタ）</li>

<li>ディスクリプタヒープ：お盆</li>
</ul>

<h3 class="wp-block-heading">テクスチャマッピング</h3>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image2025-05-13-02-34-00-1024x577.png" alt="" class="wp-image-64"/></figure>

<pre class="wp-block-code"><code>// hlsl

// ピクセルシェーダー
float4 PSMain(VSOutput vsOut) : SV_Target0
{
    // step-5 テクスチャカラーをサンプリングして返す
    float4 texColor = g_texture.Sample(g_sampler, vsOut.uv);
    return texColor;
}</code></pre>

<p>各ピクセルごとにテクスチャからUV座標と一致するテクセルの色を取得して返却することでマッピングできる。</p>

<h3 class="wp-block-heading">3Dモデルのデータ構造</h3>

<p>3Dモデルの描画も結局は三角形の集合で可能<br>　→<mark style="background-color:rgba(0, 0, 0, 0);color:#ff0000" class="has-inline-color">三角形の描画フロー</mark>（頂点バッファー、インデックスバッファー、テクスチャ）で行える</p>

<p><mark style="background-color:#FFEE58" class="has-inline-color">1頂点当たりのマテリアル情報、頂点バッファー、インデックスバッファーが全頂点分あれば3Dモデルデータとして役割を果たす</mark></p>

<p></p>]]></description>
      <pubDate>Wed, 14 May 2025 18:04:57 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/grimoire-of-shading-in-hlsl-memo-of-chapter-1-to-3</guid>
    </item>
    <item>
      <title>セルルック風キャラクターモデリング講座を修了した感想</title>
      <link>https://irukanonedoko.com/impressions-after-completing-the-cell-look-style-character-modeling-course</link>
      <description><![CDATA[<p class="is-style-text-subtitle"><strong>はじめに</strong></p>

<p class="is-style-default">wogli様のBlenderで始めるセルルック風キャラクターモデリングを受講しました。</p>

<p><a href="https://coloso.jp/products/cgdesigner-wogli-jp">https://coloso.jp/products/cgdesigner-wogli-jp</a></p>

<p>MMDモデルの操作も慣れてきた、モデリングもそこそこできるようになってきた、そろそろ人型モデル挑戦するか～！</p>

<p>ということで私の大好きなe-LarningサイトColosoで講座を探していた所ビビっと来たこの講座を受けてみました。</p>

<p>※ 使用Blenderバージョンは4.4です。</p>

<p class="is-style-text-subtitle"><strong>完成図</strong></p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-8-1024x685.png" alt="" class="wp-image-34"/><figcaption class="wp-element-caption">正面</figcaption></figure>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-9.png" alt="" class="wp-image-35"/><figcaption class="wp-element-caption">横面</figcaption></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-10-1024x657.png" alt="" class="wp-image-36"/><figcaption class="wp-element-caption">後面</figcaption></figure>

<p>基本的に模様はメッシュかシェーダーです。<br>やや簡易的な部分が多いですが、全体的に違和感は出ない程度のクオリティにできて良かったです。</p>

<p>もちろん講座で丁寧に解説頂いており、それを真似て作っているわけですが、自分で手を動かしてここまで作れたのは嬉しいです。</p>

<p class="is-style-text-subtitle"><strong>所感</strong></p>

<p>〇 <mark style="background-color:#ffa6a6" class="has-inline-color has-contrast-color">よかったところ</mark></p>

<p>・人型モデル素体の基本がわかった<br>・モデルの作り方、構造的に意識しないといけない箇所がわかった<br>・モデリング力が向上した<br>・今まで触っていなかった(知らなかった)Blenderの機能を知れた<br>・講座の手順に対する疑問点から自身の知識の正誤が更新できた</p>

<p>〇 <mark style="background-color:#dbfffb" class="has-inline-color">よくなかったところ</mark></p>

<p>・Blenderで扱うことが大前提の作成方法だったため他移植を考慮すると配慮不足な点が多かった<br>・イラスト調以外で見た時にクオリティが不足している箇所が多かった</p>

<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>

<p>当然ですが、人型モデルの作り方は分かりました。<br>ただこの方法が絶対ではなく、あくまで手順の一つという解釈をしています。<br>例えば肘、膝などの曲がる個所のメッシュ構造について、曲げても違和感のないような作り方があると思いますが、今回は特に言及されずとりあえず破綻しない程度でした。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-3-1024x496.png" alt="" class="wp-image-24"/><figcaption class="wp-element-caption">曲げた状態 - メッシュとしては綺麗に曲がらず崩れている</figcaption></figure>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-4-1024x503.png" alt="" class="wp-image-25"/><figcaption class="wp-element-caption">レンダリング状態では特に違和感はない</figcaption></figure>

<p>この辺りはイラスト調という前提だからか、受講ターゲットが初級なのか不明ですが、逆に最低このメッシュでも大丈夫、というラインが分かったのは良かったです。</p>

<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>

<p>模様が全てメッシュだったのは個人的にあまり嬉しくありませんでした。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-5-1024x501.png" alt="" class="wp-image-29"/><figcaption class="wp-element-caption">スカート模様のメッシュ構造</figcaption></figure>

<p>そもそも模様をメッシュで作る理由ってあるんですかね？</p>

<p>メッシュに沿ってシェーダーかけたい？<br>　→別にその模様でマスクすれば済むのでは。</p>

<p>テクスチャ作れるほどイラスト力がない？<br>　→分かるけどウェイトとか調整とか難しくなるデメリットの方が大きいのでは。</p>

<p>一番嫌なのは後から模様を変える時にすごい手戻りが起きることですね。（この辺は業務に当ててるからなせいですが。）<br>後から突然 模様変えて！ なんてざらに言われるのにいちいちメッシュでやってたらその度にウェイトし直し、最悪対象のオブジェクト全体の再作成になりますよね。<br>そのデメリットを取ってまでメッシュにすることは嫌ですね。</p>

<p>講座として、一つの方法として、今回はそう思って進めました。</p>

<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>

<p>髪については完成後も疑問が残りました。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-6-1024x489.png" alt="" class="wp-image-31"/><figcaption class="wp-element-caption">髪のメッシュ構造</figcaption></figure>

<p>まぁ角度つけても大して違和感がないのでいいのかな。とも思いましたが、ちょっと雑過ぎるのでは...？</p>

<p>インナーカラーが内側メッシュなのはいいとして、後頭部との接続が一切ないのはどうなんですかね。<br>今まで見てきた3Dモデルがちゃんと後頭部から生えてるのに対し今回は違ったので違和感を感じているだけかもしれませんが。</p>

<p>分かったことはこの方法では風などの髪の表現に制限がかかることです。</p>

<p>今回は外側の髪だけにリギングしていますが、これでは大きく揺らすと内側の作り込んでいない部分が丸見えになるので良くないです。</p>

<figure class="wp-block-image size-full"><img src="/media/uploads/2025/05/image-7.png" alt="" class="wp-image-32"/><figcaption class="wp-element-caption">大きめに髪を動かすと違和感が出る</figcaption></figure>

<p>これではダイナミックな表現に制限がかかることになるので良くないのではと思いました。</p>

<p>これも一つの方法としてはありと思いますが、使いどころは難しい気がします。<br>自分用ならこれでいいのかな？</p>

<div style="height:29px" aria-hidden="true" class="wp-block-spacer"></div>

<p class="is-style-text-subtitle"><strong>最後に</strong></p>

<p>"一通り人型モデルを作れた" という経験自体に価値があると思った今回の受講でした。</p>

<p>やはり人型モデルとなるとクオリティや方向性によってピンキリなので独学だと難しいイメージがあります。<br>今回の講座は私の好きなセルルック調で、初級向けの講座だったので丁度良かったと思っています。</p>

<p>一部不満はありますが、"ここはこうだとこうなってだめだな"と気づけるのはいいことと思っています。<br>次作るときは今回の不満点をなくしつつ作れればと思います。</p>

<p>（やるなら推しのモデルか自身のモデルかなぁ、イラスト依頼...してみる？？）</p>

<p class="is-style-text-subtitle"><strong>追記：Blender4.4の補足</strong></p>

<p>レンダリング周りを4.2辺りで一新したみたいですね。<br><a href="https://wiki.blender.jp/Dev:JA/Ref/Release_Notes/4.20/eevee/eevee_migration">https://wiki.blender.jp/Dev:JA/Ref/Release_Notes/4.20/eevee/eevee_migration</a></p>

<p>その影響でBloomの項目が消滅してます。<br>変わりすぎだよ～～～困った。</p>

<p>ということでCompositingからGlareを混ぜて出力させました。</p>

<figure class="wp-block-image size-large"><img src="/media/uploads/2025/05/image-11-1024x673.png" alt="" class="wp-image-38"/><figcaption class="wp-element-caption">Compositによるブルーム設定</figcaption></figure>

<p>他にも所々困る個所はありましたが<s>記憶に残っている</s>大きく困った点はこれだったので残しておきます。</p>

<p></p>]]></description>
      <pubDate>Wed, 07 May 2025 16:19:50 GMT</pubDate>
      <guid isPermaLink="true">https://irukanonedoko.com/impressions-after-completing-the-cell-look-style-character-modeling-course</guid>
    </item>
  </channel>
</rss>