20200329のUnityに関する記事は6件です。

【Unity】gRPCを用いたプロジェクトをiOS向けにビルドした時のlinker command failed with exit code 1 エラーの対処法

はじめに

gRPCを用いてUnityで作成したプロジェクトをiOS向けにビルドすると、お馴染みの

linker command failed with exit code 1 (use -v to see invocation)

というエラーと共に、

**/Libraries/Plugins/Grpc.Core/runtimes/ios/libgrpc_csharp_ext.a(grpc_csharp_ext.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

のようなエラーがXcodeで出ることがあります。

このエラーを解決する方法をこの記事に書きました。参考になれば幸いです。

実行環境

  • Unity v2019.3.6f1
  • macOS Catalina v10.15.4
  • gPRC(C#) v2.29.0
  • Xcode v11.4

対処法

以下が対処法になります。
手順が全部で4つあるので、手順1から順に指示に従っていただければと思います。

手順1

Assetsフォルダ直下にEditorという名前のフォルダを作成します。

もう既にある場合は作成する必要はありません。そのまま手順2へ進んでください。

手順2

次のスクリプトを作成し、UnityのEditorフォルダ内に置きます。

BuildHelper.cs
#if UNITY_IPHONE

using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;

public class BuildHelper
{
    [PostProcessBuildAttribute(1)]
    public static void OnPostProcessBuild(BuildTarget target, string path)
    {
        if (target == BuildTarget.iOS)
        {
            var projectPath = PBXProject.GetPBXProjectPath(path);
            var project = new PBXProject();
            project.ReadFromString(File.ReadAllText(projectPath));
            var targetGUID = project.GetUnityFrameworkTargetGuid();

            project.AddFrameworkToProject(targetGUID, "libz.tbd", false);

            project.SetBuildProperty(targetGUID, "ENABLE_BITCODE", "NO");

            File.WriteAllText(projectPath, project.WriteToString());
        }
    }
}

#endif

(参考: Unity2018.2 + il2cppでgRPCアプリをAndroid/iOS向けにビルドする)

手順3

ターミナルで

sudo rm -rf ~/Library/Developer/Xcode/DerivedData/*

を実行し、DerivedData (プロジェクトに生成されるキャッシュデータ)を削除します。

手順4

UnityでBuild And Runを行い、ビルドを実行します。


以上です。
これでビルドが上手くいくのではないかと思います。

参考

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

[Unity]移動してる時に砂煙風エフェクトを付けてみよう

砂煙風エフェクトを作ろう

プレイヤーに子オブジェクトをつけよう

player.jpg
プレイヤーのオブジェクトを選択してSphereを付けよう。

Sphereオブジェクトの出し方は
Hierachy>Create>3DObjeckt>Sphere

ParticleSystemを使ってエフェクトを作ろう


上のgif画像のようにParticleSystemを出します。

setting3.png

赤い枠線で囲った部分を編集していきます。
Start Speedは、パーティクルが飛び出す速度の設定です。ここを速くすると見た目が悪くなります。
Start Sizeは、パーティクルの最初のサイズを設定しています。
Start Rotationは、パーティクルの角度を設定しています。

Start Size,Start Rotationはランダムに設定しています。右の逆三角形を押すとメニューが出るのでそこで設定します
Rondom.png>

Simulation Spaceはプレイヤーを回転させるときにパーティクルがWorld座標で出てきます。

Emissionの設定

移動したときだけパーティクルが出てほしいので設定していきます。
Emission.png

Rate over Timeを0にします。
Rate over Distanceを好きな値にしてください。
これで移動した距離でパーティクルが出るようになりました。

Size over LifeTime

sizeoverlifetime.png

サイズをクリックして出てきてから消えるまでの大きさを設定します。
size.png
右クリックするとAdd Keyと出るので選択するとノードが追加されます。
出てきた瞬間にパーティクルのサイズを大きくして、徐々に小さくしていくとそれっぽくなります。

Rendererの設定

renderer.png

Render ModeをMeshにします。
Meshのところは好きなモデルやテクスチャを入れることができます。
Materialで色を変えられるので好きな色にしてみてください。

プレイヤーに付けよう

Particle Systemの横にある歯車をクリックしてCopy Componentをクリック。
Sphereを選択してSphere Colliderの歯車をクリックしてPaste Component Az newをクリックします。
そうするとSphereの座標で操作できるので好きな位置にもっていってください。

コピーしたら元のParticle Systemは消しましょう。

終わり

以上で設定は終了です。
わからないことがあればコメントをください。

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

VRChat に自作アバターやワールドをアップロードする(外部資料メモ)

外部記事へのリンク集です。

準備

VRChat に VRchat のアカウント(Steam のではなく)でログインして、ユーザレベルを Visitor から New User に上げておく。VRChat 内で他の人がいるワールドに 20 か所くらい行って、フレンドを数人作って、滞在時間が24時間ほど経過したら New User になれる(かも)。

Unity のバージョンは 2017.4.28f1 を使います。2018 以降のバージョンでは VRC の SDK が正常に動作しません。

VRCのSDKは下記から取得可能です。
- https://www.vrchat.com/download/sdk

アバター関連

unitypackage のように、完成品をアップロードする場合は、下記の手順でいけます。

  • 空のシーンを作って、asset をプロジェクトに追加する。
  • モデルの prefab をシーンの 0,0,0 に配置する
  • prefab に Add Component で VRC_avatarDescriptor を追加する(これ重要)
  • unity 上の VRC Control panel でアップロードする。

詳細は上記リンク先を参照のこと。

  • 外部シェーダーを使う場合は、モデルより先に読み込ませておく。
  • Dynamic Bone のような asset を使用する場合も先に読ませておく。

ワールド関連

0,0,0 の地点には地面を作っておく。ワールドに入った時に、0,0,0 の地点に出現するため、その位置に地面がないと、無限に落下することになります。

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

VRChat に自作アバターやワールドをアップロードする(メモ)

外部記事へのリンク集です。

準備

VRChat に VRchat のアカウント(Steam のではなく)でログインして、ユーザレベルを Visitor から New User に上げておく。VRChat 内で他の人がいるワールドに 20 か所くらい行って、フレンドを数人作って、滞在時間が24時間ほど経過したら New User になれる(かも)。

Unity のバージョンは 2017.4.28f1 を使います。2018 以降のバージョンでは VRC の SDK が正常に動作しません。

VRCのSDKは下記から取得可能です。
- https://www.vrchat.com/download/sdk

アバター関連

unitypackage のように、完成品をアップロードする場合は、下記の手順でいけます。

  • 空のシーンを作って、asset をプロジェクトに追加する。
  • モデルの prefab をシーンの 0,0,0 に配置する
  • prefab に Add Component で VRC_avatarDescriptor を追加する(これ重要)
  • unity 上の VRC Control panel でアップロードする。

詳細は上記リンク先を参照のこと。

  • 外部シェーダーを使う場合は、モデルより先に読み込ませておく。
  • Dynamic Bone のような asset を使用する場合も先に読ませておく。

ワールド関連

0,0,0 の地点には地面を作っておく。ワールドに入った時に、0,0,0 の地点に出現するため、その位置に地面がないと、無限に落下することになります。

VR アプリ開発

Unity に Steam VR plugin (asset) を読み込む。VR の通常のアプリ開発の場合、Unity のバージョンは最新版でOK。

アプリを起動する前に、Steam VR を起動しておく必要があります。アプリを起動すると、Steam VR のホーム画面からいきなりアプリの画面に切り替わります。アプリの起動は PC でマウスやキーボードを使って実行する必要があります。Virtual Desktop や OCR Toolkit などの使用を推奨。

上の方法で Oculus Quest + Oculus link と Valve index のどちらでも動くプログラムを書けました。

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

なぜかパッケージマネージャーエラーが起きてしまった【unity2018.4.x LTS】

同一端末で、不特定多数のプロジェクトが作られており、
不定期に2018.4.x LTSのアップデートが行われた際に起きると思います。
(しかも各バージョンでアドオンが変わっていたときとか)

この記事では、
取り急ぎでできる、簡単な対処の仕方を記載します。


[window]メニュー内にあるPackagesウィンドウを押下すると、
下図のようにウィンドウが開かれる。

a03.png


要は、「エラーを起こしているパッケージをremoveしようぜ!」ということです。


Packagesウィンドウに表示されているパッケージは、
プロジェクトフォルダの[Packages]フォルダにmanifest.jsonファイルで保存されています。

プロジェクト起動時に、このファイルを参照してパッケージがインストールされるので、
もしエラーを起こしているパッケージをremoveする際は、
manifest.jsonファイル内のテキストを別途テキストエディタなどに控えておくと良いです。
(removeした瞬間に、manifest.jsonファイルも書き換わるため)

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

【袴でバーチャル卒業式】VR初心者がclusterにVRoid自作アバターをアップロードするまで

コロナの影響により縮小開催のリアル卒業式
そんな中バーチャル安田講堂の前でバーチャル卒業式があると聞いて
バーチャル卒業式_edited.001.jpeg

というわけでVR初心者が袴アバターの作り方を紹介します

Step1 : VRoidで袴のアバター作り

VRoid Studioのインストール

  • アバターはこのソフトで作ります
  • VRoid Studioを公式サイトからインストールします
  • このソフトは直感的に使いやすいし、デフォルトが可愛いのである程度いじっても可愛いアバターになります

20180629-001-991ebe0213010d4619551a8c60221bb2.png

ワンピースのテクスチャを加工して袴にする

  • Clothing Editorタブから服装をワンピースに変更します
  • さらにテクスチャタブを開くとワンピースを展開した画像が出てきます
    • これがテクスチャ
  • このテクスチャを貼り付けているだけなのでお絵描きすれば袴になります
  • 私はDefault ImageをダウンロードしてiPadのお絵描きアプリから袴の画像に加工しました

スクリーンショット 2020-03-25 15.12.39.png

  • 袴姿に!

スクリーンショット 2020-03-25 15.13.15.png

  • 髪の毛はいい感じに生やします
  • 3層以上に分けると立体感が出るのでおすすめ
    • ただしポリゴン数を少なくするために20本ぐらいにおさえましょう

スクリーンショット 2020-03-25 14.47.09.png

スクリーンショット 2020-03-25 14.47.29.png

バーチャル卒業式けまこ.015.jpeg

  • アバターができたらExporterのタブからアバターをVRMファイルで出力します
    • 「髪の毛メッシュを結合する」にチェック入れるの忘れずに!

しかしここで問題発生、、、!
バーチャル卒業式けまこ.016.jpeg

clusterでアップロード可能なアバターには色々と制限があるのです
https://clustervr.gitbook.io/sdk/guide/avatar_customization/avatar_limit)

そこで

  • モデルの軽量化
  • マテリアルの統合
  • テクスチャの貼り付け

を順に行なっていきます

Step2 : Blenderでモデルの軽量化

Blenderのインストール

プラグインを入れる

BlenderでVRMファイルを読み込む

  • まずは右上の部分でCamera, Cube, Lightを消しましょう
  • Collectionも消しましょう
    スクリーンショット 2020-03-22 21.57.55.png

  • CATS > Model > Import Model でVRoidから出力したVRMファイルを選択します
    スクリーンショット 2020-03-22 21.58.29.png

Blenderでモデルの軽量化

  • CATS > Model > Fix Model を押すだけ!簡単! スクリーンショット 2020-03-22 21.58.59.png

Blenderでマテリアルの統合

  • CATS > Optimization > Atlas を開くと下のような画像の状態になって欲しいところですが
    • なってたら次の章は飛ばしてください! スクリーンショット 2020-03-22 22.00.06.png

Generate Material List できるようにする

  • Macだとデフォルトでできませんでした
  • ここに書いてある通り落ち着いて順番にやっていきましょう
    • 以下ではwgetだけcurlにしてあります
    • /Applications/Blender.app/Contents/Resources/x.xxx.xxのバージョン部分は自分の環境に合わせてください
$ cd /Applications/Blender.app/Contents/Resources/2.79/python
$ curl -L https://bootstrap.pypa.io/get-pip.py > get-pip.py
$ ./bin/python3.5m ./get-pip.py --prefix
$ /Applications/Blender.app/Contents/Resources/2.79/python
$ ./bin/python3.5m bin/pip3 install Pillow
  • ここまでやればGenerate Material Listのボタンが出てるはず!
    • もしなかったらBlender再起動

Blenderでマテリアルを統合

  • CATS > Optimization > Atlas > Generate Material Listを押すと現在のマテリアル一覧を見ることができます

スクリーンショット 2020-03-22 22.02.35.png

  • いっぱいありますね、、、!
  • clusterではマテリアルの数を8以下にする必要があるのでどんどん統合していきましょう
  • チェックボックスから統合したいマテリアルを選択してSave Atlas toをクリックすると統合できます
    • マテリアルを統合するときにそれぞれのテクスチャも統合するということ?なのかな
    • ちなみにclusterにアップロードするときの制限として1つのテクスチャは2048 * 2048以下である必要があるので服のテクスチャは他のと統合できないと思います
  • 注意すべきはVRoidのテクスチャが白黒だったもの
    • 髪、眉、まつげ、アイライン、靴あたりかな?
    • ここら辺は色の設定をしているので合わせるべきかしっかり考えましょう(失敗してみるとわかる)
  • 私の場合は以下の7つにまとめました(あとで髪飾りをつけるために1つ余裕を持たせた)

    • 髪関係
    • 目関係(まつげとアイライン以外)
    • まつげとアイライン
    • 顔の肌と体の肌
  • このとき髪やまつげやアイラインが白くなりますが大丈夫、あとで復活します

Blenderでモデルのエクスポート

  • CATS > Model > Export Modelからfbx形式で出力します

Step3 : Unityでテクスチャを貼り付け

  • 最後にUnityで先ほど統合したマテリアルのテクスチャを貼り付けていきます

Unityのインストール

UnityにUniVRMをインポート

  • UniVRMのGithubから最新バージョンUniVRM-0.xx.unitypackageをダウンロードします
  • Unityを立ち上げたらAssetsを選択した状態で真ん中下のスペース(Assetsタブ)にダウンロードしたUniVRMをドラッグ&ドロップ スクリーンショット 2020-03-28 22.54.09.png
  • Importを押します

スクリーンショット 2020-03-22 22.09.01.png

  • これでVRMファイルを扱えるようになりました

UnityでVRMファイルを読み込み初期設定

  • Blenderで出力したfbxファイルをAssetsタブにドラッグ&ドロップ
  • 右のInspectorタブから Rig > Animation Type を Humanoid に設定
    スクリーンショット 2020-03-22 22.10.38.png

  • 同じくInspectorタブから Materials > Location を Use External Materials に設定

スクリーンショット 2020-03-22 22.10.41.png

Unityでテクスチャの貼り付け

  • 最後の仕上げ!
  • Assets > Materials で以下のようになると思います スクリーンショット 2020-03-22 22.10.59.png
  • マテリアルを一つずつ設定していきます
  • 下にある白い丸みたいなのをクリックします スクリーンショット 2020-03-22 22.11.17.png
  • 右側に設定画面が出てくるのでShaderをVRM/MToon
  • Rendering TypeをCutoutにします
  • そしてマテリアルの名前に対応するテクスチャをBlenderのフォルダとかから見つけてきてLit ColorとShade Colorの横の四角にドラッグ&ドロップ
  • 髪の毛、眉、まつげ、アイライン、靴などは白くなってしまいますがLit ColorとShade Colorを右の四角から設定すると正しく色をつけられます スクリーンショット 2020-03-22 22.11.59.png
  • 全部のマテリアルに対してこの作業を行うと完成!可愛い! スクリーンショット 2020-03-29 9.44.57.png
  • 最後に自分のアバターを選択した状態でVRM > UniVRM-0.55.0 > Export humanoidでVRM形式のアバターを出力します スクリーンショット 2020-03-29 9.47.40.png

Step4 : clusterへのアップロード

  • clusterのサイト > アイコン > アバター
  • VRMファイルをアップロードというところからUnityで出力したVRM形式のアバターを選択すれば終了
    スクリーンショット 2020-03-25 17.19.26.png

  • お疲れ様でした!自作アバターでclusterを走り回りましょう!
    20200325081659+09:00.PNG

物足りなくなった人へ

  • もともとCAD使ってる人だと髪飾りとかつけたくなっちゃいますよね
  • Fusion 360のフォーム機能でダリア風の髪飾りとか作っちゃいますよね

    • 白のダリアの花言葉は「感謝」だそうです スクリーンショット 2020-03-22 20.55.11.png
  • このままだとポリゴン数が多すぎるのでBlenderで減らします

  • 髪飾りをBlenderで開きます

  • 右下のところで設定みたいなマークを押して

  • Add ModifierからDecimateを選択

  • Ratioを操作してポリゴン数を減らします

  • 画面の一番下の右のほうにポリゴン数が表示されてるのでそれを見ながらいい感じのところまでモデルを軽くしましょう
    スクリーンショット 2020-03-29 10.26.37.png

  • 軽量化できたらfbx形式でエクスポート

  • アバターがいるUnityのAssetsタブにドラッグ&ドロップ

  • サイズとか位置とか調整します
    ETuBNOkUcAA_rSx.jpeg

  • 頭にくっついて動いてくれないと困るので左のタブから髪飾りをHeadの下に移動させます
    スクリーンショット 2020-03-22 22.23.32.png

  • これで完成

  • アバターの時と同じようにExport humanoidします

  • 満足!!!
    ETuBNNkUEAA7tgy.jpeg

参考

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