C++幼女先輩

プログラミング成分多め

UNITY

UNITY Editor拡張で、タイムラインをスクリプトから生成する

お題 タイムラインを自動生成しよう トラックやクリップも外から作成してみます それに伴い、エディタ拡張の勉強 メニューよりEditorWindowを表示 とりあえず最も汎用的な?メニュの拡張から メニューの拡張 Editor拡張で最も使われると思うので、よーく覚え…

CreatePlayable周りの調査。AssetからBehaviourを、BehaviourからBindingを参照したい

CreatePlayable周りがちょっとややこしかったので調査 まず初めに断っておくが、本来はMixerを作るのがベストだが、今回はあえてMixerを作らずに頑張ってみる ScriptPlayable var playable = ScriptPlayable<NewPlayableBehaviour>.Create(graph); var trackBinding = go.GetCompon</newplayablebehaviour>…

UNITYタイムライン PlayableTrackとBinding

PlayableTrack プログラマとしては本題! 独自の処理をするトラックを作ります 用途はほんと色々あります だいたい仕事では8割以上はこのカスタムトラックでタイムライン作るかも Track、Asset、Behaviour、Mixerの4つで構成されます PlayableTrack カスタム…

UNITYタイムラインをカスタマイズするよ

タイムラインとは ムービーシーンとかカットシーンと呼ばれるもの カメラワーク、モーション、エフェクト等を定義しておき、実行時にキャラをバインドする事で 同じ動作のムービーを別キャラ(別衣装)で行うことが出来る 例えばモンハンのムービーシーンの…

【UNITY 2020.2.6f1】Cinemachine FreeLookカメラでTPS操作をする。New InputSystemにも対応

Cinemachineとは UNITYの提供するカメラ制御のコンポーネント Cinemachineのインストール PackageManagerよりインストールをする その後メニューから Cinemachine-Cinemachine FreeLook を選ぶ シーンに CM FreeLook1というGameObjectが作成されており、Cine…

【UNITY 2020.2.6f1】New Input System(1.0.2)を使ってみる

