Synamon’s Engineer blog

Synamonはリアルとデジタルの融合を加速させるため、メタバース領域で法人向けにサービス提供を行うテックカンパニーです。現在開発を進めている「メタバース総合プラットフォーム」をはじめ、メタバース市場の発展に向けた事業展開を行っています。このブログでは、メタバース技術とその周辺の技術、開発全般に関してエンジニアがお話しします。

Unity

SYNMNのマルチプレイの仕組みについてちょっと紹介

本記事は Synamon Advent Calendar 2022 の5日目の記事になります。 adventar.org エンジニアの岡村です。 Synamonが現在ベータ版として提供している新しいアプリ「SYNMN」。皆さん触ってみましたか? 今回は、そんなSYNMNのマルチプレイ処理をちょっと紹介…

Addressablesの意図しない依存関係をチェックしたい

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 Synamonの新プロダクト SYNMN (読みはシナモン) synmn.app のベータ版のリリースが始まり、8月頃に記事を書いた Unity の Addressables 周りの仕組みが運用に乗り始めました。 syn…

GitHub ActionsのキャッシュをS3に移行した

GitHub公式のキャッシュ機能 GitHub公式のキャッシュ機能の問題点 tespkg/actions-cacheの採用 結果 こんにちは、エンジニアの岡村です。 このブログで何度か紹介してきましたように、弊社ではGitHub ActionsとAWSでUnityのCIを回しています。 synamon.haten…

Oculus IntegrationからQuest Proの新機能を触ってみる(視線追従)

はじめに エンジニアの松原です。運よくQuestProの発売日の直後(10/26)に届き、Quest2で積みっぱなしになっていた釣りゲームを週末やっていました。 ふと、最近Unity上でHMDを使った開発をしていないことに気づき、この機会にQuest Proの新機能に触れる目的…

Unityの設定を一括で切り替える為に作ったEditor拡張の紹介

EnvironmentContextSwitcher 主な機能 コンテキストの追加、削除 コンテキストの適用 コンテキストの定義の編集 ビルド、再生時の自動適用 C#スクリプトからのコンテキストの適用 実装 その他細かい実装の話 ContextSwitcherWindowからContextStoreを参照す…

プロジェクトをNetcode for GameObjectsのリリース版にアップデートする

