Bigdra.Log

備忘録

ゲーム中のみマウス加速を無効にする常駐アプリを作る

背景

最近FPSゲームが流行っていますね。 私もApex LegendsやTitanFall2等をやっています。 このようなFPSゲームをマウスでプレイする場合、 マウスの加速設定を無効にすることが推奨される事が多いです。

マウス加速の設定が有効だと、 マウスを動かす速度によってポインタの移動量が変化してしまうため、 FPSでのエイム操作が不利になってしまうようです。

しかし、 私は普段のゲーム以外の作業ではトラックボールを使っており、 トラックボールにはマウス加速は必須だとも感じています。

https://s3.us-west-2.amazonaws.com/secure.notion-static.com/8cd50e90-4785-49ed-87a4-f5bf78ead142/CA0D8793-CFC6-4B9E-9F57-F102A1000180.jpeg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAT73L2G45O3KS52Y5%2F20201226%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20201226T235236Z&X-Amz-Expires=86400&X-Amz-Signature=e7b2f0d2c4a60dcc387694ab54d0204f066b8ba1cc385fa0daf20373ac5f5acf&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22CA0D8793-CFC6-4B9E-9F57-F102A1000180.jpeg%22

トラックボールでは親指でボールを転がしてマウスポインタを操作します。 ポインタを遠くまで動かしたいときに、 マウス加速が有効な場合はボールを勢いをつけて転がすことで1ストロークで目的の位置までポインタを動かすことができます。 (正確に届けるには慣れが必要ですが) ところが、 マウス加速が無効な場合はボールの速度に関わらずポインタの移動量が一定となるため、 遠くに動かすには数ストロークかかってしまいます。 そこで、 普段はマウス加速をON、 ゲーム中のみマウス加速をOFFにしたいと思いました。

現状

Windows10のマウス加速の設定は、 マウスのプロパティ/ポインターオプションポインターの精度を高める という項目で切り替えられ、 チェックを入れればマウス加速が有効になります。

https://s3.us-west-2.amazonaws.com/secure.notion-static.com/8de015f1-9210-4ea4-9dee-a0c32a541318/Untitled.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAT73L2G45O3KS52Y5%2F20201226%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20201226T235308Z&X-Amz-Expires=86400&X-Amz-Signature=25d27988bac8847484031c6f8d2c759388d39bf5e6f960990a18e53c10c375d8&X-Amz-SignedHeaders=host&response-content-disposition=filename%20%3D%22Untitled.png%22

この設定をゲームの起動時と終了時に切り替えればいいわけですが、 毎回手動でやるのも面倒なので自動化したいですね。

本題

Windowsアプリの開発はUnityでのゲームぐらいしかないので手探りで調べていきます。

最低限必要な機能は次の3つです。

  1. 常駐させる
  2. 特定のアプリが起動しているかを検出
  3. Windowsポインターの精度を高める 設定を切り替える

1はよくあるタスクトレイに常駐するアプリについて調べればよさそうです。

https://qiita.com/kob58im/items/8bca7a87890a66f8a425

2は System.Diagnostics.Process.GetProcessesByName() にプロセス名(メモ帳なら"notepad"、 Apex Legendsなら"r5apex")を渡せばそのプロセスが起動中か確認できるようです。

http://est-gw.hateblo.jp/entry/2016/01/16/202047

3はP/Invokeを介してネイティブ関数を呼び出す等しなければならないようで何もわかりません。

が、 同じことをやっている人はいました。

https://stackoverflow.com/questions/24737775/toggle-enhance-pointer-precision

とりあえず分からないものを継ぎ接ぎしながら目的の挙動をするものはできました。

https://github.com/bigdra50/ToggleMousePrecision/releases

まとめ

動くものはできたわけですが、 現時点では諸々を黒魔術的に組み合わせているだけの状態なのでそれぞれ詳しく調べた上で改善してまとめたいと思います。

デスクトップ版clusterでマイクが反応しなかった

症状

  • 再起動しても直らない
  • VR版clusterとDiscordでは正常に使えている
  • 使っているマイクはゲーミングヘッドセットのもの
  • タスクバーにclusterがマイクを使用中との表示がある

対処

タスクバーのスピーカーのアイコンを右クリックしてサウンドを選択

録音タブの中の使おうとしているマイクを既定のデバイスへ変更


