kugi's notebook

やったこと、思ったことなどつらつらと書きます

2025→2026

はじめに

2025年、みなさんはどんな1年だったでしょうか?

私の2025年の目標は「Plus Ultra」でした。

今年も振り返りを書きながら年を越そうと思います。

それではいってみましょう!

2025年振り返り

お仕事

詳しいことは書けませんが、まずはお仕事から。

今年は転機となる出来事がたくさんあり、 本当にたくさんの方々に助けていただきました。

来年も粛々と、技術を突き詰め、頑張っていきたいと思います。

ライミング

今年は同僚やUnityゲーム開発者ギルドの方々など一緒に登る方が増えた年でした。

御岳にも初めていきました!

ホームジムのKaChillの皆さんには今年もお世話になりました。

退勤後にKaChillで登るとなると、都内から辻堂まで電車で向かいジムに着くのは21時過ぎになるのですが、 常連さんや店長とクローズの時間まで一緒にまぶし壁でセッションをすることが多かったです。

今年はグレードを追い求めるというよりは、他の人と一緒に登ったり、セッションの時間をただひたすらに楽しむことで、クライミングの楽しさを改めて実感することができました。

KaChillではポッドキャストラジオもあるので是非聞いてみてください!

open.spotify.com

自作PC

今年は念願の自作PCを組みました!!

これまで個人PCはMacユーザで、いつかは自作PCを組んでみたいと思っていました。

モチベーションを高めるため、秋葉原へ同期とパーツ物色に行った際にこちらのPCケースに一目惚れしてしまいました。

kakaku.com

早速PCケースだけ買ってしまおう!!と思ったのですが、 ちょうど品切れになっていてその日は退散しました。

1ヶ月間通販サイトをチェックし続け、ようやく手に入れることができました!

他のパーツ構成は下記の通りです。

  • MONTECH SKY TWO [Blue]
  • MSI X670E GAMING PLUS WIFI
  • AMD Ryzen 9 9950X3D
  • MSI GeForce RTX 5070 Ti 16G GAMING TRIO OC WHITE
  • SAMSUNG 990 EVO Plus MZ-V9ST0B-IT
  • Crucial DDR5 PC5-48000 32GBx2 (CP2K32G60C40U5W)
  • CORSAIR RM1200e (CP-9020258-JP)
  • MSI MAG CORELIQUID A13 360 WHITE

マザボは台湾で買いました。

チョット安くなりました。(多分)

バンド練

昨年から始めたベースですが、今年はゲーム開発仲間のnattuhanさん、nattuhanさんの同級生、私の3人で月1ペースでゆるくスタジオに入りました。

nattuhanさんの振り返り記事でも言及いただいています。

note.com

曲としては

を練習していました。

他にはずとまよの秒針を噛むのスラップフレーズが弾きたくてスラップの練習もしていたりしました。

まだまだへたっぴですが、スタジオに入る度に人と合わせて弾くのは楽しいなと感じます。

もっと練習して上手くならなくては...

来年は練習曲を一新する予定です。

気持ち新たに1曲1曲に向きあって上達していきたいなと思います。

4コママンガ「kugi日記」

今年は5話描いていたようです。

note.com

7月以降パタリと更新が止まっていますね...笑

途中まで描いている話はあるので次回の更新をお楽しみに

:chill_magao:

SF6

会社の同期にEVO Japanに誘われ昨年始めたスト6ですが、今年はEVO Japanに参加してきました!

緊張で手汗びっしょりでしたが2勝できました...!

会場の活気や雰囲気にも圧倒されました。

ディージェイのランクの方ですが、今は「ダイヤ3」です。

年内にマスターに到達したかったのですが、道のりは長いですね...

来年こそは...! マスター目指して頑張ります。

unity1week

今年はunity1weekに2回作品を投稿しました。

お題「あい」では「あい×2」というサル同士でジャンケンをしてスコアを集めるゲームを投稿しました。

共有会にも久しぶりに参加させていただきました。

お題「ひく」では「PigUp」というしゃっくりで飛ぶブタをゴールまで飛ばすゲームを投稿しました。

1年ぶりにゲームジャムに参加しましたが、やはり楽しいですね!

会社の同期や親戚など身近な人に遊んでもらったり、感想を聞いたりできとても嬉しかったです。

レイトレ合宿11

今年のレイトレ合宿では久しぶりに「蛍光」のレンダリングに挑戦しました。

kugi-masa.hatenablog.com

今年は昨年実装したDXRレンダラーをベースに実装し、ある程度GPUレンダラーの土台となるようなものができてきました。

来年はマテリアルの実装などをさらに充実させていきたいです。

(早めに実装を再整理せねば...)

SESSIONS

12月には前々から気になっていたSESSIONSに参加してきました。

ライブコーディングや各種投稿作品、DJ/VJイベントなど刺激を受けまくりの2日間でした。

同じ趣味を持った人たちが一堂に会し盛り上がれる最高のイベントでした。

熱の冷めやらぬうちに、以前Unityで遊びで書いたシェーダーをもとにShadertoyに作品を投稿してみました。

https://www.shadertoy.com/view/wfdBDn

投稿してすぐに歓迎とアドバイスコメントをいただき、なんて暖かいコミュニティなんだ!!と思いました。

来年は私もSESSIONSに何か作品を投稿してみたいです!

2025→2026

こう改めて1年を振り返ってみると今年もいろいろと挑戦できたなと思います。

2025年の目標として「Plus Ultra」を掲げましたが、「あともう一歩踏ん張ろう!」、「ここが頑張りどき」といった場面で自分を奮い立たせる言葉になっていた気がします。

具体的な目標というわけではなかったので、目標に向かって、というよりは、目標に助けられたな、と感じる一年だったかもしれません。

