simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Programming

Unity:VRMの身長を測る

まえがき VRM を動的ロードして、そんな VRM キャラクターとオンラインでコミュニケーションを取るロビーを制作中 キャラクターの頭のパーツを隠さずに、吹き出し位置を調整したいなと思ったときVRM の身長データの取得方法がわからなかったので調べてみて …

Unity:スクリーンスペースのUIを奥行き順に並べ替える

まえがき Unity の uGUI の描画順は、Hierarchy View の上下関係で決まります。 developer.aiming-inc.comUIの順序を 3D の奥行きで毎フレーム並べ替えたい それができないと、手前のキャラクターの吹き出しなどが、奥のキャラクターの吹き出しに隠れてしま…

Unity:オンラインVRMチャットサンプルの作り方1

VRM 選択画面と動的ロードの実装詳細 最後まで読むとできるようになる絵Unity 2019.1.3f1 で新規プロジェクトを作成 ゲームを起動すると次の UI が表示されるように UI 要素をセットします。ファイル選択UIVRM を動的にロードして TPS カメラワークで TPS キ…

Unity:形態素解析してしゃべるVRMのサンプル

■前書き 文字列を受け取って、読みに変換し あいうえおの母音に直した後、これを順に処理しながら VRM の、ブレンドシェイプに繋げます。小ゴールを切りながら、VRM キャラがしゃべる様子を確認できればゴールです。■読みの抽出公式ページ MeCab: オリジナル…

Unity:NMeCabのソースコードを使って動的に漢字の読み仮名を推定する方法

■前書き Unityで形態素解析私たち人間の脳内では「何か」が実行されユニティ デ ケイタイソ カイセキという「音」が脳内で響き渡ります。これを、自分の手で作り上げ、コンピュータに行わせる手段を示します。■横道 形態素解析って言葉は、難しい ので、動的…

コマンド処理の正規表現マッチング

