Synamon’s Engineer blog

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

Amazon CodeCatalystを触ってみる

こんにちは、エンジニアの黒岩(@kro96_xr)です。 本記事は Synamon Advent Calendar 2022 の7日目の記事になります。 adventar.org はじめに 今年もAWS re:Invent 2022で様々な新機能の発表やアップデートがありました。 今回はそれらの中で気になったAmazon…

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

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

KafkaとKafkaJSのHelloWorldを試してみた

はじめに エンジニアの松原です。普段の開発ではHTTPサーバーを扱うことが多いのですが、負荷軽減のための様々なサーバー側のギミックについて調べていく中で、メッセージキューの仕組みについて目に留まりました。 今回はKafkaについて紹介します。元々メッ…

Synamonアドベントカレンダー2022を開催します!!

本記事は Synamon Advent Calendar 2022 の1日目の記事になります。 adventar.org こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 もう今年も終わりに近づいてきましたね。 年末といえば、アドベントカレンダーの季節ですね! 昨年…

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…

ドメイン切替対応でリダイレクト用途だけのサーバをCloudfront+S3で作った話

はじめに こんにちは、エンジニアのクロ(@kro96_xr)です。バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 今回は弊社ティザーサイトのドメイン変更時にリダイレクト用のサーバが必要になり、Cloudfront+S3という構成で作成した話…

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

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

ソフトウェアライセンスでヒヤッとした事例から学んだ教訓

こんにちは、エンジニアリングマネージャーの渡辺(@mochi_neko_7)です。 少し前にTwitterで、GitHub CopilotがLGPLライセンスのコードをライセンス表記なしに出力する、という話が話題になったのをご存じですか? @github copilot, with "public code" blo…

メタバース企業でのバックエンドエンジニアの役割について

こんにちは、エンジニアのクロ(@kro96_xr)です。バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 今回はいつもと少し毛色を変えて、イベントレポ兼採用寄りのお話をしたいと思います。 なお、タイトルでメタバース企業と銘打ってし…

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

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

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

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

【Golang】GinのログをカスタマイズしてリクエストIDを追加する

こんにちは、エンジニアのクロ(@kro96_xr)です。バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 少し前にタイトルの件について調べていたのですが、あまりまとまった記事がなさそうだったのでまとめることにしました。 もし本記事…

運用開始から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をダ…

テックブログを週1回・1年間更新継続するための3ステップ

Synamon採用担当の熊谷(@spirea_xxx)です! なんと、弊社のテックブログが週1回・連続1年更新を達成しました~!!! 弊社のテックブログ記事や1年更新のことををSNSで皆さんに紹介する中で「テックブログの週1回更新を1年間続けるって、相当すごいんじゃな…

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)を使っていますか? 自分はベータ版の頃に不安定だったという印象でこれまであまり触ってこなかったのですが、いざ触って…

Terraform&Github ActionsのCI/CD環境でECSタスク定義の二重管理を解消する方法

こんにちは、エンジニアのクロ(@kro96_xr)です。バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 今回はTerraformとGithub Actionsを組み合わせてECS Fargateを運用していくにあたり、 タスク定義の二重管理が発生していた話 二重…

GoでHTTP/3サーバーを試してみる

はじめに エンジニアの松原です。今年6月にHTTP/3がRFC 9114として標準化されましたが、主要なWebフレームワークで対応するのはまだ時間がかかりそうなイメージがあります。 この背景にHTTP/3ではQUICという新しいプロトコルを利用すること、HTTP/3で通信す…

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

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

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

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

StreamDeckのプラグインを作ってみる

はじめに エンジニアの松原です。趣味のガジェット漁りで以前 StreamDeck を購入しました。エンジニアとして、デバイスに関して何かできないか調べていたところ、このデバイスではプラグインを自作できるようで、ソースコードにhtmlとJavascriptが使われてい…

NFTなんもわからんのでとりあえず試してみた②〜Hardhatでテスト実装編〜

こんにちは、エンジニアの黒岩(@kro96_xr)です。 バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 前回自分の記事ではブラウザ上で動作するRemix IDEを使ってコントラクトの実装を試してみました。 synamon.hatenablog.com 今回は…

URPで丸影を真下に落とす方法の検討

はじめに Shader好きなエンジニアのおうどん(@oudon)です。 キャラクターの影を軽量化するため丸影にしつつ真下に落とす、かつ数も多く表示したい という要件でShadowMap拡張とDecalの2パターンほど試してみました。 ShadowMapをそのまま利用できないか 軽量…

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

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

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

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

NestJS+Svelteを使って簡単なSSRを試してみた

はじめに エンジニアの松原です。普段の業務ではバックエンド開発業務が多く、たまにはフロントエンドのこともしたいと思いつつ、新しいWebフレームワークにも触れたいと考えたため、 バックエンドとしてRails風にMVCベースの設計を持っているNestJS(厳密に…

NFTなんもわからんのでとりあえず試してみた〜スマートコントラクト実装とERC721対応〜

こんばんは、エンジニアの黒岩(@kro96_xr)です。 バックエンドを中心にフロントエンドやらインフラやら色々担当しています。 突然ですが、最近NFTやらWeb3やら良くも悪くも盛り上がっていますね。 個人的に色々思うところはありつつ、技術としてはキャッチア…

Serverless Frameworkを使ってlambdaとAPI GatewayでGoで書かれた簡単なAPIを作る

ごあいさつ エンジニアのうぃすきー(@Whisky_shusuky)と申します。弊社ではインフラ・バックエンド・フロントエンドとWeb周りを全般的に対応しております。 前回Serverless Frameworkを使ってlambdaでメール用のワーカーをデプロイする記事を書きました。ワ…