さて、2026年の目標ですが、「導き、深める」にしたいと思います。

『導く』に関しては、「人を」導く、「成功に」導く、いろんな捉え方があると思いますが、自身も関わる人も良い道へと『導いて』いけたらなと思います。 『深める』に関しては、仕事も趣味も今持っているものをさらに突き詰めるという意味合いをこめて掲げてみました。

まとめ

今年も大変お世話になりました!

2026年もどうぞよろしくお願いいたします!

レイトレ合宿11参加レポート

はじめに

11月14日(金)から11月16日(日)の期間で高尾山の麓で開催されたレイトレ合宿11に参加してきました!

レイトレ合宿

レイトレ合宿はオフラインレンダリングのオフライン集会で、各々合宿当日までにレンダラを提出します。 合宿当日はレンダラのお披露目会である本戦やセミナー、またアクティビティなどが行われます。

今年のレイトレ合宿は高尾山口駅から歩いてすぐのタカオネで開催されました。

初日にバーベキューや

焚火をしたり

突如コーネルボックスが現れたり

二日目には高尾山を登ったりと自然も満喫しました。

本戦

本戦では制限時間内にAWSインスタンス上で描画された成果物とレンダラの説明を元に参加者全員でお互いの作品を10点満点で評価します。

詳しいルールについては下記に記載されています。

ルール・実行環境・提出物仕様

提出されたレンダラ

今年はエキシビション含め23個のレンダラが提出されました!

今年は、

薄レンズの重点的サンプリング手法を実装されたものや

Physically Based Shading in Theory and Practiceで発表されていた Strandベースのファーレンダリングなど

SIGGRAPH2025で発表された最新手法の実装や、

OpenUSDに対応し、BlenderやHoudiniで自作レンダラを呼び出すためのHydraプラグイン実装、

ライトが動き、固定端反射を行うシーンでの2次元のTransient Renderingなど、

皆さんの個性が詰まった多種多様なレンダラの発表がありました。

1位を取られたのは、Path Cutsという手法をベースにフォトントレーシングも活用してCausticsを描画された、うしおさんのPalzillaでした!

圧巻です...!

ここで紹介させていただいたレンダラだけでも半分には満たず、どれも素晴らしい作品ばかりです。 是非皆さんの作品をリザルトサイトの方でご覧ください!

sites.google.com

FluoTracer

さて、私の作品はというと、今年は蛍光を改めてレンダリングしました。

speakerdeck.com

github.com

今回の目標

これまでの変遷として、

という流れで参加してきました。

昨年のレイトレ合宿10でハードウェアレイトレーシングの土台ができたので、初心に帰って私の好きな光学現象である蛍光のレンダリングを今回の目標にし、昨年のレンダラーを拡張する形で実装を始めました。

Fluorescence in RGB

蛍光現象は蛍光分子がある特定の波長の光を吸収し、別の波長の光を放出する現象です。

そのため、レンダリングを行う際は光の波長までを考慮する必要があり、一般的なRGBレンダラでは物理的に正しい蛍光が表現できません。 また、スペクトラルレンダリングの中でも入射光と出射光で波長が変化するため、波長のサンプリングを行う際は波長の変化を考慮する必要があります。

レイトレ合宿8で実装したFluorSwitchの蛍光では、380 ~ 780nm区間で5nmごとの81サンプルからなるフルスペクトラムを用いて描画していました。

speakerdeck.com

今回改めて蛍光に挑戦するということで、蛍光ハンターである私は昨年EGSR2024で発表されたNon-Orthogonal Reduction for Rendering Fluorescent Materials in Non-Spectral Enginesを思い出しました。

提案手法では、RGBレンダリングも、等色関数によってRGB(XYZ)からスペクトラムへのダウンサンプリングやアップサンプリングが含まれるスペクトラルレンダリングだと捉えることでRGBレンダリング内で蛍光現象を表現しています。

詳しくは今年のセミナー資料でも記載しています。

speakerdeck.com

少し蛍光からは逸れますが、よこたさんやyumcyawizさんとのお話の中で、共著者の一人のBelcourさんがSIGGRAPH2017で発表された、 A Practical Extension to Microfacet Theory for the Modeling of Varying Iridescenceでも同じような考えでIridescenceをRGBで表現していると教えていただきました。

Iridescenceの方に関しては、UnityのHDRPでのIridescenceマテリアルや後述するOpenPBRのThin-film iridescenceでも推奨モデルとなっているようです。

また、今年のSIGGRAPH 2025のCourseではBelcourさんご本人が2024年の手法と発展として蛍光材質のパラメータを編集可能にした発展手法(A Fluorescent Material Model for Non-Spectral Editing & Rendering)について発表されていました。

今回私が提出したFluorTracerではあらかじめ事前計算でリダクションされたRe-radiation Matrixを用いてRGBレンダラーで蛍光の描画をしています。

蛍光材質としては論文でも利用されていたTEXTYELLというものを利用しています。 リダクションの計算などが含まれたJupyterNoteBook公開されていたため、計算済みの3x3の行列を今回は利用しました。

GitHub - afichet/fluorescence-rgb: Sample code for the paper Non-Orthogonal Reduction for Rendering Fluorescent Materials in Non-Spectral Engines

蛍光マテリアルのClosestHitシェーダーで、NEEによる光源サンプルで光源と接続できた場合に以下のような流れで寄与計算しています。

  1. サンプルされた光源をRGB → XYZ に変換
  2. 変換されたXYZ値をリダクションされたRe-radiation Matrix(事前計算された3×3行列)とかける
  3. 蛍光の計算後、XYZ → RGBに変換して寄与に加える