自分のマイクがどの項目かは, マイクに音を入力すればこのように識別できます.

自分の場合はSteamLinkでのマイクが既定のデバイスに設定されたままだったのが原因でした. VRでclusterに入ったときにマイクが使えるのは, VRHMDを接続すれば既定のデバイスが自動で切り替わるからぽい?

球の中にシーンの景色を入れる

目次 [TOC]

はじめに

こういうのです.

見かけたことはあるけど作ったことはなかったので試してみました.

環境

Unity 2019.3.0f6

やってみる

球を見るシーンを用意

まずはSphereを置いておきます.


次に, シェーダーを作成します. Create>Shader>Unlit Shaderで作成されたファイルを開き, 元々書いてあったコードをすべて下のコードに置き換えて下さい. これはビルトインシェーダーのskybox/cubemapを一部変更したものです.(https://unity3d.com/jp/get-unity/download/archive)

Shader "Custom/Cubemap" {
Properties {
    _Tint ("Tint Color", Color) = (.5, .5, .5, 1.)
    [Gamma] _Exposure ("Exposure", Range(0, 8)) = 1.0
    _Rotation ("Rotation", Range(0, 360)) = 0
    [NoScaleOffset] _Tex ("Cubemap   (HDR)", Cube) = "grey" {}
}

SubShader {
    Tags { "Queue"="Transparent" "RenderType"="Transparent"}
    Cull Front ZWrite Off
    Blend SrcAlpha OneMinusSrcAlpha

    Pass {

        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag
        #pragma target 2.0

        #include "UnityCG.cginc"

        samplerCUBE _Tex;
        half4 _Tex_HDR;
        half4 _Tint;
        half _Exposure;
        float _Rotation;

        float3 RotateAroundYInDegrees (float3 vertex, float degrees)
        {
            float alpha = degrees * UNITY_PI / 180.0;
            float sina, cosa;
            sincos(alpha, sina, cosa);
            float2x2 m = float2x2(cosa, -sina, sina, cosa);
            return float3(mul(m, vertex.xz), vertex.y).xzy;
        }

        struct appdata_t {
            float4 vertex : POSITION;
            UNITY_VERTEX_INPUT_INSTANCE_ID
        };

        struct v2f {
            float4 vertex : SV_POSITION;
            float3 texcoord : TEXCOORD0;
            UNITY_VERTEX_OUTPUT_STEREO
        };

        v2f vert (appdata_t v)
        {
            v2f o;
            UNITY_SETUP_INSTANCE_ID(v);
            UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
            float3 rotated = RotateAroundYInDegrees(v.vertex, _Rotation);
            o.vertex = UnityObjectToClipPos(rotated);
            o.texcoord = v.vertex.xyz;
            return o;
        }

        fixed4 frag (v2f i) : SV_Target
        {
            half4 tex = texCUBE (_Tex, i.texcoord);
            half3 c = DecodeHDR (tex, _Tex_HDR);
            c = c * _Tint.rgb * unity_ColorSpaceDouble.rgb;
            c *= _Exposure;
            return half4(c, _Tint.a);
        }
        ENDCG
    }
}


Fallback Off

}

このシェーダーファイルを右クリックしてCreate>Materialで作成されたマテリアルをさっきのSphereにつけます.

このマテリアルのインスペクターにあるCubemapに置きたい景色のCubemap用のテクスチャを貼れば完了です.

Cubemap用のテクスチャを用意

球に入れる適当なシーンを用意します. 今回はOculus Integrationのサンプルシーンを使いました.

次に, HierarchyでCreate>Light>Reflection ProbeでReflection Probeを作成し, シーンの中央らへんに配置します.

配置ができたら, Refelction ProbeのインスペクターでCubemapに映したいオブジェクトに応じてTypeを選択します.

Unity Documentation より

  • Baked プローブは、エディターでのベイキングによって生成される静的リフレクションキューブマップを保存します。
  • Custom プローブは、ベイクによって、または、ユーザーによる手動の設定によって、生成された静的キューブマップを保存します。
  • Realtime プローブはキューブマップをランタイムで更新するので、シーン内で動的オブジェクトに反応することができます。


staticなオブジェクトのみ対象とするか, 動的なオブジェクトも対象にするか, ランタイムに生成するかで選択するとよさそうです.
今回のシーンでは動くブロックなども含めたかったのでCustomでDynamic Objectsにチェックをいれて使いました.


次はReflection Probeの範囲の調整です.
Refelction Probeのインスペクターの一番上にあるEdit Bounding Volumeのアイコンをクリックするとこのような直方体が表示されます.

これがReflection Probeの範囲なので, Box SizeBox Offsetをいじって適切なサイズに調整します.

最終的にこんな感じにしました.

Cubemap capture settingsのResolutionなども好きなように設定して下さい.

諸々の設定が完了したらReflection Probeのインスペクターの一番下にあるBakeを実行すればCubemapのテクスチャが生成されます.
テクスチャの生成が完了したらRefelction Probeは消してもOKです(そのまま使いたい場合はもちろん残してもらっても大丈夫です.)

完成

最初に作ったシーンへ戻ります.

用意してあるマテリアルに生成したテクスチャを貼ります.

なんかぼやけてますね...
生成したテクスチャのインスペクターを見てみて下さい.

このようにMappingのConvolution TypeがSpecularだとぼやけるようなので, Noneに変更してApplyしてみて下さい.

すると, このようにきれいになりました!

参考

https://docs.unity3d.com/ja/2019.3/Manual/class-Cubemap.html https://docs.unity3d.com/ja/2018.4/Manual/class-ReflectionProbe.html https://light11.hatenadiary.com/entry/2018/07/10/231546

Chapter1: Post Processing ~Unity2018 Shaders and Effects Cookbook~

はじめに

Unityのシェーダーをメインに扱っている唯一の書籍である「Unity 2018 Shaders and Effects Cookbook」の自分用のメモです. また, Unity公式リファレンスなどの情報も参考にしています.
シェーダー自体難しそうだし, 初めて読む英語の技術書なのでペースは遅いし間違えもあるかもしれません.

環境

  • Unity2018.4.0
    • この本ではUnity2018.1.0を使っているようですが, Unity2018.4.0を使って進めます. もし何か問題があって2018.1.0やその他のバージョンを使った場合はその部分に注意書きとして書いておきます.
  • サンプルファイル

Chapter1: Post Processing Stack

Post Processの概要

画面に表示する前に画像へフィルターやエフェクトを適用する処理. 視覚効果を手軽にいい感じにできる.

準備

  1. サンプルファイルのAsset | Chapter01 | Scenes | Chapter 1 - Starting Point シーンを開く. このシーンはPost Processingの効果を確認しやすいシンプルな環境のシーンです.
  2. Package Managerを開いて(ctrl + 9), Post-processingをインストールする.
  3. HeararchyからCameraコンポーネントがアタッチされたオブジェクト(今回はFPSController | FirstPersonCharacter)を選択.
  4. 3で選択したオブジェクトにコンポーネントComponent | Rendering | Post-process Layerをアタッチ.
  5. 4.でアタッチしたPost Process Layer(script)コンポーネントLayerのドロップダウンからPostProcessing を選択.
  6. HeararchyPost Process Volumeを作成. inspectorLayerPostProcessingに設定. 最後にpositionを(0, 0, 0), Post Process VolumeコンポーネントIs Globalにチェック.

Post Process VolumeProfileプロパティにはどのようなスクリーンへのエフェクトかの情報が含まれます.
また, Is Globalにチェックを入れることで常にエフェクトをかけることができ, チェックを外すとvolumeと一定範囲内にいる間のみにエフェクトがかかります.

サンプルProfile

Post Processingでエフェクトをかけるには, 上で用意したPost Process VolumeコンポーネントAdd effectsで任意のエフェクトを追加し, 各プロパティを調整すればいい.
Assets | Chapter01にあるProfileを順に見てみる.

Filmic

  • Grain
    • 写真のフィルムのようなランダムなノイズ. ホラーゲームなどで誇張されて利用される.

公式マニュアル

  • Vignette
    • 画面中心からエッジにかけて暗くしたり彩度を下げる表現.
    • 画像の中心にフォーカスを引きつけるような効果によく使われる.

公式マニュアル

Bloom

  • Bloom
    • 実カメラのような, 光源から広がる光を再現するためのエフェクト.
    • 光があふれるような効果

公式マニュアル

  • Anti-aliasing
    • エイリアシング(解像度の低さによって生じる階段状のギザギザ)を防中間色で囲むことで防ぐ.
    • Post Process Layer(Script)のプロパティで選択.

公式マニュアル

Color grading

  • Color Grading
    • 完成した画像のカラーや輝度を変更修正するもの
    • instagramのフィルターみたいなもの

公式マニュアル

Horror

  • Fog
    • カメラからの距離に応じてオブジェクトにカラーを重ねるエフェクト.
    • 霧やもやをシミュレート.
    • Lightingother settingで設定.

公式マニュアル

  • Ambient Occulusion
    • 折り目, 穴, 交差, 表面など環境光を遮断する傾向がある領域をより暗く見せる.
    • リアルタイムに近似していて処理時間のコストが高い.

公式マニュアル

その他

本書で扱っていたPostProcessingの機能は以上ですが, 他にもいくつかのエフェクトがあるようなのでそちらも

  • Chromatic Aberration(色収差)
    • カメラのレンズがすべての色を同じ点に収束しないために生じる効果
    • 画像の暗い部分と明るい部分を分ける境界に沿って色の「フリンジ」として現れる.

公式マニュアル

  • Depth of Field(被写体深度)
    • カメラレンズの焦点特性のシミュレート
    • レンズと焦点があっていない被写体がボケるやつ

公式マニュアル

  • Eye Adaptation(目の適応)
    • 暗いところから明るいところに行ったときに暫くの間眩しくて, だんだん慣れてくるやつ

公式マニュアル)

  • Motion Blur
    • 被写体が高速に動いたときにぼけるやつ.
    • レースゲームなどでは誇張して使用される.