誰かが VRM をロードしたら、コマンドを送信するようにしたけど 単なるセキュリティホールだったので消します。消す前に動いていたコードを記録しておきます。 public void OnSendMessage(MessageResponse response) { Debug.Log($"OnSendMessage playerName…

Unity:VRMオンラインチャット構想

■画一的なエモーションコマンド作れる?→YES VRM には表情プロキシクラスがあるので、どのような VRM でも統一したエモーション名で表情を表出することができます。■テキストに合わせて表情と口を動かすことできる?→YES あいうえおの言葉の表現もあるので、…

Unity:オンラインVRM TPSゲーム作りログ5

■前書き 今回でこの連番タイトルもラストになりそうな進捗でてます。前回の記事はこちら simplestar-tech.hatenablog.com 要約すると 1.送信するタイミングとデータ構造を知るための調査 2.送受信のRPCインタフェースを設計 3.実際に送受信できている…

Unity:オンラインVRM TPSゲーム作りログ4

■前書き 前回の記事はこちら simplestar-tech.hatenablog.com前回の内容をまとめると 1.扉のあるチュートリアル閉鎖空間を用意し、VRMファイル選択で動的に VRM キャラクターを読み込める 2.扉の前でアクションを行うとAWS Cognito のサインアップ・サイ…

改竄防止しつつ、コードを変えずにパラメータを再利用する案

ゲーム内コードで自らの dll の hash 値を計算して、それと公開鍵によって解錠する暗号化されたファイルを設定ファイルとして外部に配置し ゲーム外コードから dll の hash 値と秘密鍵で設定ファイルを暗号化しておけば、ゲームロジックに変更を加えると解錠…

Unity:オンラインVRM TPSゲーム作りログ3

■前書き https://simplestar-tech.hatenablog.com/entry/2019/05/02/073820 の続きです 前回を要約するとUnity クライアント同士で 37MB くらいのVRMデータの受け渡しができるようになった。Unity から直接 S3 に上げてから、引くという構造で後から参加して…

Unity:オンラインVRM TPSゲーム作りログ2

■前書き 前回 Unity:オンラインVRM TPSゲーム作り作業ログ - simplestarの技術ブログ の続きです。 前回を要約 1.MagicOnion に習熟、形式自由でリアルタイム通信を作れるようになった 2.UI を設計して VRM ファイルとプレイヤー名を指定してサーバール…

Unity:オンラインVRM TPSゲーム作り作業ログ

■前書き ローカルで動く TPS ってのは思い立てば、アセットを買って 2時間で完成してしまうものでした。 これをオンラインゲーム化する前に、VRM ファイルを動的に読み込んで、ルーム名を決めてオンラインルームに入室し互いにチャットできるようにして、ロ…

Unity:VRMをLWRPで表示するためのマテリアル変更

VRMのシェーダーの LWRP 対応が期待されるところですが、無理やりマテリアルを置換して表示することも可能です。 ランタイムロードについては過去記事 simplestar-tech.hatenablog.comの通りですが、LWRP 環境で表示するとピンク色(シェーダエラー色)にな…

Unity:高画質スクリーンショット

ゲーム画面を高画質で記録したい次のスクリプトをシーンに追加して、InputAction で KeyBoard > PrintScreen を指定したらできました。PrintScreenshot.cs using UnityEngine; using UnityEngine.Experimental.Input; public class PrintScreenshot : MonoBe…

Unity:ゲームの土台プロジェクト

前書き Unity ゲームエンジンそのものが土台といえば土台かもしれませんが、Unity でのゲーム作りの土台となると おおよそ形は決まってくるもので、ゲームの面白さのアイディアなどはその土台の上にのせるだけよく上司から勧められるゲームジャムのイベント…

Unity:InputSystemのInputActionsによるカメラ操作

ゲームパッドの左スティックでカメラの移動 右スティックでカメラのパン・チルト調整を行うように実装してみました。次のクラスを Camera にアタッチすると機能します。TPSCameraBehaviour.cs using UnityEngine; using UnityEngine.Experimental.Input; [Re…

Unity:uGUIボタンとゲームロジックの縫い合わせ方法

前書き ユーザーによる画面入力とゲームのロジックが接続される箇所を探すと、ボタンが大部分を占めます。 ボタンを押した時にどのプログラムが起動するかを UI オブジェクトから漏れなく、間違いなく辿れなければなりません。 (※個人的な意見です)が、そ…

Unity:InputSystemのInputActionを使ってみた

前書き まだ半年早いですが、これから作るゲームは新しい InputSystem で作っていきたいと思います。 ドキュメント読んで動作確認までできたので実装コードを記録しておきます。以下、自問自答した内容です。 Input System の InputAction でキー押下イベン…

Unity:動的NavMeshの確認

ゲームの3大AI(人工知能)の一つはナビゲーションAI ゲームAIを大きく分類すると次の三つがあることに気づけます キャラクターAI キャラの振る舞いを決定 ナビゲーションAI 目的地への経路を決定 メタAI ゲームの進行を決定 今回強く関係しているのはナビゲー…

Unity:改造方法の確認

前書き ゲーム開発者会議などで、ゲームユーザーの100人に一人はゲームを改造して不正を行っていることが明らかになっています。 Unityを利用して企業や個人でゲームをリリースしていますが、それらのゲームが容易に改造されなように対策されていることを確…

Unity:VRMのランタイムロードがなんもわからん

こちら「2019年なんもわからんカレンダー」1月3日の記事です。 前回の記事は Kazushige Mori(Cz_mirror) (@Cz_mirror) | Twitter さんによる「SmartRig Bipedなんもわからん。。」でした。cz-mirror.hatenablog.com 前書き 自分だけの3Dキャラクターをあら…

Unity:Mathematics Noise 動作イメージをつかむ

前書き Unity は Mathf という一般的な数学関数ライブラリをGameObjectの計算に提供してきました docs.unity3d.com今後の高速化案件の Burst Compile が必要になるケースでは新しい Mathematics という数学ライブラリを使わなくてはならなくなりました。 git…

Unity:HTTP通信のベストプラクティス

前書き ちょうどこのブログを閲覧しているみなさんは、HTTP と呼ばれるプロトコルを介して私の文章とやり取りをしています。 皆さんは HTTP についてどれくらいご存知でしょうか?インターネットには、目的地へ電気信号を届ける決まりごとがあります。(何で…

Unity:新しいInputSystemを動かしてみた

■前置き Unity 2019 のロードマップを確認して、新しい InputSystem が来るヨ とのことなので、どんなものかだけ触ることにしました。正式導入は 2019.2 頃なので、2019年9月末ってところです。(予定通りに事が進めば) その後は現在の Input が廃止されて…

Javascriptのコード整理でESLint

一番参考になった記事 Visual Studio CodeでESLintを使う – 山本隆の開発日誌ESLint にかけずに git に提出したら死罪だおらーみたいなプロジェクトに配属 Visual Studio Code と npm コマンドが機能する状態で ESLint について無知な私 手順を教えてくださ…

Unity:ECSとJobSystemsでFractal Brownian Motion(fBm)ノイズを生成

■実行結果 10000ブロックの高さの計算にバックグラウンド処理で 2.0 ms, メインスレッドは Job をキックするだけなので 0.05 ms でした。 なお ECS による高速化前は10000 ブロックの高さの更新に 68 ms を要していました。 およそ 1360 倍の高速化に成功し…

Unity2017~2018の追加機能の習熟作業を振り返る

前回の目標を達成しました。以下が前回の目標に掲げたこと Unity に頂点カラーのマテリアルは用意されていません。 そこで、シェーダを多少はいじれるようにしておきたいと考えました。 そのほかUnityのシェーダーを編集できる UI の確認 タイムラインもそろ…

Unity:Timelineでスクリプトの関数を呼ぶ具体的な手順

昨今のゲームはアイドルが歌って踊るシーンを眺めたりするものが多く、そういったシーンを作るときにタイムラインを制作することになります。各社が内製ツールで頑張っていたため、Unity 2017 で公式に導入されました。 docs.unity3d.com私たちが知りたいの…

Unity:ShaderGraph to ShaderCode

There is a way to convert shader graph to shader code.You can open the graph, right click the master node and select "Copy shader".Paste the shader code to your shader file.Example: Vertex Color Shader Shader "Unlit Master" { Properties { …