シーン中央に蛍光マテリアルを割り当てた板を設置して、後半の方で正面のライトの色を青に変化させることで蛍光を際立たせています。 蛍光マテリアルとしては『レイトレ合宿11』と書かれたマスクテクスチャを割り当てており、白の部分は蛍光面、黒の部分は拡散反射面にしています。

拡散反射面の部分のアルベドカラーについてはレイトレ合宿の文字が隠れるように色を調整しています。

拡散反射面でのアルベドを黄色に設定することで蛍光面が見えないようにしている

アルベドを黒にした場合

SIGGRAPH 2025のCourseでも言及されているのですが、パストレーシングにおいてはペイロードスカラー値ではなく、3×3の行列として扱う必要があります。

Spectral Rendering in a Non-Spectral Renderer: How Can we Author and Render Fluorescence in RGB? [SIGGRAPH2025] p.15

今回の実装ではNEEでの光源接続時と限定的に実装を行ったため、ペイロードスカラー値のままで計算しており、 本来の見た目よりも若干弱めの蛍光になっていそうなのですが、黄色い板から急に文字が浮かび上がってくるという演出としては都合が良かったです。

OpenPBR

蛍光以外の材質について、今回はOpenPBRの導入にも挑戦してみました。

これまでのマテリアルについては蛍光を除くとベーシックな拡散反射面(Lambert Diffuse)のみでスペキュラーな反射については実装してきませんでした。 GGXなどを導入してGlossyな面に対して蛍光が映り込む様子にも今回は挑戦してみたいなと思っていたところ、またまたSIGGRAPH2025のCourseでOpenPBRについての資料が上がっていることに気づきました。

OpenPBRはPBRマテリアルの共通規格とすべく、AutodeskとAdobeが協力し、Academy Software Foundationが2024年6月にバージョン1.1を策定した規格で、 Slabという材質の表面のBSDFと均質な媒質からなる構造をレイヤーとして積み上げたり、割合に応じてブレンドさせることで表現されるマテリアルです。

OpenPBR Surface | 3. Model

元々はDisneyのPrincipled BRDFに挑戦しようと思っていたのですが、新しい規格でもあり、長いものに巻かれてみようという気持ちでOpenPBRの実装に取り組みました。

WebGLベースではありますが、パストレーシングを行っているビューアーがOpenPBRの公式リポジトリでも紹介されていたので、今回はこちらを参考に実装しています。

GitHub - portsmouth/OpenPBR-viewer: An example implementation of OpenPBR in a WebGL pathtracer

とはいえ、今回の本題は蛍光だったので、いきなりすべてを導入するのではなく、Diffuse面とMetal面のBRDFのみの簡素な実装になっています。

DiffuseとMetalのBRDFのみ

また、OpenPBRではDiffuse面でのBRDFをエネルギー保存を考慮したモデルであるEON ("energy-perserving Oren-Nayar")をオプションとして提示していますが、今回はLambertDiffuseを用いています。

(EONについてもSIGGRAPH2025のCourseで発表がありました)

Metal面ではマイクロファセットBRDFフレネル反射としてはF82-Tintモデルを導入しています。

余談ですが、Unreal Engineの5.7からデフォルトで有効になった新しいマテリアルであるSubstrateも同じようにSlabを基本構造として持っており、マテリアル共通化の流れをこちらでも感じることができます。

GitHub Actionsによる自動ビルド

レンダラそのものとは若干ずれますが、今回はGitHub Actionsによる自動ビルドも導入しました。

PushをトリガーにWindowsのDebug版とRelease版をビルドしていました。

Release版でのアセットパス周りのバグに事前に気づけたりと早めに導入してよかったです。

意気込み賞

今回は本戦、セミナーの他に「意気込み賞」もありました。

優勝はkinankomotiさんの"raytracing-kenkyu.org"!

raytracing-kenkyu.org

SUGEEEEE----!!!

え?私の意気込みですか?

はい。

蛍光全然関係なくない?!


そうなんです、この異常に長い意気込み、私でした...

今年のレイトレ合宿のお誘いがあったのがちょうどCEDECの直後で、 Pocolさんのメッシュレット描画の講演を聞き、メッシュレット描画への興味がわいていたタイミングでノリと勢いで意気込みを投下してしまいました。

speakerdeck.com

メッシュレット描画したうえでライティング時にレイトレをすることを今年の目標にするか?と一瞬悩んだりもしたのですが、 やはり蛍光に挑戦したいという思いもあり、このズレた意気込みが出来上がってしまいました...

めちゃくちゃ恥ずかしいな...と思いながら合宿に参加していたのですが、 最終日にお昼をご一緒したeclmistさん、てらさん、ゆういちろうさん、sketchさんと意気込み賞の話になり、 「実はあれ実は自分なんです...」と明かしたところ、「めちゃくちゃ笑いました!」と言っていただけたので救われました...

感謝🙏

まとめ

レイトレ合宿11について振り返りました。

今年は初参加の3年前から再び蛍光の実装に取り組むことができました。

ただ、今回の蛍光はシーンに依存した実装や材質についても固定だったので、 まずはリファレンスのためにRGBレンダラをスペクトラルレンダラに拡張したいです。 また、OpenPBRについても実装が道半ばなのでほかのBSDFについても実装を進めたいです。

参加するたびに皆さんから刺激をもらい、自分も頑張ろうと思える良い機会です。 参加者の皆さんとの議論も非常に楽しかったです。

運営の皆さん、参加者の皆さんありがとうございました!

unity1week「ひく」振り返り ~ ClaudeCodeと参加するゲームジャム ~

はじめに

Unity1週間ゲームジャム - お題「ひく」で「PigUp」という、しゃっくりで飛ぶブタのゲームを作りました!

プレイしてくださった方、評価してくださった方ありがとうございます! まだの方は下のリンクからプレイできるのでよかったら遊んでみてください。 unityroom.com