公式マニュアル

  • Screen Space Reflection
    • 反射を計算するためにスクリーンスペースのデータを再利用する技術.
    • 濡れた床の表面や水たまりなどの微妙な反射を作成するの使用される.
    • 重い.

公式マニュアル

次はChapter2: Creating Your First Shader
まだです.

SteamVRエラー ヘッドセット未検出(108)を解決するのに22時間かかった

SteamVRのアップデート後に起こることが多い.
今回はSteamVR1.4.14

どうでもいいけど22時間のうち3時間は外出てて, 8時間は昼寝の時間

ヘッドセット未検出(108)

ヘッドセットが正常に検出されている場合, VIVE左側の側面のライトが緑色に点灯する. 赤く点灯しているとこのエラーが発生している.

試したこと

全てのSteamアプリを終了させて, マルチディスプレイの場合は他のHDMIやDisplay Portなどを抜いてメインディスプレイのみにする.
USBも不要なものは抜いておく.

SteamVRの再起動

まずは1番最初に

USBケーブルの抜き差し

PCの再起動

SteamVRの全USBドライバを削除

  1. ViveのUSBをPCから抜く.
  2. SteamVRの設定->開発者->SteamVRの全USBデバイスを削除
  3. SteamVRを終了してViveのUSBをPCへ接続
  4. ドライバのインストールが自動で実行されるので, 全て完了したらSteamVRを起動