New Input Systemについて 新しい入力が出来ました 引き続き旧来の入力方法を使う事が出来ますが これを期にInputSystemを覚えようと思います 旧来の方法 旧来のInputではInputManagerのAxes 下記のように入力を取得していました h = Input.GetAxis("Horizon…

UNITY シェーダーのmulti_compileの #ifdefに or条件を

非常に単純なのでちらっと UNITYでシェーダーをmulti_compileで #ifdefを書きますが、例えば USE_AとUSE_Bがあり、どちらかが宣言されている場合有効にしたい そんな時に #if defined(_USE_A) || defined(_USE_B) ... #endif と、C言語のように書けばOKでした…

UNITY 2018.3 Timelineで遊ぶ。 任意のタイミングでカットインを実行させる

攻撃して敵が吹っ飛ぶようなのつくる 前回まで UNITYちゃんをタイムラインで動かした 攻撃してみる Unityちゃんのアニメーションを合成 まずUnityちゃんにクリップを追加します とりあえず、移動後にWin00を再生させる Clipを重ねると補完してくれます Cube…

タイムライン使ってみる AnimationClip Unity2018.3

タイムラインとは Unity2017のあたりでPreviewで入った機能 カットシーンやリアルタイムムービーシーンの再生等で使う 単純に決められたムービーの再生だけではなく、今のシーンからシームレスにオブジェクトを動かしたり可能 また、エディタ拡張でClassを派…

UNITY StandardAssetを使う

久々にUNITYを使ったら StandardAsset周りで苦労したので Import 昔はメニューの Assets->Importから StandardAssetをImport出来ていたが、今はメニューにない AssetStoreから StandardAssetを検索しダウンロードして Importする エラー StandardAssetをImpo…

UnityのマルチプレイヤーネットワークAPIについて

種類 UNet UNITYの5.1から入ったおなじみのAPI こうレイヤーのHLAPIと低レイヤー LLAPIがある が、これは間もなく廃止予定だ blogs.unity3d.com Multiplayer 次世代のネットワークAPI だが、フォーラムによると、まだ機能的にはしょぼいらしい 2021年にはUne…

UNITY DrawCall調査 GPU Instancing ~ UNITY2018.3.6f1 ~

UNITYのパフォーマンスの鍵は昔からDrawCall削減といわれている 今はSetPassとともに語られるようになった まず、DrawCall、SetPassとは何か? それらを減らす方法は? GPUインスタンシングとは何か? から、GPUインスタンシングで減らすのを調査した qiita.…

今更ながらLINQを初めて使ったが便利だった

qiita.com 前々から使いたかったLINQをこの際なので使ってみた 予想以上に使いやすく、これからはForループみるたびにLINQにするか考える必要があるね

UNITYで影にテクスチャをはる(スクリーンスペース)

やること 影にテクスチャを張っていこうと思います 具体的には、戦場のヴァルキュリアのような影部分にスクリーンスペースで ハッチングかけます わかりいくいけど、影部分にハッチングいれてます ソースはこちら github.com 考えられる手法 マルチレンダー…

UNITYの影調査

先程まででUNITYの影の作成ができましたが 今回はもう少し調査してみます 通常表示 ShadowCasterパスを追加し、ちゃんと影を表示できてます 影のみ表示させてみる 影のみは SHADOW_ATTENUATION で取れる 今回は R要素のみに SHADOW_ATTENUATION値を入れる フ…

UNITYで影を受け取る

前回は影を落としましたがまだこのシェーダでは影を受け取れません 地面(Plane)メッシュのシェーダーを 今使ってる yUnitに変えると影はおちないし、セルフシャドウもありません 今回は影を受け取るようにします https://github.com/YukiMiyatake/UnityLes…

UNITYで影をつくる〜ShadowCaster

UNITYでは簡単に影を落とせます 具体的には ShadowCasterパスにて #include "UnityStandardShadow.cginc" とするだけです CUBEMAPや各種設定に対応するため 上記の用意されたものを呼ぶ あるいは その中身をみて ビルトイン関数を使うべきですが 勉強のため…

UNITYちゃんトゥーンシェーダー2.0(UTS2.0)を調査

UNITYちゃんトゥーンシェーダーとは 現ユニティーテクノロジー ジャパンの小林さんの作ったトゥーンシェーダー 元々映像用に作ってあり かなり立地な表現が可能 GGXrdのトゥーンシェーダーがすごく、それを再現したようなシェーダー 今は更に機能が追加され…

UNITYシェーダー研究 Vertexライティング?

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_7 はじめに 前回まではピクセルシェーダにてライティング計算をしていました これはクオリティの高いライティングになりますが、少し処理が重くなるので ディフューズカラー、スペキュラを…

UNITYシェーダ研究 複数ライトの影響

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_6 前回まで 前回はAmbientも入れて だいたいライティング出来た ただ、複数ライトを置いても1つ目のライトの影響しか受けない ので、複数ライトの影響をうけるようにする ライトの強さ 複数…

UNITYシェーダ研究 Ambient

コード https://github.com/YukiMiyatake/UnityLesson/tree/Shader_5 前回のシェーダ ディフューズとスペキュラを実装し、だいぶライティングができた テクスチャマッピングもしている でも、Ambientも与えていません Ambientの設定 UNITYのバージョンにより…

UNITYシェーダ研究 Lambertモデル実装

前回は 新規で作ったUNITシェーダの説明したので 簡単なシェーダ作ります コードはココ https://github.com/YukiMiyatake/UnityLesson/tree/Shader_3 基本シェーダ(Albedo) 先ほどのシェーダからFOGを削除しシンプルにします テクスチャは・・・雰囲気欲しい…

UNITYシェーダー研究 UNITシェーダを読む

今回のソース https://github.com/YukiMiyatake/UnityLesson/tree/Shader_2 前回のあらすじ Surfaceシェーダを新規で作る 中野シスターズに適用 Surfaceシェーダの解説 たいした内容じゃなくてすみません でも 初歩からやりたいの UNITシェーダを適用する 本…

UNITYシェーダー研究 環境構築~サーフェースシェーダ軽く

このソースは GitHub - YukiMiyatake/UnityLesson at Shader_1 はじめに UNITYのシェーダの知見が少したまってきたので、自分でアウトプットしておかなければ忘れてしまう ので メモをしていたが もっと基礎から知りたいという人が多かったので 超基礎からや…

トゥーンシェーダ―作ってみる 

トゥーンシェーダ―作りたい シェーダーの色々な知見が出来たので少しずつメモ 中野シスターズ まず 中野シスターズをダウンロードしてくる 詳細は省略するが、ダウンロードして UNITYにインポートしシーンに配置する 暗いので、今後色々と遊ぶので ポイント…

UNITYでDepthをリニアでEXR形式で出力

概要 Depthマップ欲しい事は多いと思います Depthの取得自体は簡単ですが、Depthの計算上 Z値とリニアで変化しないため感覚的にわかりにくいので リニアにしたい DepthをPNGファイルにすると 256段階に丸められてしまうため、浮動小数点形式で保存したいので…

RenderTextureを使いレンダリング結果をTextureに保存する

レンダリング結果をテクスチャでほしい事ってありますよね 例えばレンダリング結果を鏡にうつしたり G-Bufferをファイルに保存したり ってことで、RenderTextureを作り カメラにAttachし、レンダリング結果を取得します まず RenderTextureをCreateします Mu…

UNITYのライト消したいの巻

まずデフォルト UNITY-Chanと中野シスターズを表示してみる ライトはディレクショナルライトいれて ドーン ここからライトを消していきます Directional Light OFF UNITYちゃんは真っ黒になったけど、中野シスターズも背景も光があります これは UNITYはデフ…

UNITY ScriptableRenderLoop アウトラインのミス

前回調べた時に ポストエフェクトのアウトラインが入っていた・・・ EdgeDetectionというやつだ なので、Unity-chanシェーダーのアウトラインではなく ポストエフェクトのアウトラインが入っていた たしかこれはDepthや法線でアウトラインを出すタイプだった…

UNITY EdgeDetection

ふと気になった 先ほど出力した画像のSphereに アウトラインが付いている・・・・・ なぜだ?? カメラに EdgeDetectionってやつがいた! こいつ怪しい! ってことで こいつをOFFしたら、Sphereのアウトラインが消え Unity-Chanのアウトラインが、カラー反映…