はじめに エンジニアの松原です。先日Unityがマルチプレイヤーのための新しいツール群の発表をUnityの公式ブログから発表がありました。 この中に含まれるNetcode for GameObjectsに関してはこのテックブログでもいくつかの記事(その1、その2、その3、その4…

運用開始から4か月経ってから振り返るAWS&GitHub&Terraformを使ったUnity CI環境

エンジニアの岡村です。 このテックブログでは以前、AWS EC2でUnity環境を立ち上げ、GitHub ActionsのCI環境を構築する記事シリーズを投稿しました。 synamon.hatenablog.com synamon.hatenablog.com synamon.hatenablog.com synamon.hatenablog.com 今回、…

UnityのAddressablesのRemoteコンテンツ運用 - ContentCatalog

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 今回は前回の記事の続きとして、UnityのAddressablesのCatalog(Content Catalog)の詳しい紹介をします。 前回の記事はこちら。 synamon.hatenablog.com RemoteからAssetBundleをダ…

UnityのBuildSettingsウィンドウの表記とスクリプティングAPIの対応を纏めました(Unity 2021.3.0f1)

前提 ビルドプラットフォームについて Architectureの指定について Windows macOS 余談:ビルド時にプラットフォームを切り替えてもビルドスクリプト中の#if分岐は有効にならない Build Settings 一覧 Windows macOS Linux Android iOS WebGL 以上 エンジニ…

UnityのAddressablesのRemoteコンテンツ運用 - ResourceProviderのカスタマイズ

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 皆さんはUnityのAddressables(Addressable Asset System)を使っていますか? 自分はベータ版の頃に不安定だったという印象でこれまであまり触ってこなかったのですが、いざ触って…

unitypackage形式のアセットをupmパッケージに改造する

エンジニアの岡村です。 Unity2020.1から実装されたupmはバージョンアップを重ね、GUIでのインストールやカスタムレジストリの登録まで出来るようになり、かなり実用的といえる機能になってきています。 しかし、Unity AssetStoreで配布されているアセットは…

Unityでアバターを外部からいい感じにロードしたい

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 私の前回の記事では、Unityにおける画像のランタイムでのロード方法を紹介しました。 synamon.hatenablog.com Unityは画像に限らずRuntimeで外部リソースを取り込もうとするとひと手…

NetworkedProperty(に相当する機能)のすゝめ

エンジニアの岡村です。 Unityでネットワークマルチプレイを行うアプリケーションを開発する場合、ある程度以上の規模があるのならば、その実装にはネットワークライブラリを利用するのが一般的かと思います。 その際に使われるライブラリにもいろいろな製品…

Unityで画像データをいい感じにロードしたい

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 今回はUnityでの画像データのロード方法に関する記事になります。 たかが画像データですが、意外とまだ王道の取り回しが確立されていない印象です。 最近また画像のロード周りを触る…

Unity上で外部デバイスとの同期処理を行うための考察(タイムコード読み取り編)

はじめに エンジニアの松原です。Unityと外部デバイスの間で同期処理を取ろうとするとき、単純に時間のタイミングだけ測って同期を取ろうとしても、デバイス内部で利用しているクロックジェネレータの仕様によって、時間が経つほどズレが大きくなってくるこ…

InputCompositeBindingのTouchscreenでの応用例の紹介

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 前回、Unityの(New) Input Systemでデバイス入力をカスタマイズできるInputCompositeBindingを紹介しました。 synamon.hatenablog.com こちらの記事ではInputCompositeBindingをそも…

AWSを使ったクラウドUnityビルド環境の構築~GitHub Actions構築編~

エンジニアの岡村です。この記事は以前掲載した『AWSを使ったクラウドUnityビルド環境の構築~ビルドサーバー構築編~』の続編であり、シリーズの3記事目です。 synamon.hatenablog.com synamon.hatenablog.com また、インフラメンバーの黒岩さんに書いてい…

AWSを使ったクラウドUnityビルド環境の構築~ビルドサーバー構築編~

エンジニアの岡村です。この記事は以前掲載した『AWSを使ったクラウドUnityビルド環境の構築~ライセンスサーバー構築編~』の続編であり、シリーズの2記事目です。 synamon.hatenablog.com 前回の記事ではEC2を使ってライセンスサーバーを作成したので、そ…

Unityの(New)InputSystemでBindingを好きにカスタマイズできるCompositeBindingsの紹介

はじめに こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 少し前まではマネジメントや採用を中心にやっていましたが、最近はUnityの開発をメインにやるようになりました。 今開発しているプロジェクトでは、Unityの新しいInputSyst…

AWSを使ったクラウドUnityビルド環境の構築~ライセンスサーバー構築編~

エンジニアの岡村です。 最近まで、弊社でのUnityを使ったクライアント開発では、社内の物理サーバーに立てたgitとJenkinsを使ってバージョン管理及びCIを行っていました。GitHubは主にサーバー開発に使われており、Unityのコードは検証用のような小さなもの…

Unity2021でVRテンプレートを使ってOculusQuest2の開発環境を構築してみる

こんにちは、Synamon のエンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 自分はエンジニアではあるのですが、肩書きにもあるようにここ1~2年くらいは開発以外の仕事(EM、採用)をすることがほとんどで、実は最近のバージョンのUnityを触れてい…

UnityのTimelineを利用してGUIのトランジション効果を作ってみる

UnityのTimelineを使って画面遷移のアニメーションをコントロールする方法について記事に書いてみました

Addressable Asset System入門

最新環境(Unity2021.2)でのAddressablesシステムの紹介記事です。Addressablesの基本的な利用方法がわかります。

Netcode for GameObjectsでMobをスポーンさせる

Synamon Advent Calendar 2021の18日目の記事として、Netcode for GameObjectを利用してPlayerを追跡するMobをマルチプレイヤーで実現する方法についてまとめました。

Netcode for GameObjectsでプレイヤー間で同期する物体の生成 / 破棄

Synamon Advent Calendar 2021の11日目の記事として、現在Synamon's Enginner blogでいくつかの記事で取り上げている、Netcode for GameObjectsで同期オブジェクトを扱うための方法について紹介します

Netcode for GameObjectsの機能紹介 NetworkTransformコンポーネントについて

Synamon Advent Calendar 2021の4日目の記事として、前回Synamon's Enginner blogで紹介したNetcode for GameObjectの機能のうち、NetworkTransformの機能について紹介しました

Unity公式のNetcode for GameObjectsのHelloWorldチュートリアルを改造しつつ触ってみた

Netcode for Gameobjects についてどのようなものかを調べ、注意点やハマりやすいところについて書きました。動作サンプルをGitHubに公開しています。

Unity2021.2で使えるC#9の機能

Unity2021.2から新しく使えるようになったC#9の機能を紹介します。

UnityのInputSystemからQuest2のデバイスの取り扱い方を考える

UnityではInputSystemという外部入力デバイスを扱うライブラリが登場し、従来から大きく仕組みが変わっています。本記事はInputSystemを通してのVRデバイスの取り扱いについて触れていきたいと思います。実際にQuest2(Oculus Link)を使って試してみました。

いろいろな種類がある .NET の違いとは

はじめに こんにちは Synamonでエンジニアをしている庭山です。 Unityでの開発では主に.NET(ドットネット)という環境下、C#というプログラミング言語を使用しています。 また、次世代の .NET 6 というバージョンが近く正式リリース予定(2021年11月)となっ…