バイスマネージャーから手動でHTC Viveのドライバのアンインストール

  1. バイスマネージャーを起動

  2. 表示->デバイス(コンテナー別)と, 表示->非表示デバイスの表示を選択

  3. HTC Viveの中のUSBがつく項目を右クリック->デバイスのアンインストール
  4. 残りのUSBがつく項目も同様に

このページを参考にしたけど, ?マークというのがなかったので全部アンインストールした.

寝る

いつもはここまでで直っていたけど今回は直らなかったので寝た.
PCに電源も切って寝かした.

ViveとPCをリンクボックス経由でなく直接接続

  1. リンクボックスのオレンジじゃない方のケーブルを全て抜く.
  2. ヘッドセットから 3-イン-1 ケーブルとオーディオケーブルを外す のようにVive側のケーブルを全て抜く.
  3. 1で抜いたケーブルをViveに直接つなぐ.

設定ファイルを削除してファームウェアアップデート

このredditの質問の回答の中のエラー208への対処をやってみた

  1. SteamVRを終了
  2. 以下のファイルを削除(バックアップをとる)
  3. C:¥Program Files(x86)¥Steam¥steamapps¥common¥SteamVR¥resources¥settings¥default.vrsettings
  4. C:\ Program Files(x86)\ Steam \ config \ steamvr.vrsettings
  5. C:\ Program Files(x86)\ Steam \ config \ lighthouse \ lighthousedb.json
  6. Viveをリセット
    1. 全てのSteamVRやVRアプリを終了.
    2. リンクボックスから電源ケーブルを抜く.
    3. Vive左側の側面のボタンを押したまま, 2で抜いたケーブルを再び接続する. 接続後はそのまま15秒間押し続ける.
    4. ボタンを離したあと, SteamVRを起動して利用可能なファームウェアアップデートをインストール.

