noir_neo’s blog

140字より長い文章を投稿するところ

ねおりん 2025 ハイライト

年末ということで振り返っていきましょう。

今年はなんやかんやがあったりなかったりして、抱負は掲げていませんでした。

振り返り

hatracker

(Unity Analytics → Google Analytics 移行したのでデータが分かれています)

2月と4月のピークは、全身トラッキング対応のときに興味を持ってくれた方が多かったようです。 それから使ってくれる人が増えているのは、大変励まされますね。

今年の大きめアップデートたち

今年はポリッシュをひたすらやるつもりだったので、改善系のアプデが多い… かと思いきや、年末にデカ新機能を追加していますね。

App Store にはまだ出せてません。来年のねおりんに期待です (マジで動いてるのでマジで期待しててください)。

労働

してる。

noir-neo.hatenablog.com

推し事

カレンダーをざっと数えたところ13現場くらい行ったようです。

来年も健康に推していきたい。

ゲーム

store.steampowered.com

こんなに Rust をやっていた記憶はありません。

この他には Overwatch 2 をそこそこ遊んでいた気がします。

国内で一番美味いと思ってる Totopia Brewery の直営店と醸造所併設のタップルームに行けました。うれしい。

Finback がリブランディングしたタイミングで一通り飲みました。これが一番美味いです。

それはそれとして、結局 Monkish が一番美味いのでは…… ということに気づいてしまいました。大変です。

過去一高い酒を買ってしまいました。これはいつ開ければいいんでしょう。

コーヒー

今年出会った最美味コーヒーはこちら。

https://leavescoffee.jp/

最近は、街のコーヒー豆屋さんみたいなところへ行って、その場で焙煎してもらうのにハマっています。

DJ

Casual Mendan #2 に出演しました。来年もやってくれ〜

競馬

春のG1は回収率192%と好成績でスタートしました。

調子に乗って夏競馬に手を出したものの、以降負け続けトータル回収率は57%でした。

知識が増える前の方が当たってた気もするけど、楽しいのでOKです。

プロジェクト・ヘイル・メアリーはネタバレを食らう前に読めて本当によかったと思います。

青ブタのアニメが来年完結するということで、原作を読みはじめて13巻まで追いつきました。14・15巻を先に読むか、劇場版を待つかでまだ迷っています。

人生の進捗

ない。来年のねおりんに期待です。 (助けてくれ〜)

おわりに

無職期間があったおかげか、幅広く充実していた1年だった気がします。

2026年もやっていきましょう。

最適な視野角で最高のアバター自撮りをしたい!

この記事は 「趣」アドベントカレンダー の3日目の記事です。 昨日は id:Sixeight さんの「 」でした。大変趣がありますね。


はじめに

アバターで自撮りするとき、カメラ距離と視野角のトレードオフというのは非常に悩ましい問題のひとつですよね。

狭角ではフレームに収まらず、広角にするとフレームの端で歪みが目立つ。そもそもモデルによってベストな視野角は異なります。 かといって視野角に合わせて腕の長さ以上にカメラを離すと、指が写り込んだり、自撮りらしいダイナミックなパースではなくなってしまう……。

我々はこの問題に長年悩まされてきました。

今回、この問題を解決する手法「Depth-Adaptive FOV」を思いついて実装してみたので紹介します。

できたもの

まずは基準として、通常の自撮り画像をお楽しみください。

FOV: 60

かわいいですね。かわいいんですが、ちょっとデカすぎると思ったのでさらに広角にしてみます。

FOV: 80

いい感じですね。

このアバターだと私はそこまで気にならないんですが、FOV 80 というのはあまりやりたくない方も多いんじゃないかなと思います。FOV 60 に戻して、カメラを奥にずらしましょう。

FOV: 60, offset: 0.15

いいですね。ただ手が届いてなくて、指が写ってしまっています。これはちょっと残念です。

ここで今回紹介する Depth-Adaptive FOV の出番です。

カメラの位置を戻して、FOV は 120 (!) に設定します。そして Depth-Adaptive FOV を適用すると……

Depth-Adaptive FOV 120-60 (Distance: 0.1)

Depth-Adaptive 有無で比較するとこんな感じ。

FOV: 80 と Depth-Adaptive FOV 120-60 の比較

FOV: 60 と Depth-Adaptive FOV 120-60 の比較

最高です! カメラの位置はずらさずに、ほぼ FOV 60 の見た目のまま、FOV 80 のときと同じくらいの大きさになりました!

手法の解説

「距離に応じて、FOVを変える」

これです。

疑似式としてはこんな感じ。

t = depth / (depth + _FarDistance)
effectiveFOV = lerp(cameraFOV, _FarFOV, t)
  • depth = 0 のとき t = 0 → カメラのFOV
  • depth = _FarDistance のとき t = 0.5 → 中間値
  • depth → ∞ のとき t → 1.0 → 遠距離FOV

次の画像はカメラの視錐台として可視化したものです。

緑の線が Camera FOV: 120, Far FOV: 60, Far Distance: 0.5 の Depth-Adaptive FOV の視錐台です。 (これを本当に錐台と言っていいのだろうか?)

カメラに近いところでは 120度に近く、徐々に60度に近づいていってることがわかります。

このように、カメラから離れるほど目標視野角に近づくカメラによって、狙った視野角と描画範囲を実現します。

実装

コードは↓にあります。(claude code に書いてもらいました)

github.com

今回は vertex shader で実装しました。

アバターのマテリアルのみで対応可能です。反面、すべての被写体に共通の設定がされていないと整合しないので、ユースケースは限定的かもしれません。

おわりに

Depth-Adaptive FOV は、アバター自撮りにおける「広角のダイナミックさ」か「モデルにとってベストな視野角」かというジレンマを解消できるかもしれません。

この記事がアバター自撮り界隈の一助となれば幸いです。

(hatracker への実装は、検討中です)


明日 (4日目は空いていて、5日目) は chouge さんの「なんか」 は獏星(ばくすたー)さんの 「無職期間(5ヶ月)の振り返り」 です。趣ですね。

個人事業主として開業しました

2月末に退職 してから2ヶ月間 (有給消化も含めると実質3ヶ月) の無職期間を経て、5/1 付けで開業してました。

本当は半年くらい無職したかったんですが、あまりにも面白いお仕事が舞い込んできてしまい、このような運びと相成りました。 ねおりんの無職酒カスムーブを楽しみにして頂いた皆様におかれましては、ご期待に沿えず申し訳ございません。

そういうわけで、当面は忙しくさせてもらう予定です。ありがたいことです。

お仕事のご依頼はうれしいですが、お請けできる内容は (時間的に) かなり限定的になりそうです。 スポットならワンチャンあるので、なにかお手伝いできそうなことがあればお気軽にご相談ください。

それはそれとして、hatracker の開発も止めるつもりはないのでご安心ください。 (さすがに無職期間ほどの頻度でアプデはできませんが……) ストアリリースへ向けた準備と開発を進めています。お楽しみに!