20200515のUnityに関する記事は7件です。

シンプルなImageEffect その8。VPOSを使った走査線

Twitterにアップした走査線ImageEffectのシェーダコードを貼っておきます

ポイントは

  • VPOSを使っているので #pragma target 3.0が必要
  • _Sizeの値を調整する事で走査線の太さを変更できる(ただ、そんな機能必要かな??普通太さ1pxでは?)
  • 走査線は固定色で潰すのではなく、colorの2乗で明度を落としつつ彩度を上げるような合成にして滲みを表現してみた

って感じですかね。

ScanLine.shader
Shader "ScreenPocket/ImageEffect/ScanLine"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _Size ("Size", Float) = 1
    }

    SubShader
    {
        // No culling or depth
        Cull Off ZWrite Off ZTest Always

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #pragma target 3.0

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
            };

            v2f vert (appdata v,
            out float4 outpos : SV_POSITION)
            {
                v2f o;
                o.uv.xy = v.uv;
                outpos = UnityObjectToClipPos(v.vertex);
                return o;
            }

            sampler2D _MainTex;
            float _Size;

            fixed4 frag (v2f i,
                UNITY_VPOS_TYPE screenPos : VPOS) : SV_Target
            {
                half4 col = tex2D( _MainTex, i.uv );
                float rate = frac(screenPos.y * ( 1.0 / _Size ));
                col = lerp( col, col*col, round( rate ) );
                return col;
            }
            ENDCG
        }
    }
}

線を固定の色(例えば黒)で塗りつぶしたい場合は col*col の部分を、fixed4(0,0,0,1) に置き換えてもらえば対応可能かと。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

無料でUnityをバージョン管理する!その3 ローカルsvn編

kuchikomi976_TP_V.jpg
今回はGitでローカル管理を紹介しようと考えておりましたが、検証した結果…問題があることが発覚しました!

なので今回は代替案としてローカルsvn(Subversion)でUnityを管理する方法を紹介したいと思います。実は個人開発の場合、こちらの方が楽かもしれないのでぜひ試してみてくださいね。

ブログ本文はこちらです。
https://tedenglish.site/how-to-manage-unity-project-3/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

無料でUnityをバージョン管理する!ローカルsvn編

kuchikomi976_TP_V.jpg
今回はGitでローカル管理を紹介しようと考えておりましたが、検証した結果…問題があることが発覚しました!

なので今回は代替案としてローカルsvn(Subversion)でUnityを管理する方法を紹介したいと思います。実は個人開発の場合、こちらの方が楽かもしれないのでぜひ試してみてくださいね。

ブログ本文はこちらです。
https://tedenglish.site/how-to-manage-unity-project-3/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Addressables.LoadAssetAsync を aync/await でスッキリ書く

こんにちは。Unity使い始めて1ヶ月ほどの初心者です。

外部リソースの読み込み事情が面倒すぎて心が折れそうですが
AAS(Addressable Assets System) を試しているところです。

今回はAASでのアセット読み込みを async/await でスッキリ書けたのでメモします。

Addressable Assets System でのアセット読み込み

AASではResources のように同期処理で読み込むメソッドが無く、
基本的には Addressables.LoadAssetAsyncで非同期に読み込むみたいです。

公式ドキュメントによると、以下のように読み込み完了時のイベントハンドラで目的のアセットを取得するよう書かれています。

Addressables.LoadAssetAsync<GameObject>("AssetAddress").Completed += OnLoadDone;

async/await を使って書いてみる

もっとスッキリ書けないかなーと模索していましたが、
.Task プロパティが用意されていて、async/await で書けます。

GameObject prefab = await Addressables.LoadAssetAsync<GameObject>("HogePrefab").Task

参考

Addressable Assets Systemを完全に理解する

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【気づきメモ】モデリング初心者が"【鬼滅の刃】炭治郎モデリング【MAYA】"で作り方を学ぶ

My Name is Izumi.月森イズミです。

【鬼滅の刃】炭治郎モデリング【MAYA】動画のモデリングの出来が素晴らしかったです。
そこで一体どんなことをやっているのか、気になりました。