SteamVRのフォルダ削除してSteamVR再インストール

やけになった.

  1. SteamVRをアンインストール
  2. C:¥Program Files(x86)¥Steam¥steamapps¥common¥SteamVRを削除
  3. SteamVRを再インストール

これで動いたけど, 試すときは全て自己責任でお願いします.

試してないけどあとで知った情報

困ったときにはGoogleだけじゃなくてTwitter検索大事

VIVE HAND TRACKING SDKのサンプルを試してみた

環境

HTC VIVE
Unity2018.2.7f1
Windows 10
VIVE Hand Tracking SDK [Early Access]

手順

  1. こちらからSDKをダウンロード.
  2. SteamVRの設定からカメラを有効化する. SteamVRのカメラはデフォルトでは無効となっている.
  3. Unityで3Dプロジェクト作成後, SDKをダウンロードしたフォルダから2つのunitypackageをインポート.
  4. Player SettingsのXRSettingsでVirtual Reality Supportedにチェックを入れ, Virtual Reality SDKsにOpen VRを追加する.
  5. Aristo/SampleにあるSampleシーンを開き, シーンを再生.

注意

Unity2018.2では一部のグラフィックドライバーで正しく動作しない事があるようなので, もしOpenCLのエラーが発生した場合はUnity2018.3.3以降を使うか, Unity.exeと同じフォルダにあるOpenCL.dllを削除すればいいみたいです. (https://developer.viveport.com/documents/sdk/en/unity/setup.html) 自分の場合は, Unity2018.3.4で試したところシーンを再生してもSteamVRが起動せず, Viveが使えませんでした. また, Unity2018.2.18ではSteamVRは起動し, Viveでヘッドトラッキングはできているのですがハンドトラッキングはできませんでした. Unity2018.2.7でOpenCL.dllを削除したらハンドトラッキングも動作しました.

最後に

無印のVIVEでは, 動画の通りハンドトラッキングできるものの精度は低かったのですが, 他に試している方の動画ではもっと精度がよさそうなものがあったのでよくわからないです.
また, このSDKは昨日公開されたばかりのEarly Accessだし, そもそも無印VIVEに対応するとは思っていませんでした. GDCがこれからなので, そこで何か話があるかもしれないです. 精度がよくなったら使いたいな

参考

SDK ドキュメント

2018年度にやったこと

初記事でいきなりなんですが, 今年度のやったことなどをTweetとかAmazonの購入履歴を見ながら振り返りたいと思います. 高速バスで殴り書きをしているので, 公開後に細かいとこを修正していきます.

2~3月

プログラミングを始めて,Unityと出会った
一週間で身につくC#言語の基本
前期試験の次の日から1週間でやりました

Unity の教科書

さっき1週間でやったといいましたがamazonの購入履歴見てみたらそれは嘘で,5日目に飽きてこっちやり始めてます.

UnityではじめるC# 基礎編

上の2つが終わってからやり始めました

DayDreamを手に入れて遊んでた

4月

大学入学&VR部入部

部室に泊まってHTC VIVEで遊ぶ

このためにヅ大に来たようなもの

5月

猫でもわかるC#プログラミング 第3版 (猫でもわかるプログラミング)

難しくてよくわかんないとこはさらっと読み飛ばしても結構時間かかったような記憶
ずっと大学の図書館にこもってた頃

実戦で役立つ C#プログラミングのイディオム/定石&パターン

読んでる途中でチーム開発も始まって積読になってたやつ. 最近再開した.

6月

Unityゲーム プログラミング・バイブル

気になった章だけ読んでます

チーム開発スタート

DESIGN(開発中)

ルーン文字を描いて魔法を発動し,モンスターと戦うアクションRPGです.
文字を描く処理などを作りました.

チーム開発の内容について紹介したときのスライドです
https://docs.google.com/presentation/d/1eVKoqjy-uHlr_mOFqw6TkN-UXq8VoAqBKUBsTe-jOsE/edit?usp=sharing

7月

スマホが壊れてDayDreamは使えなくなりました

8月

オープンキャンパスVRゲーム展示の初アテンド

9月

VR部開発合宿

合宿のあとも先輩の家にほぼ毎日通って開発. 6月で上げてある進捗のほとんどがここで出たようなもの()

10月

学祭で展示

11月

VR技術者試験セオリーコース 講習会

VR技術者認定講習会・試験とは?
いまや人間の創造的な活動にとってVRは必要不可欠なものになろうとしています.しかし,現在,この「バーチャルリアリティ学」を系統的に学ぶ場がほとんど存在しません.それが,当学会がVRを習得するための講習会を催し,また,VRを正確に習得したことを証する「VR技術者」を認定している所以なのです.技術が高度になればなるほど,また人間や社会との関係が増せば増すほど,技術を正しく理解することが肝要となります.この講習を受講し,この試験に合格することで,皆さんが社会の様々な創造的分野をリードしてゆく「VR技術者」として,世界の大舞台で活躍されることを期待しています.

日本バーチャルリアリティ学会より引用

今まで受けたどんな講義よりも面白く, とても有意義でした!

バーチャルリアリティ

HTC VIVEを購入

これまでは部室にあるのを借りて使っていたのでよく部室へ泊まって通っていたのですが, ついにつよつよPCとVIVEを購入しました!

念願のVRChat

48回払いのローンを組んだのですが, 本当にその価値があったと思います.

12月

ハッカソン

はじめてのハッカソンVR部1年生だけのチームで参加しました. テーマは「健康づくり」ということで, 人間の細胞内に入って細胞内のウイルスへカプセル薬を投げて撃退するVRゲームを作りました.
期間は1週間あったのですが, すぐに実装できるだろうと思っていた部分に思った以上に苦労したりで作りたかったものの半分程度しか開発できず悔しかったです. ただ, 一応前日の夜ギリギリに最低限動く状態でビルドまでできたので, やれるだけやったなという感じで達成感はありました.

Cells At Work

VR技術者試験

健康づくりハッカソンの最終日と試験日が重なっており, 試験前日の夜行バス出発ギリギリまで開発・ビルドをして東京へ向かいました.

試験勉強はこのサイトにとても助けられました. 今度受験される方や, 試験がどんなものか気になる方はぜひ見てみてください.
https://qiita.com/Somelu01/items/ec8d94e923a3ba818829
https://qiita.com/advent-calendar/2018/vr-engineer

試験後は例の蕎麦屋や,

SEGAでStarVRの体験や

VREXでHADOをやったりしました!
HADO自体楽しかったですし, ハードがiPhoneだと知って驚きました. あとVREXの雰囲気も未来のバーみたいでテンション上がりました

1月

Arduino買ってLチカやって2ヶ月いじってないです

VRChat開発やりたくて, カスタムアバターから

VR技術者試験は無事合格してました! 来年はアプリケーションコースも合格して上級バーチャルリアリティ技術者になりたいと思います.

2月

ANY ハッカソン

https://naoto80840.github.io/2019_any/

LINE clovaハッカソン

webやサーバーなどの知識が皆無でほぼ何もできなかったのですが, 一緒に出て頂いた先輩のおかげで賞をもらえてしまいました

ナンデモ開発合宿

VR部の持っているHoloLensを借りて開発を始めました. ...が, 環境開発から始めてギリギリ作品が完成して実機にビルドしてみたらUnity上で動くのにHoloLensでは動かないという結果でした. 普段つよつよPCで富豪プログラミングしかやっていなかったので, メモリが少ないHoloLensでは動作しなかったのかもしれないです.

モデラーの友達に教わりながら初モデリング

なにかあるごとにツイートしてると時系列順に振り返れていいですね. こうして振り返ってみると中途半端に終わったものが多く, 作ろうとしたモノをしっかりカタチにするというのが大事だと感じた1年です.
ほぼTwitterのリンクをペタペタした記事でした.

更新

2019/3/18 Twitterのリンクを通常のURLから埋め込み用コードへ変更.