Happy Elementsのフィード

https://zenn.dev/p/happy_elements

京都でスマートフォン向けゲームを開発・運営している Happy Elements カカリアスタジオの Publication です

フィード

記事のアイキャッチ画像
「Unityでオブジェクトを移動させるとき、あるキーを押すだけで驚きの変化が・・・!?その秘密とは――」
Happy Elementsのフィード
Unityでオブジェクトを配置しているとき、微妙なズレに悩んだことはありませんか?実は、Shiftキーを押すだけで、その悩みをすっと解決できるんです。今回はそんな便利な小技を、ちょっと変わった「物語仕立て」でご紹介します。 「なんでズレるんだよ!」夜更け、ひとつの部屋にカチャカチャと軽快なキーボード音が響いていた。時計は深夜2時を回っている。モニターにはUnityのエディタ画面。オブジェクトを動かしては、ため息をつく青年がいた。名前はユウマ。今年からハッピーモーメンツ株式会社に入社したばかりの新米プログラマーだ。「また微妙にズレてる……!」彼はモニターに向かって小さ...
12日前
記事のアイキャッチ画像
AWS SDK for Go を用いて S3 の条件付き書き込みのエラーをハンドリングする
Happy Elementsのフィード
AWS S3 の条件付き書き込み機能を用いた際の AWS SDK for Go でのエラーハンドリング方法です。BucketAlreadyExists などは専用の型が存在していますが、 2025/04/30 時点では PreconditionFailed に関するエラーは一般的なエラー型から判断する必要があります。AWS SDK for Go での API 呼び出しに関する操作は "github.com/aws/smithy-go" を利用しているため、 smithy-go のレスポンスエラーとしてハンドリングを行います。package mainimport ( "g...
19日前
記事のアイキャッチ画像
Capacity Providerについて
Happy Elementsのフィード
はじめに業務でcapacity providerに触れる機会がありましたので、ご紹介したいと思います。 Capacity Providerとはcapacity providerとは、ECSクラスターが必要とする計算リソースの管理を簡素化し、インフラストラクチャのスケーリングを自動化するための機能です。つまり、作業者はcapacity providerを設定するだけでタスクのオートスケーリングをECSに任せることができる機能です。このcapacity providerは、ECSタスクが実行される計算リソース(EC2インスタンスまたはFargate)を指定するために使用されます...
2ヶ月前
記事のアイキャッチ画像
Amazon Personalizeの導入検証
Happy Elementsのフィード
はじめにとあるミーティングで協調フィルタリングを利用できないかという話がありました。会社としてAWSを利用していることもあり、Amazon Personalizeの導入を検証してみようということとなりましたので、検証内容について記事にしようと思います。参考https://ja.wikipedia.org/wiki/協調フィルタリング Amazon PersonalizeとはAmazon Personalize は、データを使用してユーザーにアイテムのレコメンデーションを生成する、フルマネージド型の機械学習サービスです。また、特定のアイテムやアイテムメタデータに対...
3ヶ月前
記事のアイキャッチ画像
知ってるとちょっと便利な「Constraint」の機能
Happy Elementsのフィード
はじめに業務上で積極的に使うことはあまりないのですが、知ってるとちょっとだけ便利な Unity の機能を紹介します。Unity Editor で演出等を作成する上で、アニメーションデザイナーさんに演出を作成いただく際、Animation Clip 等でいただくことが多いと思うのですが、処理の都合上、GameObject の親子関係を変えたいが、変更するとアニメーションが動かなくなるため親子関係を調整できないことがたまに発生します。アニメーションを調整してもらうのは手間がかかりすぎるし、アニメーション調整なしで動かそうとすると処理が煩雑になりすぎる場合、以下で解説する Const...
4ヶ月前
記事のアイキャッチ画像
Spineの活用方法(メルモンでの事例)
Happy Elementsのフィード
「フィーリアのモンスターといっしょ!」(通称メルモン)の開発に関する内容です。https://mercstoria.happyelements.co.jp/merumon/メルモンではキャラクターをSpineで作っています。ちょっと変わった対応も入れているので、参考までにいくつか紹介します。 目次1. 色を変える方法2. 低fpsで再生する方法3. イベントの取得4. モーションに追従するオブジェクトを作る方法5. slotの間にオブジェクトを挟んで表示させる方法6. 特定のslotを非表示にする方法7. 当たり判定8. 物理演算 環境Unity 202...
4ヶ月前
記事のアイキャッチ画像
GitHubProjectを使用して便利だった設定の紹介
Happy Elementsのフィード
GitHubProjectを使用して便利だった設定を紹介したいと思います。 Workflowsの活用GitHub上のPRやIssueを自動的にProjectに紐づける(または、アーカイブする)設定が可能です。GitHubProjectの設定画面より「Workflows」を開きます。Issueが作られた時にProjectに紐づけるいつ:boys2_issues に Issue が Open したときにどうする:Project項目を追加する(Add the item to the project)Issueが閉じられてn日間経過後にProject項目をアーカイブ...
5ヶ月前
記事のアイキャッチ画像
【C#】シンプルなあいまい検索を実装してみた
Happy Elementsのフィード
はじめに本記事では、あいまい検索の中でも比較的シンプルな実装について、ご紹介します。また、住所一覧から住所を検索するUnityエディタ用の機能を用意して、動作を確認してみます。 参考情報本記事を執筆するにあたり、以下を参考にいたしました。有益な情報を公開していただき、ありがとうございます。 実装に関する参考情報より高度な実装が知りたい方は、こちらをご参照ください。https://postd.cc/reverse-engineering-sublime-text-s-fuzzy-match/ 住所一覧に関する参考情報動作確認時に使用する住所一覧については、以下...
5ヶ月前
記事のアイキャッチ画像
[Unity]3D映像表現のマルチアスペクト対応
Happy Elementsのフィード
Happy Elements株式会社 カカリアスタジオで『あんさんぶるスターズ!!Music』のゲームエンジニアをしているI.Y.です。この記事では、Unityで作成した3Dの映像表現を、様々な解像度・アスペクト比の端末で違和感なく表示するために行っていることについて、簡単にご紹介いたします。また、関連する話題として、空間に色を加えるためのポストエフェクトの実装について少し説明いたします。 前提モバイルアプリ「あんさんぶるスターズ!!Music」の音楽ゲームで表示されるMVで使われているものです。Unity2022.3系、Built-in Render Pipeline で開発...
6ヶ月前
記事のアイキャッチ画像
乱数アルゴリズムについて
Happy Elementsのフィード
はじめにユニークなIDを登録する場合、128bitのランダムな数値であるバージョン4のUUIDがよく使われています。このUUIDは同じIDが被る衝突確率が限りなく低く、安全にユニークな値を得られます。どれくらいの確率かというと約3*10^17回UUIDを作っても99%の確率で、連続して一個も被らずUUIDを作れる可能性があるというくらい低い確率です。そんなUUIDについて上長と話していた時に、一つの疑念が思い浮かびました。「完全に一様なランダムアルゴリズムがあれば128bitもいらないんじゃないか?」UUIDの6bit分は決まってるので数の総数的には2^122個の数値があり、総...
6ヶ月前
記事のアイキャッチ画像
Railsパフォーマンスチューニング: ActiveRecordインスタンス化する個数を減らす
Happy Elementsのフィード
はじめに去年あたりから、運用ゲームアプリのサーバーサイドが抱える負債返済を目標に掲げて、モニタリングツール(本記事の内容を実施していた時点ではNew Relic)で処理時間が目立つAPIの調査、改善を行っていました。特に処理時間がかかっているものに、ログインAPI(タイトル画面で呼び出される)が挙がっており、本文書はそれを改善した話になります。 調査(応答が遅いなど)一定条件を満たしたトランザクションについて、トレースログを確認することができるので、処理時間の中で特に大きな割合を占めているもの(Slow span)を退治していきます。デフォルトだとコード部分はApplic...
7ヶ月前
記事のアイキャッチ画像
【Rails】ActiveRecordでXAトランザクションを無理やり使う
Happy Elementsのフィード
概要シャーディングを使うマルチDB環境において、シャードを跨る更新処理の整合性を高めたい。Railsで実現するなら、トランザクションのネストが常套手段と思います。トランザクションをネストする場合、タイミング次第で一方のDBはコミット、一方のDBはロールバックといった不整合な状態になり得ます。更に精度を高める手段として分散トランザクションがあります。分散トランザクションは、複数の独立したデータベースやリソースマネージャに対して一貫したトランザクション処理を保証するための技術です。MySQLには分散トランザクションとしてXAトランザクションという機能があり、Railsから使っ...
7ヶ月前
記事のアイキャッチ画像
AndroidStudioが意外と便利だった
Happy Elementsのフィード
はじめにUnityでゲーム開発をしているとめったに触れることのないAndroidStudioですが、けっこう便利だなと思える場面が多々あったので、そのご紹介です。確認環境:MacOS Ventura 13.7Android Studio Koala 2024.1.1 Patch 1 logcatが見やすいAndroid実機からのログ表示に使うadb logcatコマンド。adb logcat -s Unity:Eこのようにオプションの指定で出力をフィルタして利用するのが一般的かと思いますが、AndroidStudioのLogcatタブから見ることも出来ます。色分...
8ヶ月前
記事のアイキャッチ画像
HttpClient と YetAnotherHttpHandler で AssetBundle のダウンロードを HTTP/2 化してみる
Happy Elementsのフィード
はじめにAddressables を利用しつつ、AssetBundle のダウンロードを HTTP/2 化することで、高速化できるような仕組みを考えたいと思います。 前提Addressables では BundledAssetGroupSchema の AssetBundleProviderType に設定されている IResourceProvider の実装に従って、AssetBundle をロード・アンロードします。Addressables のデフォルトでは、AssetBundleProvider という実装が設定されており、内部的に AssetBundleResou...
8ヶ月前
記事のアイキャッチ画像
【MySQL】UPDATE or INSERT な UPSERT を諦めた話
Happy Elementsのフィード
概要MySQLを利用するアプリケーションで、UPSERTをINSERT or UPDATEではなく、UPDATE or INSERT にしたかったけど、諦めた話です。 目的MySQLでUPSERTはINSERT ... ON DUPLICATE KEY UPDATEを使うのが定番です。INSERTでduplicateとなった場合にduplicateなレコードに対してUPDATEを行う挙動で、この記事ではINSERT or UPDATEとします。上記の挙動により生じる、以下の点について対策することが目的となります。更新が主なテーブルの場合、上記のクエリによる重複判断のオ...
8ヶ月前
記事のアイキャッチ画像
【Ruby on Rails】FCMのHTTP v1 APIでのプッシュ通知配信の基本や上限の話
Happy Elementsのフィード
はじめにFirebase Cloud Messaging(FCM)を利用したリモートプッシュ通知の配信について、2024年6月20日で従来利用していたLegacy APIが廃止になり、HTTP v1 APIへの対応を行いました。少し記事にするのが遅くなりましたが、対応を行ううえで色々と調べたので、自分の中での整理も兼ねて、これから対応される方や新たにRuby on RailsアプリやRubyでFCMを使ってリモートプッシュ通知を配信したい方のお役に立てればと思い、まとめてみたいと思います。HTTP v1 APIについてhttps://firebase.google.com/d...
9ヶ月前
記事のアイキャッチ画像
日時偽装事情について考えてみる
Happy Elementsのフィード
はじめに先日、チーム内のエンジニアで雑談している際に、過去案件での「日時偽装」事情について少し盛り上がったので、この機会に振り返りも兼ねて共有できればと思います。また、日時偽装については、過去にも弊社で投稿している記事がありますので、よろしければそちらも御覧ください。 日時偽装について日時偽装は、「未来に開催されるあの施策を確認したいので、一時的に日時を○○にしたい!」ってときに使うシステムです。弊社のようにゲーム運営をしていたり、WEBサービスを提供している企業ではわりとメジャーなシステムかと思います。 日時偽装方法についてさっそく本題なのですが、そんな日時偽装を...
9ヶ月前
記事のアイキャッチ画像
[Unity]Hierarchyウィンドウで参照切れを発見できるようにすると便利
Happy Elementsのフィード
Hierarchyウィンドウで参照切れを発見できるようにする方法を紹介します。基本的に以下の記事の実装を参考にさせていただきました。https://qiita.com/masamin/items/78ba7238dae7aacdc28c 元記事からの変更点元記事と基本的に同じですが、以下の点が異なります。Required属性がついているフィールドがnullの場合もエラーアイコンを表示する。(上記スクショのMain)子オブジェクトが展開されていない場合に、子オブジェクトのどこかに参照切れがある場合は警告アイコンを表示する。(上記スクショのBattleField)エラーメ...
10ヶ月前
記事のアイキャッチ画像
半透明EffectにDepthOfFieldを適用してみた
Happy Elementsのフィード
はじめにUnityのデフォルトのPostEffectのDepthOfField(以下、DOF)では、ShaderGraphやVFXGraphで作成した半透明エフェクトにはぼかしの効果がかかりませんでした。この記事では、そのエフェクトにもぼかし効果が反映されるように対応した内容を紹介します。 動作環境Unity 2022.3.23f1Universal RP 14.0.10 結論からデフォルトDOFで思った通りボケなかった半透明エフェクトもカメラからの距離に応じてボケるように対応しました。デフォルトDOFカスタムDOF DOFの仕組みに...
1年前
記事のアイキャッチ画像
Difyの活用について
Happy Elementsのフィード
Difyを導入しました弊社では主にデータ分析やプログラミングの効率化などでLLMを活用しています。GPT-4が出て4ヶ月後には誰でも利用可能な形でチャット機能をリリースするなど環境整備を行ってきました。当時はフロントエンドとして以下のOSSを使いLLMはAzure OpenAI Serviceとつなぎ、RAGは自前のサーバーで実現していました。https://github.com/ChatGPTNextWeb/ChatGPT-Next-Webしかしながら、LLMの進歩も著しく最先端モデルや各種周辺サービスの発展速度に対して、画像チャット機能の導入やClaude3やGemin...
1年前