タグ

ブックマーク / techblog.kayac.com (34)

  • 【Unity】 簡単に水に近い表現を実現したい (Metaball) - KAYAC engineers' blog

    1 はじめに こんにちは、カヤックのソーシャルゲーム事業部のmadaです。この記事はカヤックUnityアドベントカレンダー2018の22日目の記事です。 「Lion Studios」が作成した「Happy Glass」というゲームを遊んでみて、液体の表現に興味を持ちました。この記事では「簡単に水に近い表現を実現したい」話をします。 Happy Glass - Lion Studios- Youtube 2 Metaball? 調べてみると水の表現に、Metaballという手法が使えそうでした。Metaballの説明をしようとすると数式が出てくるので、先に実装した結果を紹介します。2つの水滴が接近したときに水滴がひっつくような表現が、なんとなくできているのではないでしょうか。 2DのMetaballを数式で説明すると、以下の式になります。画面上の(x,y)ピクセルを塗るときに、式の条件を満た

    【Unity】 簡単に水に近い表現を実現したい (Metaball) - KAYAC engineers' blog
  • ゲーム内お知らせをHugo+Netlify CMS+CircleCIで作りました - KAYAC engineers' blog

    鎌倉は寒いです。みなさんはいかがですか。ソーシャルゲーム事業部のゲーム技研チームの谷脇です。 この記事はTech KAYAC Advent Calendar 2019 Migration Trackの10日目の記事です。9日目はデーモン管理をdaemontoolsからsystemdに移行させるでした。 ゲーム内お知らせとは みなさんは、スマートフォンのゲームをされますか。ええ、そこのあなたはよくされる。しかし、そちらの方はあんまりされない。なるほどなるほど。 では分かる人にはおさらいとして、あまりピンとこない方にはそんなことがあるのか〜となってもらうために説明させていただきます。 我々カヤックでゲームを運営している人々が「お知らせ」を指した場合、ゲーム内のある機能を示しています。他のゲームではニュースなどとも呼ばれています。 カヤックで作っているゲーム「ぼくらの甲子園!ポケット」(以下ぼく

    ゲーム内お知らせをHugo+Netlify CMS+CircleCIで作りました - KAYAC engineers' blog
  • デーモン管理をdaemontoolsからsystemdに移行させる - KAYAC engineers' blog

    SREチームの竹田です。Tech Kayac Advent Calendar Migration Track 9日目の記事になります。 カヤック社内では デーモン管理ツールとしてdaemontoolsが愛用されてきました。 ソフトウェアとして枯れており、 自動起動や各シグナルを送ることができるので大変重宝されています。 経緯 AmazonLinux1のEOLに伴い、稼働中のアプリケーションを移行させる必要がでてきました。 最近はコンテナ(ECS)へ移行させる事がほとんどですが、運用やアプリケーションの都合上AmazonLinux2へ移行させる場合もあります。 デーモン管理としてdaemontoolsを利用する事も考えましたが、ドキュメントの整備状況やインストールに難があることもあり、systemdに変更する事にしました。 設定 systemdの詳しい説明は省きますが、 以下のような設定ファ

    デーモン管理をdaemontoolsからsystemdに移行させる - KAYAC engineers' blog
  • 【Unity】ARKit 2 で、複数人同時 AR をやる - KAYAC engineers' blog

    こんにちは!面白法人カヤックのごんです。 ARkit 2 の記事を書きます! この記事はカヤックUnityアドベントカレンダー2018の2日目の記事です。 前段 ARKit 2 では、ARKit 1 と異なり、複数人でのARの共有体験ができます。 ネットワークライブラリでもないのに、なぜ複数人の体験?ということが気になる方もいるかと思うのですが、 これは具体的には、AR空間のワールドマップのシリアライズ、デシリアライズ、そしてリローカリゼーションをサポートするというものです。 シリアライズされたデータをネットワークで共有することで、複数人でARの共有体験をすることができます。 ARKitは、このネットワークで共有する部分は関与しません。 今回は、Photon Unity Networking (PUN) を使って、ARKitで複数人でARを体験できるアプリケーションを作成します。 ARKi

    【Unity】ARKit 2 で、複数人同時 AR をやる - KAYAC engineers' blog
  • Unityでスレッドから乱数を使いたくなった時に気になったこと - KAYAC engineers' blog

    ここでは、UnityEngine.Randomを使えば99.9%解決するような話題について、 技術部平山が趣味で書いてみようと思います。 サンプルコードはgithubに置いてあります。 なお、マルチスレッドはあくまできっかけであり、記事にスレッドの話はありません。 ただ、サンプルでは諸々の高速化のためにスレッドを使っております。 動機 少し前にAIを書いていた時、なにせ計算量が多いのでスレッドを使って並列化したいなと 思ったことがあります。 そうなると、使う乱数はマルチスレッドで呼べる奴じゃないとダメだなと。 しかし、UnityEngineの関数は他のスレッドから呼んではいけないという縛りがあります。 System.Randomを別個に持てばいいんですが、 System.Randomはずいぶん昔からある乱数です。 C言語のライブラリでは互換性のために標準の乱数が未だに昔のままで、 それを

    Unityでスレッドから乱数を使いたくなった時に気になったこと - KAYAC engineers' blog
  • どのDownloadHandlerでAssetBundleをダウンロードして保存するのが速い? - KAYAC engineers' blog

    この記事では、 アセットバンドルのダウンロードと保存をどのDownloadHandlerでやるのが速いか、 ということについて 技術部平山が書いてみます。 最初にお断りしておきますが、まだ独自研究の域を出ません。 今回も プログラムはgithubに置いておりますが 、そのまま実用になるものはありません。そもそも、キャッシュから読む所も作ってません。 今回は単なるダウンロード+保存の速度測定だけです。 社内で使うために作る物は、社内で使う前に技術ブログで公開してフィードバックを頂く というスタイルでやっていきたいので、是非ともご協力をよろしくおねがいいたします。 さて、お急ぎの方のために結論です。 適切な並列度が最も重要。 ダウンロード順をランダム化することで大抵は改善が見られる 不満がなければ標準の方法(DownloadHandlerAssetBundle +Caching)で良い。 キャ

    どのDownloadHandlerでAssetBundleをダウンロードして保存するのが速い? - KAYAC engineers' blog
  • UnityEngine.UI.Imageが透けてる所を塗るのが許せない - KAYAC engineers' blog

    こんにちは。技術部平山です。 この記事では、UnityEngine.UI.Image、つまり「普通のImage」 だと余計な所まで塗ってしまってGPU負荷が大きいので、 塗る面積を削ってみた、というお話をいたします。 一枚目の画面写真で、右端が普通のImageで、左と中央が今回作ったものです。 左はSpriteに入っている頂点を利用したもので、頂点は増えますが面積が減ります。 中央は、黒い枠を重ねて顔のところだけを切り出したもので、 手動で頂点を編集することでマスクなしでの切り出しをしています。 二枚目の画面写真はoverdraw表示で、塗る面積が減っていることがわかります。 また、画像をSpriteAtlasにまとめている場合、パッキングをtightにしたり回転を許したりすると、 普通のImageでは正常に表示できなくなりますが、今回はそこにも対応しました。 より小さな容量に詰めることが

    UnityEngine.UI.Imageが透けてる所を塗るのが許せない - KAYAC engineers' blog
  • 端末性能を測るWebGLアプリ作ってみた - KAYAC engineers' blog

    こんにちは。技術部平山です。 この記事では、雑にベンチマークプログラムを作ってみたことと、それに付随して、 ベンチマークプログラムを作りたくなるような事情 テストの設計と、その背後にあるハードウェア といった点について書きます。 なお、実行はこちらからWeb上で可能です(上のスクショを押しても飛べます)。 UnityのWebGLにすることで、余計な手間なく多くの機械で測れるようにしています。 ただし、WebAssemblyを使っている関係上、iOS9以前では動きません。ご容赦ください。 測ってくださった方は、 twitterで結果(スクショ)を頂けると大変うれしいです。 ゲーム機、ハイエンドPC、古いスマホ、などは特に歓迎です! なお、ソースコードもgithubにあります。 測定方法 「ALL」を押し、元の画面に戻ってくるまで(キャラクターの絵が出てくるまで)放っておきます。 途中でスリー

    端末性能を測るWebGLアプリ作ってみた - KAYAC engineers' blog
  • 【予告】カヤックUnityアドベントカレンダー2018 - KAYAC engineers' blog

    こんにちは、ソーシャルゲーム事業部 ゲーム技研所属の清水です。 一昨年にUnityアドベントカレンダーを実施しましたが、好評のため今年も実施することになりました! 今回はソーシャルゲーム事業部にとどまらず、クライアントワーク事業部のメンバーも参加して、 業務を通して得られた知見やプロジェクトで実際に使われているテクニックなど 実践的な内容を中心にお届けします。 VR, AR Unity 2018 の新機能 エディタ拡張 Shader パフォーマンスチューニング GitHub との連携 といった多彩な話題を取り扱う予定ですので、明日からの投稿を是非お楽しみにお待ちください! 毎年恒例のエンジニア全体のアドベントカレンダー techblog.kayac.com も公開されますので、そちらもよろしくお願い致します。 スケジュール 12/1 平山 techblog.kayac.com 12/2 中

    【予告】カヤックUnityアドベントカレンダー2018 - KAYAC engineers' blog
  • Unity x Slack x Githubで効率の良いワークフローを作ろう! - KAYAC engineers' blog

    はじめに 初めまして、Unityエンジニア中国人の趙です。 カヤックUnityアドベントカレンダー2018の8日目の記事になります。 どうぞよろしくお願い致します。 概要 弊社でゲーム開発中によく使っているツールいくつかがあります。 例えばもう口と耳の代わりになりそうな Slack とか、 プロジェクトを管理することができる Github などです。 これらツールが開発チームに便利をもたらしていますが、 数が多いほど操作の切り替えも複雑になってくるかもしれません。 では今日はこれらのツールをUnityと連携することでなにか新しい便利さが生まれないかを、 みなさんと一緒に探してみましょう! Unity x Slack Slackがはいろんな api を用意してくれています。 今回はUnityWebRequestを使ってSlackへ送信する方法をご紹介していきたいと思います。 事前準備: コ

    Unity x Slack x Githubで効率の良いワークフローを作ろう! - KAYAC engineers' blog
  • 【Unity】シーンを汚さず1回のDrawCallで動くデバグUI - KAYAC engineers' blog

    この記事はカヤックUnityアドベントカレンダー2018の1日目の記事です。ここでは、 こんな感じのデバグ用UIについて、 3年目平山がお話いたします。 これは、弊社東京プリズンのデバグビルドの画面写真です。 この機能を実装するライブラリはgithubで公開しております。 実際の製品で使用していますので、 そのまま持っていってお使いになることもできるかとは思いますが、 何しろデバグ用と割り切って作りましたので、諸々テキトーです。 あくまでサンプルということで、よろしくおねがいいたします。 2019/06/18注: masterブランチはすでにこの記事と非互換になっています。 記事中のリンクは破壊的な変更が加わる前のブランチへのものに変えてあります。 この後に行った改良についてはこちらの記事をご覧ください。 動機 実機上にデバグ機能が欲しいことは多々あります。 無敵ボタン、来見えない敵の状

    【Unity】シーンを汚さず1回のDrawCallで動くデバグUI - KAYAC engineers' blog
  • 「リッチテキストって頂点ムッチャ増えない?」から始まるUnityEngine.UIの性能調査 - KAYAC engineers' blog

    UnityUIを作ると言えば、まずはUnityEngine.UIです。 中身のことを考える必要もなく、ドカドカとImageやTextを置けば 動くので大変有り難いわけですが、不意に猛烈に処理が遅くなることがあります。 記事では、たまたま見つけた現象と、そこから疑問を持って UnityEngine.UIの処理速度についていろいろ調べてみたことを、 技術部平山が書いてみます。 お急ぎの方のために結論を箇条書きにしておきましょう。 Graphic.color、RectTransform.sizeDelta、Text.textをいじると遅い 動かすだけでは大して遅くないが、動かさないよりは遅い リッチテキストは遅い 気になりましたら以下をどうぞ。 なお、Unityのバージョンは2017.4.8f1です。2018では改善している、 ということも多々ありそうですが、そのへんはご容赦ください。 UI

    「リッチテキストって頂点ムッチャ増えない?」から始まるUnityEngine.UIの性能調査 - KAYAC engineers' blog
  • tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    どう?最近パスタ巻いてる!? kenjiskywalkerだよ! スカイウォーカーって名前が付いてるけど スターウォーズはほとんど見たことがないんだ。不思議だね! さて、年の瀬も段々と近づいてきて、町はイルミネーションで華やかになり 恋人たちはお互いのプレゼントについて相談し、子供たちはなるべく大きな下を探している中 エンジニアは何をしているのかといえば、そう、アドベントカレンダーだね! ということで男だらけのテックカヤックアドベントカレンダーやるよ! テーマは「2012年 私の中のマイイノベーション」だけど 多分内容は関係のないものがほとんどだと思うんだ。面白いね! スケジュール 12/01 / @kenjiskywalker #1「おちこんだりもしたけれど、私はげんきです」 12/02 / @damele0n #2 「JavaScriptでおっぱいを動かす」 12/03 / @kyo

    tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • 【Unity】カヤックのゲームを支えるビルドシステムについて - KAYAC engineers' blog

    今回はUnityを使用したiOS/Androidビルド方法についての簡単な解説と、社内で動いているビルドシステムついて紹介したいと思います。 こんにちは、ソーシャルゲーム事業部所属エンジニアのぴーちんです!!宜しくお願いしますヾ(@⌒ー⌒@)ノ この記事はカヤックUnityアドベントカレンダー2016の24日目の記事になります。 カヤックのゲームを支えるビルドシステムについて カヤックのゲームを支えるビルドシステムについて platform毎の基的なビルド方法について iOS ビルドの準備 Xcodeでのビルド アプリ配布に使う配布用証明書 コード署名に使う開発用証明書 Android ビルドの準備 AndroidSDK アプリへ署名する為の証明書 社内で使われてるビルドシステムについて githubのpull−requestにコメントしてビルドする機能 githubのpull−requ

    【Unity】カヤックのゲームを支えるビルドシステムについて - KAYAC engineers' blog
  • 【予告】カヤックUnityアドベントカレンダー2016 - KAYAC engineers' blog

    こんにちは、カヤックの技術基盤チーム、Unityエンジニアの清水です。普段はゲームの開発・運用のお手伝いをしています。 毎年カヤックでは、各領域のエンジニアブログにアドベントカレンダーを書いていますが、今年はそれとは別に、ソーシャルゲーム事業部のUnityエンジニアUnity初学者に向けて記事を投稿していきます。 今年のアドベントカレンダーについて Unityのチュートリアルや入門を1冊消化したくらいの初学者に向けて、記事をすべて読めば、カヤックでUnityエンジニアとして仕事ができるようになるものをめざしました。 これからUnityゲーム開発をしようと思っている方 初心者から脱却して業務レベルのスキルを身につけたい方 他社のUnity事情が気になる同業の方 明日からの投稿をぜひお楽しみにお待ちください! スケジュール 12/1 Unityの基 / ダークネス 12/2 特殊な

    【予告】カヤックUnityアドベントカレンダー2016 - KAYAC engineers' blog
  • 【Unity】カメラとレイヤー - KAYAC engineers' blog

    はじめに はじめまして。 カヤックのソーシャルゲーム事業部のUnityエンジニアのmadaです。 今日はUnityのカメラとレイヤーについて紹介します。 この記事はカヤックUnityアドベントカレンダー2016の3日目の記事です。 カメラについて UnityのSceneに配置されたオブジェクトは、それを映すカメラによってGameViewに描写されます。 カメラがなければGameViewに表示されないので、シーンにカメラを配置しましょう。 (Unityで新規シーンを作成するとデフォルトでカメラも配置されます) 上 Scene内にActiveなカメラがないので、GameViewで警告メッセージが表示されている例 上 Scene内にActiveなカメラがあり、GameViewにオブジェクトが表示されている例 カメラは好きな数だけ追加できますが、追加すると処理が重くなります。 複数のカメラのレンダ

    【Unity】カメラとレイヤー - KAYAC engineers' blog
  • #24 「Unityでコルーチンも単体テストしよう」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    みなさんこんばんは。今年の2月に入社してWeb業界というものがよくわからないままiPhoneアプリ開発やらnode.jsでサーバ開発やらPerlでサーバ開発やらC#でUnity開発やらをやっていたら年が暮れかかっていた@acidlemonです。 もともと私はC++が専門で、SIerの業界にいたのでしかたなくJavaもやっていたという感じだったのですが、Web業界に転職してみたらC++でプログラムを書く人がほぼいなかったということで、今年だけで新規に4言語も手をつけていて環境の激変っぷりに自分でも驚いています。 さて、24日間にわたってお送りしてまいりましたtech.kayac.com Advent Calendar 2012も今日が最終日。2日目にしていきなりJavaScriptでおっぱいが動き始めた時はどうなることかと思いました。しかし、振り返ってみるとDDLをGitで管理したり、Pro

    #24 「Unityでコルーチンも単体テストしよう」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog

    好きな IPA は志賀高原ビールの @soh335 です。 早くビール飲みたいのですが書かないと怒られるので今日は、隣の発明家が作った GitDDL というモジュールについて説明しますね。 (隣の発明家に任せると「GitDDLまじイノベーティブ(完)」としか説明してくれないので) なにするものなの 名前を見て通り、Gitdatabase の schema 管理をするものです。それ以前は、DBIx::Class::Schema::Versioned とかを使っていたようです。 仕組み まず、Git で管理されている schema ファイルを指し示すコミットのハッシュを database 上で管理します。 schema に変更があった場合、このコミットのハッシュが databse 上のものとで差異が生まれます。よって database 上の schema は期待する schema ではな

    #5「GitDDLまじイノベーティブ」 tech.kayac.com Advent Calendar 2012 - KAYAC engineers' blog
  • Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog

    いやー今年もISUCONの予選参加募集がはじまりましたね! 昨年は出題側だったので胃が痛かったですが、今年は参加側ですので大変楽しみにしております。@acidlemonです。 Docker使ってますか? さてみなさん、Docker使ってますか? 使ってる? 使ってない? ぼくは使ってませんでした。えー今どきBlue-Green Deploymentやってないの? Immutable Infrastuctureじゃないの? と言われそうですが、世の中にはいろんなしがらみとかもあってなかなか簡単にエイヤーでコンテナに移行できるわけでもないのは皆さんなんとなく感じているのではないでしょうか。 とはいえ、最近これだけ話題になっているDockerですので、そろそろ使ってみたいなぁ…ということで、まずは開発環境をDockerで上げられるようにしました。 Dockerでコンテナを作るときには2つのアプロ

    Dockerで非エンジニアでも開発環境を上げ下げできる、mirageというツールを作りました - KAYAC engineers' blog
  • stone を使って tiarra を SSL 化する方法 - KAYAC engineers' blog

    マンガ名刺を心待ちにしている nagata (@handlename) です。 今回は IRC proxy の tiarra を SSL で使う方法を紹介したいと思います。 tiarra って? サーバーに常駐するIRCクライアント兼サーバー、とでも言えばいいのでしょうか。 IRC使う人にとっては割と常識っぽいアプリケーションみたいです(ぼくは最近知りました)。 通常IRCは接続している間の発言しか見ることができません。 が、サーバーにクライアントを常駐させ、 そのクライアントに対してローカルのクライアントを接続することによって、 ローカルなクライアントから接続していない状態の発言も拾うことができるようになります。 SSL 接続したい! 便利な tiarra なのですが、いまのところ SSL 接続をサポートしていません。 SSL で接続できないと・・・ IRC の発言は平文でやりとりされる

    stone を使って tiarra を SSL 化する方法 - KAYAC engineers' blog