【鬼滅の刃】炭治郎モデリング【MAYA】
(https://www.youtube.com/watch?v=q2HJXGssb4Q&feature=youtu.be)


このメモの想定読者は、モデリングソフトを数回触ったことのあるモデリング初心者です。
あたし自身、専門的な知見はありません。その点ご留意いただければと思います。

使うモデリングソフトはmayaが好ましいと思います。しかし工程を脳内変換できる方であれば、他のソフトでも可能かと。
動作実行ソフトはUnityを使っています。


以下、動画を見た制作過程のメモです。

全工程

0:08 分割1のキューブを分割1でスムーズ化して顔を作っている
0:11 シンメトリの軸をオブジェクトxにしている

0:12 右上のツール選択表示ボタンから、ツール選択ウィンドウを表示している
image.png

ツール選択ウィンドウから、ソフト選択を使っている(減衰率は1)

アトリビュートエディタよりオブジェクトの透明度を繁文に下げている

顔正面

0:21 ソフト選択と、エッジループ(ソフト選択)を使って、顔の大きさを調整している
メッシュ表示からソフトエッジを選択している(様子)

横顔

減衰半径2.56のソフト選択をしている
減衰半径1と2.56を行ったり来たりしている

首まわり

減衰半径7または13のソフト選択をしている

(耳が急に現れた( ̄▽ ̄;))

唇、目の枠を調整している
唇は大きめに取り、下絵の線が最も底部になるように

鼻下は多角的に見て作っている

下絵と違って、耳の前を持ち上げている

唇に神経を払っている

テクスチャ

下絵をテクスチャに投影している

UV>平面>投影マニピュレータから
フィット対象:バウンディングボックス
投影元:Z軸(デフォーマの前に投影をチェック)

白目、黒目は別パーツずつ(球体)
球体の中心は、瞳の中心に

ライティングからフラットライトを充てている
白目を消して、下絵の白目でも違和感ないか確認している

黒目は奥行をつぶして楕円にしている
まぶたをかぶせている

既定のライティングの使用を使って確認している

まつ毛

右にまつ毛を付け、左はまつ毛無し
右でまつ毛の形を調整し、ミラーリングした左で、顔の形を調整している

眉毛

眉毛は飛び出している
少し浮かせている
ワイヤーフレームつきシェードで確認している

髪の毛

髪の毛は顔より荒い
縦9分割、横2分割程度で作っている

減衰半径2で調整している
髪と一緒に目も調整している
髪の先は凹にそらせている

真っ黒に(テクスチャを充てて)全体シルエットを確認している

もみあげは合成して、横2分割から調整している部分がある

髪のポリは放射状に構成されている

白目のシャドーを入れている

#ボディ
(ボディが急に現れたヾ(;´▽`A``))
洋服は、押し出しオフセットを使って、後で内側を消している

バックルへのこだわりすごい!

歯を作っている

目の堀を単色で塗っている

下絵の色をコピーして、髪のテクスチャを作っている
マルチカットして、ハイライトする部分を作っている
色マップにUVを置いている(UVマップを描くのではなく、配置している)

基本的に、シャドーや色が変わる部分をマルチカットしてポリを作り、テクスチャを張っている!

千鳥格子の境目にポリがあたらないようにしている

ヒストリを削除した

リグ

15:32 なんか致命的なエラー出た。
(リグを読み込んだ?)

耳の中のラインを描いた

下絵から切り取ってボタン、ピアスを描いた

リグのボーンを伸ばして、アウターと接続した

ここまでmaya

Unity

シェーダーはUnity拡張エディタである、Shader Forgeを使っている様子

EverydayMotion Pack Freeアセットを使って走らせた。

mayaに戻って、コンポーネントエディタでリグの位置を数値で調整した。

アウターの下半身にはclothコンポーネントを使った。(max Distance =1)

mayaに戻って剣を作った。テクスチャは下絵からとっている。

手の筋のしわを描いた。


以上、いろんな気づきを得られた動画でした。
               
              月森

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

XcodeのiOSシミュレーターとUnityビルドによるテスト

■Unity側
 Player Settings->Other Settings->
TargetSDK->Simulator SDK に変更

 シミュレーターはMetalに対応してないというエラーが出るので、
 Player Settings->Other Settings->Auto Graphics APIの
 チェックを外す

 Player Settings->Other Settings->Graphics APIに
   OpenGLES3、OpenGLES2を追加

 この状態でXcodeビルドを作る

■Xcode側
 Xcode->Preferences->Components->iOSのバージョン一覧が表示されるので、使用したいものをインストール

 Xcode->Open Developer Tool->Simulator でシミュレーター表示

 Hardware->Device->OS選択->機種選択 で指定デバイス向けのテストができる。

 後はXcodeでRunするとアプリがシミュレーター内に入るので、
 それを選択する。
 

スクリーンショット 2020-05-15 10.31.04.png

・・・が、めっちゃ重い。ファンが全開で回ってる
結構良いMacBookとかじゃないと細かい動作検証は厳しいのではないかと思いました。
解像度対応できているかや、画面遷移、ボタンチェック、ぐらいならできなくはなさそう。 

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unityでマウスポインタでドラッグ&ドロップ

Unityでマウスポインタでドラッグ&ドロップするときは、

1)カメラにPhysics Raycasterをつける必要あり。
image.png

2) UI.Text
必要以上に大きくすると干渉する。適切なサイズにするか、Raycast対象外にする。
image.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む