タグ

Unityに関するhecomiのブックマーク (277)

  • 解説: Just a Pool

    VRChat world "Just a Pool" has been released! 少し前に Just a Pool という VRChat のワールドを公開しました。この記事では裏の色々な話や技術解説などを書いていこうと思います。 ワールド探索系の話でなくて恐縮なんですが、この記事は VRChatワールド探索部 Advent Calendar 2022 の20日目の記事になっています。 ワールドについて 名前の通りプールが置いてあるだけの小さなワールドなんですが、水がリアルに動きます。そして触れます。 ただ「リアルな水とVRで触れ合いたい!」という欲望のために作られたようなワールドで、心ゆくまで水遊びを楽しむことができます。水鉄砲やポータルといった遊び道具も置いてあるので、多人数でわいわいするのにも向いているかと思います。よくみんなで遊んでいる様子が Twitter に流れてくるの

    解説: Just a Pool
    hecomi
    hecomi 2022/12/21
    すごすぎ
  • UnityのTimelineを使ってMV製作した話 - kugi's notebook

    はじめに こちらの記事はUnityゲーム開発者ギルド Advent Calendar 2022の11日目の記事です。 adventar.org 今回はUnityのTimelineを用いてMV制作を行った話について書こうと思います。 はじめに NaTsu Beats TimelineでのMV制作 全体の流れ 場面の転換 背景スクロールについて 背景スクロール用のTimeline拡張 Timeline再生時のスクロール Timeline停止時のスクロール 背景スプライトの切り替え 地面のつながりを表現するシェーダー 曲のリズムに合わせたキャラクター、小物の動き 時間変化に合わせた空と色調補正について 空の表現について 色調補正について まとめ NaTsu Beats 今年の1月ごろから趣味で楽曲制作を始めました。 www.youtube.com 是非チャンネル登録をお願いします!! 制作を

    UnityのTimelineを使ってMV製作した話 - kugi's notebook
    hecomi
    hecomi 2022/12/11
    知見が詰まってる
  • 結婚式のプロフィールムービーを Unity で作ってみた - 凹みTips

    はじめに 私事で恐縮ですが、先日、コロナ禍で 2 年半ほど延期していた結婚式をしました。そこでのプロフィールムービー制作を Unity でやってみましたので、記事ではそのお話をしようと思います。 過去に友人結婚式のムービー制作を任された時は After Effects か Premiere で作っていたのですが、それぞれ 1 冊読んだ程度なので、自分の能力的にはスライドショー的に画像や文字を配置する程度が限界でした。自分たちのものはスプラトゥーン風のムービーにしたいなぁと思い、もう少し色々やれるかも & 勉強にもなるかもと思って Unity でやってみることにした次第です。プライバシーの関係でムービーの共有はできないのですが...、部分部分を簡単にご紹介したいと思います。 概要 基方針は次のような感じです。 全体は Timeline を使って作成 出力は Unity Recorde

    結婚式のプロフィールムービーを Unity で作ってみた - 凹みTips
    hecomi
    hecomi 2022/11/30
  • uLipSync 内の AudioClip をトリミング・再生するスクリプトの解説 - 凹みTips

    はじめに 今回は小ネタです。uLipSync のキャリブレーション用にオーディオデータの選択した範囲のループ再生機能を作ったのですが、その内容をまとめておきます。元記事はこちら: tips.hecomi.com 機能について こんな感じでドラッグして再生したい箇所を選択、クロスフェード具合を調整して、Play を押すと選択範囲がループ再生されるというものです。uLipSync のキャリブレーションでは現在再生されている音を解析するため、このような仕組みが必要でした。 解説 選択された音をトリミングした AudioClip を生成するランタイムコード部と、どこをトリミングするか選択する UI の部分のエディタコード部があります。コード全文はリポジトリからご参照ください。 github.com ランタイムコード まずはランタイムコード部からですが、それほど長くは無いので全文を貼ってみます。 u

    uLipSync 内の AudioClip をトリミング・再生するスクリプトの解説 - 凹みTips
    hecomi
    hecomi 2022/10/31
    来月の記事はがんばります...
  • Unity の WebGL で動的にサウンドを生成・再生する方法を調べてみた - 凹みTips

    はじめに 通常、Unity で動的にサウンドを生成したいときは、AudioClip の Create で PCMReaderCallback を渡すか、MonoBehaviour の OnAudioFilterRead 中でバッファをセットすることで可能です。 docs.unity3d.com docs.unity3d.com かなり古い記事ですが、以前解説も書きました(一部有料機能と述べているところは現状はすべて無料です) tips.hecomi.com AudioClip に SetData して再生することも出来ますが、初期化時ではなく毎フレームデータを与えたい場合はこれは利用できません。正確にはセットして再生はできるのですが、サウンドの読み取り・再生自体はサウンドのスレッドで行われているため、Update などのメインスレッドから与えるとうまく再生されない(途切れたりする)からです

    Unity の WebGL で動的にサウンドを生成・再生する方法を調べてみた - 凹みTips
    hecomi
    hecomi 2022/09/30
    書きました
  • uLipSync で 2D キャラクタ向けにテクスチャや UV を変更できるコンポーネントを作った - 凹みTips

    はじめに Unity でリアルタイム / 事前解析対応のリップシンクを行うためのプラグインである uLipSync ですが、これまでは付属スクリプトとしては BlendShape を操作するものしかありませんでした。テクスチャを使った立ち絵などをリップシンクさせたい場合は、自分で Custom Event の仕組みを使って作る必要がありました。 github.com しかしながらこういったユースケースへの要望を時折見かけたので、テクスチャ更新向けのスクリプトを作成することにしました。 なお、uLipSync の基的な使い方については以下のエントリをご参照ください。 tips.hecomi.com コード github.com 執筆時点では v2.4.0 が最新となります。Sprite の対応やタイルテクスチャを使った UV のためにアニメーション作成機能も追々作成していきます。 デモ こ

    uLipSync で 2D キャラクタ向けにテクスチャや UV を変更できるコンポーネントを作った - 凹みTips
    hecomi
    hecomi 2022/09/01
    書きました
  • uRaymarching の Depth Prepass 対応をした - 凹みTips

    はじめに 以前の記事で uRaymarching の URP における Depth Prepass 問題を挙げました。 tips.hecomi.com Depth Prepass が有効になっている際は、Depth は事前に DepthOnly パス(または DepthNormals パス)で出力され、実際に色を決定する ForwardLit パスでは ZTest Equal かつ ZWrite Off で描画されます。最終的に他のポリゴンで覆われてしまうようなピクセルの重い計算を省略できるメリットがあります。詳しくは公式動画をご覧ください。 logmi.jp 通常は頂点シェーダから渡ってきた情報から自動的にデプスが計算され ZTest Equal が成功しますが、uRaymarching では SV_Depth セマンティクスを使ってこのデプスをいじっています。この結果、計算結果のデプス

    uRaymarching の Depth Prepass 対応をした - 凹みTips
  • uLipSync の Timeline エディタのパフォーマンス改善を行ってみた - 凹みTips

    はじめに 先日、uLipSync のタイムラインの機能で長いデータを割り当てるとパフォーマンスが低下する、とのコメントを頂きました。実際に 3 分程のクリップを割り当ててみると顕著にパフォーマンスが落ちています。 原因を調べてみると、どうやら波形描画に用いている AudioCurveRendering の実行が重いようです。これはアンチエイリアスつきの波形描画を行ってくれるものなのですが、テクスチャを返す API ではなく、指定した領域(Rect)に波形画像を描画するものになります。そのためキャッシュもできず、描画更新が起こるタイミングで毎回生成処理が走ってしまいます。 そこで、今回はこのテクスチャを自前で生成することで処理の改善を試みてみました。愚直な Texture2D.SetPixels() を使う方式から Texture2D.GetPixelData() の利用、そして Job +

    uLipSync の Timeline エディタのパフォーマンス改善を行ってみた - 凹みTips
    hecomi
    hecomi 2022/06/30
    Burst + Job でお手軽に対応できる API 追加(Texture2D.GetPixelData())便利ですね。
  • uRaymarching の URP 向け機能更新をしてみた(Deferred / SSAO / Decal / Clear Coat) - 凹みTips

    はじめに 前回の記事で、Deferred を始めとする URP の新機能の調査を行いました。 tips.hecomi.com 記事ではこの調査をもとに更新した uRaymarching の各機能やどういう処理が内部的にされているか、また注意事項などを紹介します。いくつか前回の記事と重複するところもありますが、ご了承ください。 ダウンロード github.com Depth Normals まず、DepthNormals パスの追加を行いました。これは深度だけでなく法線も必要な機能が選択された時に実行されるパスです。これが直接ユーザーの目に見えるわけではありませんが、例えば後述する Renderer Feature の SSAO の Source に Depth ではなく Depth Normals を選択したときや、Decal を ON にしたときに使われます。 レイマーチングに対して

    uRaymarching の URP 向け機能更新をしてみた(Deferred / SSAO / Decal / Clear Coat) - 凹みTips
    hecomi
    hecomi 2022/05/31
    更新しました
  • URP に新しく追加された Deferred レンダリングなどについてざっくりと調べてみた - 凹みTips

    はじめに 先日 Unity 2021 LTS が発表されましたね。 blog.unity.com Unity 2021 には数多くの機能追加がありますが、このうちの一つが URP への Deferred Rendering の正式サポートです(実験的に以前から追加はされていたようです)。 docs.unity3d.com ドキュメントはこちらです。 docs.unity3d.com ブログではレンダリングパイプラインを読んでいこう企画を何度かやってまして、URP も Unlit / Lit (Forward) については以下の記事を書きました。 tips.hecomi.com 今回は続きで、Deferred を始めとして、前回執筆時から更新があり追加された DepthNormals パスやデカールなどについて書いていこうと思います。ただし、今回は、マクロの分岐なども含めてものすごい深堀り

    URP に新しく追加された Deferred レンダリングなどについてざっくりと調べてみた - 凹みTips
    hecomi
    hecomi 2022/04/30
    久しぶりに調査記事書きました
  • uLipSync でリップシンクの事前計算およびタイムライン対応をしてみた - 凹みTips

    はじめに 昨年に Unity 上でリアルタイムにリップシンクを行う uLipSync というものをリリースしました。 tips.hecomi.com AudioClip の入力を Job System と Burst コンパイラを利用してリアルタイムに解析して MFCC と呼ばれる特徴量を抽出し、予めキャリブレーションして作成しておいたプロファイルと照らし合わせて一番近い音素を推定、それをブレンドシェイプへと反映させる、という仕組みのものでした。ただ、マイク入力など、その場で毎回異なる音声波形が与えられる場合は良いのですが、歌やカットシーンのような予め決まった音源があるケースにおいてはリアルタイムに計算する必要はなく、結果を事前に確認できるという利点の上でも処理負荷削減の面でも、予め計算しておけると便利です。 そこで、今回新しく事前計算を行う仕組みを導入し、またタイムラインの対応も行いまし

    uLipSync でリップシンクの事前計算およびタイムライン対応をしてみた - 凹みTips
    hecomi
    hecomi 2022/01/30
    ドキュメント書き直すのが大変でした
  • Unity で自作ライブラリの Package Manager / Scoped Registry 対応をしてみた - 凹みTips

    Unity Advent Calender 2021 この記事は「Unity Advent Calendar 2021」19 日目の記事です。 qiita.com 18 日目は @Azukiidxさんによる以下の記事でした。 qiita.com 私は(残念ながら非推奨になってしまった)UNET のサーバー向けに Linux 上でヘッドレスで動かすビルドを作ったことはありましたが、Linux 上で動くエディタはまだ試したことはありませんでした。Linux の開発環境やサポートが必要になったら試してみようと思います。 はじめに 前々回の記事で、自作ライブラリの Package Manager(UPM)対応についての記事を書きました。 tips.hecomi.com Package Manager の登場により、元々はビルトインだった数々の機能(e.g. URP/HDRP などの新レンダリングパ

    Unity で自作ライブラリの Package Manager / Scoped Registry 対応をしてみた - 凹みTips
    hecomi
    hecomi 2021/12/19
    今年も書けました
  • uOSC v2 をリリースしました - 凹みTips

    はじめに uOSC は、Unity 向けの OSC 実装です。数ある Unity 向け OSC 実装の中でもシンプルな使い方が出来るように目指して作ったものでした。 tips.hecomi.com github.com EVMC4U を始めとし、思っていたよりも多くのプロジェクトにて使っていただいており嬉しい限りです。しかしながら長らく動的なアドレスやポート変更といった単純な機能も対応しないままになっていました。。そこで前回のエントリにて UPM 対応のためのメンテをして久しぶりに触ったのもあり、色々足りなかった機能の追加を行うことにしました。エントリでは新しくなった uOSC v2 の使い方について紹介していきます。 アップデート内容 詳しくは各章で書きますが、v1 からは以下の内容が更新されています。 後方互換性はキープ(v1 用に書いたコードはそのまま動きます) 動的なアドレスやポ

    uOSC v2 をリリースしました - 凹みTips
    hecomi
    hecomi 2021/11/30
    メンテしました
  • Unity で .unitypackage で配布していたアセットを Package Manager 対応してみた - 凹みTips

    はじめに 先日 Package Manager 対応のプルリクをいただいたきました。恥ずかしながら今まで Package Manger の対応およびその調査はサボってきており、あまり知識がない状態でしたので、これを機に色々と調べて配布する側としての自分なりの利用方針を決めていこうと思いました。以下、Unity Package Manager を省略して UPM と書きます(公式では一部を除き*1あまり UPM という表記は使われていないようですが、開発者の間では普通に使われている印象です)。 エントリでは、既に色々配布しているライブラリがある上での立場から UPM についての調査を行った内容をまとめます。また、その上で自分は GitHub Actions を使ったパッケージのリリースを行う方針に決めたのですが、その道筋や具体的なコードを紹介していきます。 UPM の基 UPM そのもの

    Unity で .unitypackage で配布していたアセットを Package Manager 対応してみた - 凹みTips
    hecomi
    hecomi 2021/11/01
  • Unity で DICOM 画像をレンダリングしてみる - 凹みTips

    はじめに 先日、Twitter で手持ちの DICOM 画像を以前書いたボリュームレンダリングの記事のように描画したい、というご相談をいただき試してみましたので内容を共有します。 tips.hecomi.com DICOM(ダイコム)とは「Digital Imaging and COmmunications in Medicine」の略で、CT や MRI などのデータを保存する画像や通信プロトコルといった医用の標準規格です。今回の場合は、MRI のスライス画像が DICOM という形式のもと保存されているといった状況で、それをどうレンダリングすればよいのか、というお話でした。 ja.wikipedia.org デモ ダウンロード github.com 情報収集 Unity で DICOM を扱うことに関してはインターネット上にいくつか情報がありました。 Unite Tokyo 2018

    Unity で DICOM 画像をレンダリングしてみる - 凹みTips
    hecomi
    hecomi 2021/09/27
    書いた
  • r/Unity3D - Finished up an underwater rendering extension for my water asset, now up for grabs on the asset store!

    hecomi
    hecomi 2021/08/15
  • Unity で URP 向けのファーシェーダを書いてみた(動き・アニメーション連携) - 凹みTips

    はじめに 毛の連載も 4 回目になりました。これまでの記事は以下になります。 tips.hecomi.com tips.hecomi.com tips.hecomi.com これまでは風による動きを Sin 関数でそれっぽくしてましたが、今回は実際に頂点毎の動きを見て動かしてみることをやってみましょう! デモ © UTJ/UCL ダウンロード github.com 戦略 毛を動かす方法は色々あるとは思います。例えば一番簡単な方法では、transform.position を基準とするバネを接続したモデルを考え、この変位分をこれまでの方法で見てきた _BaseMove という毛を曲げるパラメタに突っ込めば移動に対して毛が動くようになります。しかしながらこの方法では物体の回転やアニメーションといった動きに追従できません。これらを見るには頂点単位で毛の動きのシミュレーションを行う必要があります。

    Unity で URP 向けのファーシェーダを書いてみた(動き・アニメーション連携) - 凹みTips
    hecomi
    hecomi 2021/08/14
    フサァ...
  • Unity で URP 向けのファーシェーダを書いてみた(毛ポリゴン生成) - 凹みTips

    はじめに URP でのファーシェーダの実装について、シェル法とフィン法について見てきました。 tips.hecomi.com tips.hecomi.com 最後は直接ジオメトリシェーダで毛ポリゴンを生成する方法を試してみます。 デモ ライティング 3 手法の比較 左から順に、シェル法、フィン法、今回の毛ポリゴン生成です。 ダウンロード github.com 概要 シェル法では外殻を重ねていって毛を作り出しました。テクスチャで毛の密度が制御できたり、既存のポリゴン形状を意識しなくてもフサフサが作れ、また増やす層の数で見た目とパフォーマンスのトレードオフも調整しやすいものです。一方で横から見ると層が見えてしまいドット感が見えてしまうため長い毛が作れないのが最大の難点でした。 フィン法は毛ヒレを表面に生やしていってヒレに毛のテクスチャを貼り付けることで毛を表現する手法でした。毛のテクスチャでい

    Unity で URP 向けのファーシェーダを書いてみた(毛ポリゴン生成) - 凹みTips
    hecomi
    hecomi 2021/08/12
    また毛を生やしました
  • Looking Glass Portrait を手に入れたので Unity 向けの仕組みを調べてみた - 凹みTips

    はじめに 遅ればせながら Looking Glass Portrait を手に入れました。 lookingglassfactory.com クラウドファンディング開始からしばらくして気づいてバックしたので入手できるタイミングが第一陣の方々に比べ遅くなってしまいましたが…、ようやくといった感じです。自分は以前のバージョンは買っておらず、イベントなどで見る限りでしたが改めて家でじっくり見てみると裸眼で 3 次元に見えるのは面白いですね。 やったー!やっと Looking Glass Portrait を手に入れたゾ #LookingGlassPortrait pic.twitter.com/q87pA9dV3v— 凹 (@hecomi) 2021年7月31日 記事では、Unity で Looking Glass Portrait を使ってサンプルを動かしていく上で気づいた点をメモ書きしていき

    Looking Glass Portrait を手に入れたので Unity 向けの仕組みを調べてみた - 凹みTips
    hecomi
    hecomi 2021/08/10
    書いた
  • https://www.artstation.com/artwork/QO9aE