今回は「PigUp」の振り返り記事になります。

ClaudeCodeと参加するゲームジャム

実は今回参加を決めたのは開発期間終盤の8/8(金)の夜でした。

というのも、開発期間前半は親戚が遊びに来ており、評価期間中は夏季休暇ではありましたが、旅行など予定が詰まっていたため「今回は参加が厳しいかな~」と参加を見送るつもりでいました。

金曜日の夜、「そういえばunity1weekか、お題何だったっけな~」とunity1weekのことを考えながら眠りにつこうとしていたところ...

『 「ひく」 → 「Hiccup」→「Pig ... Up ...」→「PigUp ... !?」 』とブタがしゃっくりをしながら空を飛んでいる絵が思い浮かびました。

開発時間はあまり取れそうではなかったのですが、「ブタを飛ばしたい!」という気持ちと、 最近話題のClaudeCodeを使ってみたかったこともあり、 「逆にこの時間が取れない状況でClaudeCodeでどれだけ時短になるかを試してみる良いタイミングかも?」 と考えとりあえず参加してみることにしました。

世のものもすなる『ゔぁいゔこーでぃんぐ』といふものを、kugiもしてみむとて、するなり

Claude Codeセットアップ

ということで、早速

npm install -g @anthropic-ai/claude-code

しました。

docs.anthropic.com

課金形態

課金形態はAPIの従量課金で、まずはお試しで5ドル課金しました。 後々追加で30ドル課金しました。

公開までにかかったトークン費用としてはおおよそ15ドルでした。

プラグイン

Riderのプラグインもあったので試しに入れてみました。

Claude Code [Beta] - IntelliJ IDEs Plugin | Marketplace

Claude Code [Beta] Rider Plugin

日本語入力が不便な問題は依然として残りますが、いちいちターミナルを起動してclaudeコマンドを入力しなくても良くなります。 また、Shift + Enterで改行できるようでした。

Claude Codeとのやりとり

Claude Codeにコードを書いてもらう前に、PLAN MODE で計画した後に書いてもらった方が良いと聞いていたので、 最初の指示文をClaude Codeに渡す前にGeminiにプロンプトの相談をしつつ、ゲームアイディアを整理してみました。

- 豚をひっぱり、しゃっくりさせながら、どこまで高く到達できたかでスコアが決まるゲーム
- 豚をひっぱるにはエネルギー(スタミナ)が必要
- スタミナがなくなったらゲーム終了

また指示文も英語で渡すようにしてみました。

# 📝 実際に最初に渡した指示プロンプト
I'm making a 2D game for a gamejam. These are the details of the game.

- A 2D Platforming game where player controls a character(pig) by pulling and releasing the character so that the character can jump.
- The objective is to climb as high as possible.
- The character has a stamina gauge and the player will use the gauge to do the pulling action.
- When the stamina gauge is empty the game will finish and move to results by showing how high the character reached in the end.
- There will be some items in the stage during the climb
    - Health Item (Soda) : The character recovers some stamina
    - Boost Item (Balloon) : When the character gains 3 Balloons, the character will have a speed up boost for a specific duration.
    - Damage Item (Water) : The character lose some stamina

PLAN MODEで何度か内容の確認をしたうえで、実際にコードを書いてもらいました。

Shift + Tab でモード切替

数分待っているとUnity側でのセットアップガイドとともに、実装コードが出来上がっていました。

Unity側でセットアップガイド

いざUnityを起動してみるとエラーが出てSafeModeで起動することになりましたが、 エラーの該当箇所を修正し、セットアップガイド通りにひとまずシーンのセットアップをしてみて、 シーンの実行までたどり着きました。

開発中の修正依頼

初日に実装コードを提供してもらってから、途中でゲームの終了判定やブタ挙動、スタミナなどの仕様修正が出てきました。 途中の修正依頼についても軽く紹介します。

ブタのしゃっくりジャンプ時の方向表示依頼など

  • しゃっくりジャンプの際の方向表示
  • 豚落下中にカメラがカクツク問題の調査
  • Rキーでリトライする処理

📝指示プロンプト

Now I want to brush up my game.

- The hopping direction is not clear for the Player so I want to show the directin by a trajectory line.
You can reuse the trajectoryLine in the PigController if it's suitable.
Only show the hopping direction when the Pig is in the air.
- If the player inputs the key [R], I want to restart the game by calling the GameManager.Restart().

If your done with that, I also want you to check why the view has stuttering when the pig falls.

細かな追加修正

  • ブタの反転と飛ぶ方向に応じて向きを変える
  • 設定表示中はゲームを停止する
  • はじめてクリックしてからタイマー開始

📝指示プロンプト

Hi! I'm almost done making this game!
I'm doing a final brush up so I want you to help.
Please consider the following tasks.

- I want to make the Pig's sprite flip according to the direction the Pig is flying.
    - Also I want the top of the sprite to face the direction the Pig is flying.
    - The Pig's implementation is @Assets/Scripts/Core/PigController.cs
