simplestarの技術ブログ

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

Programming

Unity:CubeWalkゲームのキューブの破壊

前作のキューブの破壊は? 今回の更新で洞窟やかまくらが作れるようになりました昔はこんな感じでキューブの位置から、キューブのデータを特定していた模様 internal unsafe bool GetCubeByPosition(Vector3 position, out Vector3Int chunkIndex, out Vecto…

AWS:お金のかからないElastiCache活用術3

simplestar-tech.hatenablog.com の続きローカル環境で Cube データを仮で Redis Mass Insertion するための plotocol を生成する C# コードがこちら using System.IO; using System.Text; namespace CubeWalkDataMaker { class Program { static void Main(…

AWS:お金のかからないElastiCache活用術2

simplestar-tech.hatenablog.com のつづき 適当な値を redis に詰める ローカルに立てた Redis 5.0.5 サーバー、適当な値を詰めてみます。 たとえばkey : value 9999 : 100 ffff : 100 abcd : efghこれを前回導入した rdb-tools で json に出力してみましょ…

AWS:お金のかからないElastiCache活用術1

まえがき CubeWalk ゲームは…キューブを置く処理に不正がないようサーバーで実行されます。 世界の情報はたった一つのサーバーであるため、負荷分散を考えて DB は同時アクセスに耐えられる DynamoDB などを考えてみましたが 世界データを格納するだけで 600…

Python:VSCodeデバッグ環境構築

一回やっておくと、あとからどうでも良くなるけど、最初からないとつらいAnaconda を Windows に入れて、新しい env を base から conda コマンドで作るのはいい conda create -n py37 python=3.7とかねデバッグしたい python ファイルを VSCode で開いて .v…

AWS:はじめてのAPI Gateway⇄Lambda

概要 前回の Lambda と ElastiCache は VPC 内に引きこもるため(そういうセキュリティグループに配置したので)、インターネットからアクセスすることはできません。 simplestar-tech.hatenablog.com API Gateway からトークン認証付きで Lambda を呼べるよ…

AWS:はじめてのLambda⇄ElastiCache

概要 PlayFab のバックエンド処理が AWS と連携できます。 具体的には同期 http 通信が行えるので、そこを AWS の API Gateway → Lambda → ElastiCache とつなぎます。 前回の記事 simplestar-tech.hatenablog.com で確認できた ElastiCache と Lambda の接…

AWS:はじめてのElastiCache

まずはチュートリアルに従って動かしてみましょう。 docs.aws.amazon.com ステップ 1: クラスターを起動する 気にするべきは、新しいセキュリティグループを作成しておくことです。 インバウンドポートは 6379 でソースIPは別途用意した EC2 インスタンスの…

VRoidHubにログインしないでゲームを続けられる実装調査

ログインしないときの動作を策定するにあたり、現状を整理し、作業ログを残します。 簡単に今のフローをおさらい VRoid Hub のログインは VRoid SDK のサンプルに任せっきり ゲームを起動すると起動直後「VRoid Hub に接続」ボタンを表示、同時に「☓」の閉じ…

PlayFab:ログインタイミングを気にせずプログラミングする術

最初にひらめいたのはアクションをキューイングすればいいんだよ!の一言言葉をプログラムに書き下すと次の通り ちゃんと期待通り動いた前の記事 simplestar-tech.hatenablog.comの TitleData を取得する関数の処理、コールバックで成功を返すつくりなので、…

PlayFab:タイトルデータで接続先サーバーを知る

基本はここで学びます。 qiita.com任意のデータ構造を配列で取得できるようになったら、少し汎用的なタイトルデータ取得コードを記述します。C# でジェネリックの型名を文字列で取得するには var type = typeof(T); var titleData = JsonSerializer.Deserial…

Magic Onion:複数ポート番号のサーバーをdockerコンテナで

手順だけ記録しておきます。基本 qiita.comここで Dockerfile を記述しているけど FROM mcr.microsoft.com/dotnet/core/runtime:2.2 WORKDIR /app COPY . .とエントリポイントを削除あとサーバー側の実装で引数一個目で port 番号を受け取って利用するように…

PlayFab:Unityゲーム内課金システムPayPal編

個人ゲーム制作でも何百万人にも膨れ上がるユーザーを平気で捌ける順応性のあるバックエンドサービスを短期無料で作れる時代になりました。 Amazon の GameSparks, Google の Firebase, Microsoft の PlayFab, 富士通クラウドテクノロジーズのmobile backend…

Unity:VRMのMToonマテリアルをLightweightRPのShaderGraphで、その3で公開

# はじめに 内容は玄人向けですが、はじめての方にもわかりやすく説明します。 Unity とは、ゲーム開発するときに、共通で必要になるものをだいたい用意してくれるツールです。(基本無料です。) VRM とは、Virtual Reality における3Dモデルデータを扱うた…

Unity:VRMのMToonマテリアルをLWRPのShaderGraphで、その2

こちらの記事の続きです。 simplestar-tech.hatenablog.comUnity Shader Graph で VRM の MToon 表現を LWRP で実現してみます。 カスタム Master Node の作り方まで確認できたので、具体的な Toon シェーディングコードを GitHub - you-ri/LiliumToonGraph:…

Unity:VRMのMToonマテリアルをLWRPのShaderGraphで、その1

自分だけの3Dキャラクターをあらゆるゲームタイトルに登場させるというのは、ゲームが始まった頃からの全人類の悲願でした(二回目) 長い間、キャラクターエディットという、ゲーム開始時のアバター選びという機能の提供が続いていましたが、ついに一つ作れ…

CubeWalkGame昼と夜

LWRP アセットがお気に入りの今日このごろ ゲーム内に時間を設定して、これに対して昼と夜の見た目にプロシージャルに変化する様子を確認してみたいと思います。あ、できちゃったwww.youtube.com詳細はツィートにありUnity Timeline で Skybox をプロシージ…

CubeWalkGameリファクタリングでわかりやすく

今回は CubeWalkGame シリーズの最終回ということで カメラを DOTween でぐるりと軌道を描くように動かして様子を見ます。 あとはコードを見直しながら、直したいところ直していきます。最終的にフレームレートを落とさずに、無駄なメッシュが残ること無く、…

CubeWalkGame非同期読み込みと近傍優先処理

CubeWalk シリーズです。 1.Unity ECS による動的頂点生成と面生成 2.チャンクをまたぐキューブデータ参照 3.キューブの回転表現とテクスチャの貼り付け 4.チャンクデータの永続化と描画負荷低減のための階層化 5.プレイヤーカメラが移動するタイ…

CubeWalkGameプレイヤーカメラ移動によるチャンクの取捨選択

最後まで読むと得られる結果このシリーズの続きです。 simplestar-tech.hatenablog.com1.Unity ECS による動的頂点生成と面生成 2.チャンクをまたぐキューブデータ参照 3.キューブの回転表現とテクスチャの貼り付け 4.チャンクデータの永続化と描画…

CubeWalkGameなだらかな地形生成と永続化

このシリーズの続きです。 simplestar-tech.hatenablog.com1.ECS による動的頂点生成と面生成 2.チャンクをまたぐデータ参照 3.キューブの回転とテクスチャの設定と階段を登ってきました。今回は過去記事でいうところのこのあたり simplestar-tech.hat…

Unity:CubeWalkGameのキューブのテクスチャ座標と回転

# まえがきこれらの記事シリーズの続きです。 今回は作業メモになっているので、開発者以外が読むと辛い文章かも…simplestar-tech.hatenablog.com simplestar-tech.hatenablog.com シリーズ名は CubeWalkGame として、前回はチャンクをまたぐキューブ情報の…

Unity:ポインターのポインターを入力にECS

# まえがきUnity でキューブを敷き詰めた世界で、VRMオンラインチャットできることを目指して仕事の合間に技術調査してます。(かれこれ2年くらい) Unity も 2017.1 から気づけば 2019.1 ですね。キューブ一つひとつをメッシュオブジェクトにすると、下記を…

Unity:ECSでメッシュオブジェクトを生成する方法

まえがき Unity で動的にメッシュオブジェクトを作成して、キャラクターと衝突判定を行えるようにコライダーを設定する…となると?Unity の書式により 1.シーン内に GameObject インスタンスを作り、追加コンポーネントは MeshFilter と Renderer, MeshCol…

Unity:Amazon DynamoDB を C# から利用する

高速読み書きがスケーラブルなデータベース Dynamo DB を Unity から利用する 現在のルームメンバー一覧を取得したいとか、これからジョインするルームを決めるときに、ルームに何人入っているのかなどを確認したいときがあるのです。 S3 にファイルとして情…

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

数十MBある大きいVRM データのリアルタイム送受信 最後まで読むとできるようになる絵この記事の続きです。 simplestar-tech.hatenablog.comMagic Onion を Unity 間のリアルタイム通信に使いましたが、送受信するデータが 1MB より大きくなる場合は別の手段…

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

リアルタイム通信でオンラインチャット 最後まで読むとできるようになる絵こちらの記事の続きです。 simplestar-tech.hatenablog.comUnity 同士でリアルタイム通信するためのアセットはいくつかある様子ですが、全部試してられません。 C# を書く感覚でリア…

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

チャット入力画面とチャットテキストの表示 最後まで読むとできるようになる絵プラス、バルーンはこんな動きをする予定Unity で近くにいるキャラクターの発言だけを聞き取れるようにしつつ、画面外にいてもどこから声をかけられているかわかるような仕組みを…

Unity:VRMの身長を測る

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

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

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