- I want to Pause the game(the game time, the Pig's rigid body simulation) when the user presses the [S] key
    - The InputAction is already implemented (Please use "settingsAction")
- I want the GameTimer to start on the First release pull action. (On the initial PigJump)


概ね意図通りの追加実装や修正をしてくれました。

また、私が追加で実装した箇所(おそらくコピペ実装のままになっていた部分)の修正まで合わせて行ってくれました...。

私の実装ミスを合わせて修正してくれた

Claude Codeを使ってみて

実際に使ってみて、序盤の走り出しのスピード感がかなり早く、 まず「動くもの」が欲しくなるような、プロトタイプの制作やゲームジャムのような場面と、相性がとても良いと感じました。

ただ、ずっとClaudeCodeに書いてもらっていたかというとそういうわけでもなく、 ClaudeCodeにコードを書いてもらったのは主に序盤の2日で、 後半の演出実装や細かな調整は自分で実装していました。

また、実装コードについては[SerializeField]が一切使われていなかったり、冗長なコードがあったりなど、こちらの意図を汲み切れていない部分がありました。 命名規則なども含め、プロジェクト構成やコーディング規約についてはコードを書いてもらう前段階で CLAUDE.mdで指示したうえで着手してもらう方が良いんだろうなと感じました。

(「ものごとを簡潔に伝える力」が必要になっていきますね...)

今回はコードのみの部分で助けてもらいましたが、どこかのタイミングでMCPも試してみたいです。

まとめ

今回は、妻のNaTsuもボイス、イラストで手伝ってくれ、久々に夫婦で共同開発ができたのも良かったです。 妻は子供の頃にDoodleJumpをかなりやっていたようで、縦スクロールで登っていくというアイディアを最初に伝えたときに「絶対作って!」と熱く語ってくれました。

もともと、参加する予定のなかった今回のunity1weekですが、評価期間ギリギリにはなりましたが、ClaudeCodeのおかげもありしゃっくりでブタを飛ばすことができました。 今後も活用の仕方を模索していきたいです。それでは!

技術書典18の戦利品

はじめに

技術書典18のオフライン会場に行ってきました!

こちらの記事では今回購入した戦利品たちについて記載します。

戦利品

\ 戦利品 //

会場を回り、購入した順で記載していきます。

技術季報 Vol.18 [技術書典運営事務局]

オフライン会場に行った際は記念で必ず購入している気がします。

今回のエッセイでは「参考文献」の話やオフライン会場の新企画であった「技術書典で開催する技術書店」の裏話があり面白かったです。

帰りの電車で読んでいたのですが、お祭りの余韻に浸れました。

techbookfest.org

GROVE対応シリーズで始めるUnity電子工作入門 [みんなのラボ]

入場して少し進んだあたりで、センサーや入力デバイスで電子工作されたデモが展示されたブースが気になり、吸い込まれていきました。このような予期せぬ技術との出会いも技術書典の醍醐味ですよね!

みんなのらぼ さんのブース

ブースの方とお話しして、ジョイスティックやジャイロセンサーで操作できるUnityデモの紹介やGROOVE対応ボードについて色々教えていただきました。

技術書だけでなくハードも販売されていて、私は下記3点を購入しました。

techbookfest.org

techbookfest.org

techbookfest.org

入力デバイスから着想を得たゲームなど作ってみたいですね!

ワンキーキーボードは、はんだ付けやファームウェアの書き込みは不要で、ピンを差し替えることで指定したキーマトリクス内のキーに割り当てを切り替えることができるようになっていました。

DirectX12 Mastery Vol.2 [techbito]

お目当てだったtechbitoさんのDX12の新刊を購入しました。 今回はテクスチャ操作とDirectStorageについての内容のようです。 読むのがとても楽しみです!

techbito さんのブース

techbookfest.org

Rust Graphics Fundamentals Vol.1, Vol.2 [techbito]

また、techbitoさんのRust Graphics本についても2冊購入しました。 気になる言語ではあったのですが、これまで触れたことがなかったのでこれを気に学んでみたいです!

techbookfest.org techbookfest.org

エンジニアニメ Anthology Tech Book 1st Season [アニメから得た学びを執筆会]

学生の頃ハッカソンやLT会を通して交流のあった方が何名か所属されている アニメから得た学びを執筆会 さんのブースへ行きました。

アニメから得た学びを執筆会 さんのブース

以前からアニメから技術者として得た気づきや学びを発表する勉強会を開催されていたのは知っていたのですが、実際に参加したことはなかったので、今回こうして書籍化されたものを読むのが楽しみです。

techbookfest.org

まとめ

過去に何度か技術書典に参加したことはあったのですが、 技術書典に行った日は刺激をたくさん受けてモチベーションが上がるのですが、 気づいたら積読として本棚に鎮座してしまうことが多いので、今回は「読むぞ〜!」という意味も込めて、 初めて戦利品をまとめる記事を書いてみました。

参加する度に新しい技術書との出会いがあり、お祭りのような楽しさがありますよね! (気づいたらお財布の紐が緩くなっているのですが...) 今回はリアルでお話ししたことがなかったTLの方々にも何人かご挨拶できてよかったです。

オンラインマーケットの方は6月15日(日)まで開催しているようなので、追加で購入したものがあれば追記するかもしれません。

techbookfest.org

2024→2025

はじめに

2024年ももうすぐで年明けです。

今年も2024年の振り返りを書きながら2025年を迎えたいと思います。

2024年振り返り

NOA's Project

2024年もNOA's Projectの出展から始まりました。

Unity1Weekをきっかけにnattuhanさんつっちーさん、妻のNaTsuと共に開発を行なっているNOA's Projectも4年目に突入、今年は「東京ゲームダンジョン4」に二日間出展しました。

7月ごろまでは週1でDiscordに集まり、もくもく会と称して2時間程度作業を続けていましたが各々本職や新しい趣味ができ忙しくなり、2024年は休眠期間となりました。

ノアプロへの2024年の最終コミット

来年はまた開発を再開して完成に向けて頑張りたい!! と言いたいところですが、私はお互いに強制力のない、ゆるゆるとしたノアプロチームの雰囲気での開発が好きなので流れに身を任せたいと思います。

年明けに久々にメンバーで集まる飲み会が2025年最初の楽しみです。

ライミング

今年も昨年の10月ごろから通っているホームジムのKaChillでたくさん登りました。 KaChill民の皆さんとはムーンボードやまぶし壁でセッションさせていただいたり、外岩リードにもご一緒させていただきました。

周遊コンペのYGCに参加したり、会社の同僚と退勤後渋谷のノボロックで登ったりと昨年よりは登る機会が増えました。

来年は久しぶりにTNFCにも参加したいです。

HAMSTAR MC BATTLE

昨年のUnity1Weekで妻と妹と私の3人で作ったハムスターたちがラップバトルをするゲーム「HAMSTAR MC BATTLE」をオクトレインさんに取り上げていただいたことにより、いろんな方の目に留まり、昨年のUnity1Week期間以上にプレイいただけました。

(バズトレインさんありがとうございます!)

また、配信者ののばまんさんにもプレイいただけたことも驚きました。

youtu.be

バージョンアップ版ないしは続編を作りたいねと妻、妹と話しているので、 来年は何かの形でアウトプットしたいです。

unityroom.com

4コマ

今年は4コマを1話だけ描きました。

4コマを描き始めた当初はコツコツ描いていきたいなと思っていたのですが、 徐々に「描かなきゃ...」 と自分の中で義務感のような感じてしまうことがあり、 昨年ごろからゆる〜〜く描いていこうというスタンスに変えました。

note.com

ネタ帳には描きたい内容がたくさん増えていくばかりですが、 描きたいなと思ったときに描くという精神で、 ゆる〜〜〜く描きたいと思います。

レイトレ合宿10

今年もレイトレ合宿に参加しました。 今年はDXRでハードウェアレイトレーシングに入門しました。

振り返り記事も書きました。

kugi-masa.hatenablog.com

SIGGRAPH Asia 2024で聴講したテンセントさんの講演が興味深かったので来年は、微分可能レンダリングに挑戦したいです。

Optimizing Game Assets Using Differentiable Rendering

(CEDEC2024でも同様のセッションがあったようです。

微分可能レンダリングを使用したレンダリングパフォーマンスの向上 / Boosting Rendering Performance Using Differentiable Rendering)

ベース

7月にベースを買いました。

元々楽器をしてみたいという憧れのようなものはあったのですが、ノアプロメンバーのnattuhanさんがバンドに誘ってくれたこともあり、 このタイミングで購入を決意しました。

私の妹も実はベースを弾いていて、教えてもらえるかな?と思ったのもベースにしたきっかけです。

まだまだ初心者ですが、引き続き練習していきたいです。

SF6

「あなたの2024年のゲームは何?」と聞かれたら「ストリートファイター6」と答えます。

きっかけはRushboxと会社の同期です。

格ゲーに関しても若干の憧れのようなものはあったのですが、なかなか始める機会がありませんでした。

私が自作キーボードを始めるきっかけとなったゆかり𓂙さんが制作されているレバーレスコントローラーのRushboxを見て、 レバーレスの存在を知り、会社の同期からEVO Japanに誘われて(2024年は結局出れませんでしたが)、RushboxでSF6を始めました。

キャラはGROOVEに惹かれ、DEE JAYを使っています。 コンボを覚えて出来なかった技が増えたり、ランクという自分の適性レベル帯で模索する過程がボルダリングにも似ていてのめり込んでいく1年でした。 マスターの方々にご指導ご鞭撻をいただきながら、毎日仕事の昼休みに修行をしています。

まだまだ程遠いですが、来年こそはマスターDEE JAYになりたいです。🕶️🪇

お仕事

4年目になり、環境が目まぐるしく変わる1年でした。 関わる人が増え、いろんな方々にお世話になりました。 来年も頑張るぞい💪

2025年の目標

さて、2024年の目標は

「憧れをもっと身近に」

でした。

仕事でも趣味でもこれまで憧れを抱いていたものには挑戦できた年だったと思います。

(とにかく趣味が増えた年でした笑)

2025年の目標は「Plus Ultra」でいこうと思います!

まとめ

今年も多くの方にお世話になりました。

来年も頑張るぞ!

さらに向こうへ!Plus Ultra!

レイトレ合宿10参加レポート

はじめに

10月11日(金)から10月13日(日)に初島で開催されたレイトレ合宿10に参加してきました! こちらはレイトレ合宿までの準備と当日の振り返り記事になります。

レイトレ合宿に参加するまで

レイトレ合宿は自作レンダラーで描画されたレンダリング結果(動画作品/画像作品)の美しさを競うオフライン集会です。 参加者は事前にレンダラーを提出し、合宿当日は作品の発表やセミナー、レクリエーションなどを行います。

今年は初島で開催されました!

カモメが出迎えてくれました

私はレイトレ合宿8レイトレ合宿9と参加し、今回で3回目の参加となりました。

過去の参加レポート

まずは「今回の目標」から共有したいと思います。

今回の目標

今回の目標は、『ハードウェアレイトレーシングに入門する』でした。

レイトレ合宿8では、

レイトレ合宿9では、

CPU 、GPU (ComputeShader) ときたので、 今年はレイトレーシングパイプラインに挑戦してみたいと思い、 DirectX Raytracing(DXR)を用いてハードウェアレイトレーシングに入門しました。

制作の過程

今回も制作までの記録をNotionにメモ書きとして残していきました。

Notionで制作の過程を記録

前回、前々回と比べると若干スロースタートでした...

レギュレーションとしては制限時間256秒。

今回は静止画も提出可能ではありましたが、 今回も動画を作りたかったので、レギュレーション最高枚数である画像600枚(10秒 60fps)を目指し進めました。

DirectX Raytracing Programming Vol.1

まずは技術書典12で購入したtechbitoさんの『DirectX Raytracing Programming Vol.1』を読みながらサンプルを動かしつつ入門し始めました。

booth.pm

とはいえ、DirectX12に触れるのも初めてだったため、序盤はドキュメント、DirectX12の参考書やブログ記事を参考にまずはレイトレでの三角形の描画を目標に進めていきました。

三角形描画まで

初めて触れる内容が多かったこともありCMakeでシェーダーコンパイルするための記述やGPUハンドルのオフセット忘れなど、つまづくことが多かったです。

ようやく三角形描画までのパイプライン実装まで終わったと思った矢先、 背景は描画されているのに、三角形が描画されないという状況に陥ってしまいました...。

NVIDIA Nsight Graphicsでサンプルプロジェクトと自作レンダラーをキャプチャし比較してみたところ、

自作レンダラーをNsight Graphicsでキャプチャした内容

TLAS作成時に、作成済みのBLAS用バッファに再度セットしていました。

この時点で 2024/9/14 (残り26日) ...

また、以前までの開発はMac環境でWindowsアプリケーション周りの実装に慣れていなかったため、 オフスクリーンレンダリングの対応にも時間を取られました。 提出するレンダラーはEC2の実行環境で実行される際、ウィンドウやダイアログを出してはいけないため、 Windowsアプリケーションのウィンドウを出さずに描画する必要がありました。

今回はReleaseビルドだった場合、ShowWindow関数に渡すnCmdShowの値をSW_HIDEに設定することで対応しました。

#ifdef _DEBUG
        int nCmdShow = SW_SHOWNORMAL;
#else // _DEBUG
        // Release版ではウィンドウを出さない
        int nCmdShow = SW_HIDE;
#endif
        ShowWindow(m_hWnd, nCmdShow);

モデル描画まで

レイトレ合宿8、9とプリミティブなモデルしか描画できなかったので、 techbitoさんの書籍を参考にglTFを用いたモデル描画に対応しました。

※ glTFローダーにはtinygltfを使用しました。

モデルには今年のSIGGRAPHのReal-Time Live!で紹介されていた、Rodinという画像1枚からマテリアルと3Dモデルを生成できる生成AIを用いてglTFデータを作成しました。

Rodinで3Dモデルとマテリアルを生成

www.youtube.com

複数オブジェクト描画のテストとしてBlenderで作成した机もシーンに加え、 ひとまず頂点法線を表示し、imguiを導入しカメラ調整機能を実装しました。

この時点で2024/9/30 (残り9 日)...

いよいよ1週間を切りそうというタイミングでしたが、 この時点ではまだパストレや光源、マテリアル実装が間に合っていませんでした...。

提出作品『Chill in the Box』

残り日数が短かったため、マテリアルはLambert Diffuseと割り切り、表現したいシーンを考えアニメーション実装に時間を割きました。

せっかくglTFを使っているのでアニメーションをBlenderで作成して読み込めるようにしたかったですが、 時間もなかったので、下の画像のような構成のものをハードコーディングしました。

絵コンテのようなもの

パストレ、IBL(Image Based Lighting)、アニメーションの実装が大体出来上がり、 残りの時間で過去の作品では実装できていなかったNEE(Next Event Estimation)の実装に取り掛かりましたが、 なぜかモデルでの反射成分の色味が薄くやや薄暗い感じになっていました。

2024/10/6 (残り3 日)時点での提出物

朝の通勤電車で参考にさせていただいたkiNaNkomotiさんの記事を再度読み直しながら、

GitHub Mobileでコードを見直していると、

NEEの処理で衝突点から光源方向へレイトレースし、光源と接続できた場合に寄与の計算をした後、次の衝突点への移動をせずに終了してしまっていることに気がつきました。

/// 光源サンプリング
/// 光源方向へレイトレースして、光源と接続できた場合
if (!TraceShadowRay(worldPos, lightDir, lightDist, payload.seed))
{
   /// 寄与の計算
   ///トレースを終了←してはだめ
}
else // ← ここのelseが不要だった
{
   /// 方向をサンプリング
   /// throughputの計算
   /// 次の衝突点に移動
}

NEEで光源と接続できた場合、早々にトレースを終了してしまい、 throughputの計算もできていなかったため、反射成分が少なくなってしまっていたのだと思います。

帰宅後すぐさま修正し、無事に最終版を提出しました。

無事に提出!🎉

最終日はスライドをひたすら作っていました。

そして提出した作品がこちらになります。

また、今回のレンダラーについては下記のリポジトリに公開しています。

github.com

レイトレ合宿当日

前回のレイトレ合宿9はお寺で開催され座禅体験や精進料理など非日常を体験できましたが、 今年は今年で初島でリゾート気分な非日常を楽しめました。

月明かりや星空がとても綺麗でした。

お食事も絶品でした

本戦

今年は22個ものレンダラが提出されました。

私が本戦で使用した説明スライドはこちらになります。

毎年ながら他の方の作品は圧倒されるものばかりでした。

Gaussian Splattingを実装されたうしおさんがご自身で小舟に乗りドローンを飛ばして撮影したと聞いた時は驚きました。 すごすぎる...!

本戦の結果としては15位でした。 景品にはWeta Digitalの商用レンダラーMaunkaにちなんで、「たたかうマヌカハニー」を頂きました!

セミナー

セミナーに関しても皆さん幅広い内容の発表をされていて、どれも興味深かったです。

X(Twitter)で話題になっている#つぶやきGLSLを解読する内容についてがむさんが発表されていて、 発表の中で、実際にtwigl.appを開いて解読される様子も見せていただきました。

マジックナンバーを変えた際の変化を見ながら、その部分の記述が何の処理をしているかを推測したり、 パターンを覚えることで解読への足掛かりになるとのことでした。

ベストプレゼンター賞はholeさんでNaNやInfについての発表をされていました。

度々悩まされるNaNですが、 Quite NaNとSignaling NaNという2種類のものに分類されるということを初めて知りました。 また、NaNが絡む演算のコンパイラごとの挙動の違いについても調査されていてとても面白かったです。

私は蛍光現象について15分枠で発表しました。

(今回も蓄光石や蛍光マーカーを忍ばせていました)

レクリエーション

Sponza ジグゾーパズル対決

今年のレクレーションは部屋対抗Sponzaのジグゾーパズル対決でした。

がむさん、Samuelsさん、私のチームは最後の2チームまで残りましたが、惜しくも最後のEvaluationで敗退... 優勝チームにはCornell Boxのジグゾーパズルが贈られました!

レクレーションで使用したパズルはチームの誰かが持って帰って良いとのことだったので、 私たちのチームでは私が頂くことになりました。

なお、現状は...

帰宅後完成されていたYoshi's Dreannさんは7時間かかったそうです....!

Silent NaN の歌のライブ

ジグゾーパズル以外には、holeさんとykozwさんでAI生成されたNaNを称える歌のライブがありました。

サイリウムも配られ、会場は大盛り上がりでした。

とてもいい写真。

まとめ

レイトレ合宿10について振り返りました。

今回はDXRでハードウェアレイトレーシングに入門し、これまでのプリミティブな形状からも脱出できました。 そろそろLambertDiffuseからは卒業して、Specularな材質もレイトレしていきたいです。

毎年刺激が多く、皆さんのレベルの高さに圧倒されるばかりです。 私もできることを一つ一つ増やしていきたいです。

運営の皆さん、参加者の皆さんありがとうございました!

2023→2024

はじめに

はやいもので2023年ももうすぐ終わりますね。

今回はXの投稿を遡りながら2023年を振り返り、2024年の目標を書いていきたいと思います。

2023年振り返り

東京ゲームダンジョン

2023年は「東京ゲームダンジョン2」から始りました。

Unity1Weekの「NOA's Project」をきっかけに始まったSteam版「NOA's PROJECT」の開発も3年目に突入しました。 今年は「東京ゲームダンジョン2」で初出展し、「東京ゲームダンジョン3」にも出展しました。

来てくれた方が実際に手に取って遊んでいる様子を見たり、 ゲームへのフィードバックをいただけてとても貴重な経験になりました。

年明けの「東京ゲームダンジョン4」にも2日出展デカ枠で出展します。 前回販売できなかったチルガイアクリルストラップも販売予定です。 1/20(土)、1/21(日) 都立産業貿易センター浜松町館5階 ブースA-3にてお待ちしております!

大阪ゲームダンジョン ► 2025年12月27日(土)、大阪・堺筋本町でインディゲーム展示会を開催!

Unity1Week

今年Unity1Weekには4月に1度だけ参加し、 ハムスターたちのラップバトルを体験する 「HAMSTAR MC BATTLE」を制作しました。

https://unityroom.com/games/hamstar

ちょうど妹が就活で関東に来ていたタイミングで自宅に泊まっていたのでキャラ絵やラップ、声入れを手伝ってもらいました。 妻(NaTsu Beats)にもビート制作や声入れを手伝ってもらいました。

Thanks guys 😉

ビートチェックや勝敗判定の演出など、 好きなラップバトルの要素を盛り込み 個人的にもかなり満足のいくものが作れました。

引越し

4月には都内を離れ、自然豊かな街に引越しました。

空気が美味しいのと星が見えるところ、いろんな仲間たち🦢🐟🐢に出会えるところが気に入っています。

台湾

5月には妻の実家の台湾に4年ぶりに行きました。

今年から毎年行きたいです。 (イッヌかわよ)

SIGGRAPH

8月には憧れの舞台であったSIGGRAPH視察にも行きました。

スパイダーバースのリファレンスは大事だよというお話がとても刺さりました。 "Cinematography For Stylized Motion Pictures"

Ray Tracing in One WeekendのBird of a Feather でPeter Shirley氏ともお話しできて嬉しかったです。

LAにいる父のお店にも行きました。

https://sushikatsuya.com/pages/7.php

WebGPU

今年のレイトレ合宿ではWebGPUでGPUレンダリングに挑戦しました。

Élie Michel氏のWebGPU C++ Guideをベースに進め、 コンピュートシェーダーでのレイトレを実装しました。

speakerdeck.com speakerdeck.com

大変な部分も多かったですが、作品提出までできてよかったです。

kugi日記

2021年に上京して描き始めた日常4コマ漫画の「kugi日記」も3年目に突入しました。

note.com

  • 1年目(2021年):58話
  • 2年目(2022年):15話
  • 3年目(2023年):7話

と年々更新頻度は減っていますが、「描きたい時に楽しんで描く」をモットーに今後もゆるりと続けていきたいと思います。

1コマ of 2023

ライミング

今年でクライミングを始めて10年だったようです。 高校の部活を引退し、大学、社会人と場所を変えいろんな場所で登ってきましたが、 近くにジムがなかったり、登れても月に1度だったりとなかなか高校時代のようなモチベーションでなかなか登れていませんでした。

引越しもあり近所に良いジムを見つけ、10月ごろからようやく週2で登りに行けています。 久しぶりにガッツリ登ることが習慣づいてきて、ただひたすらに壁と向き合うことの楽しさを改めて実感しています。

来年はコンペや外岩にもどんどん行きたいです。

2024年の目標

2024年の目標としては以下を掲げます。

憧れをもっと身近に

今年は憧れであったSIGGRAPHの舞台や、グラフィックスの業務も始まり、学生の頃に抱いていた憧れの環境に身を置くことができたと思います。 来年は更にそのような憧れを憧れにとどめることなく、身近なものにできるように挑戦していきたいです。

まとめ

今年も多くの方々に大変お世話になりました。

来年も引き続き keep chilling の精神で精進していきます。

LET'S GO 2024 !!!