社内Slackを支えるemoji

この記事は、Tech KAYAC Advent Calendar 2016 の13日目の記事です。

社内Slack

弊社では、社内コミュニケーションツールとして、Slackを採用しています。
Slackの便利なところを挙げれば、枚挙に暇がないのですが、
とりわけ素晴らしいのは、emojiによるリアクション機能でしょう。

f:id:umai_bow:20161214131538p:plain:h320

直接返信を使わず、emojiを使ってリアクションすることで、
以下のようなメリットを享受できます。

  • 文章を書かなくていいので楽
  • 通知を飛ばさないで返信できる(就業時間後とか)
  • リアクションした時間が分からないので、返信遅れたときに誤魔化すのに便利

今回は、エンジニアはじめ、ディレクターやデザイナーなど、
何人かによく使うemojiを見せてもらいました。

僕の場合

f:id:umai_bow:20161213234918j:plain:h120

応答として汎用性の高いf:id:umai_bow:20161213235019p:plain:h30
低姿勢な雰囲気を気軽に出せるf:id:umai_bow:20161213235314p:plain:h30がランクインです。
ほかにも、焼肉に行きたいときに使えるf:id:umai_bow:20161213235424g:plain:h24が便利です。

寡黙なエンジニアMの場合

f:id:umai_bow:20161214000242j:plain:h120

メンションを飛ばすと、わずか数秒でリアクションを返してくるリアクション使い
f:id:umai_bow:20161214000153p:plain:h24f:id:umai_bow:20161214000203p:plain:h24のような お祝い系リアクションは、
撃つだけ損がないため、使い勝手が良いです。
また、『あとで読む』代わりにf:id:umai_bow:20161214000343p:plain:h24を使ってる人もいますね(どうやって見返すんだ)

敏腕ディレクターAの場合

f:id:umai_bow:20161214000638j:plain:h120

仕事に不安を抱えることが多いのかf:id:umai_bow:20161214000735p:plain:h24が1位です。
他にも喜びを示すf:id:umai_bow:20161214000835p:plain:h24f:id:umai_bow:20161214000848p:plain:h24を駆使して、
制作陣を鼓舞する涙ぐましい努力が伺えます。

新卒デザイナーSの場合

f:id:umai_bow:20161214000930j:plain:h110

お願いする系のemojiが多く入っている他、手頃なやる気を示せるf:id:umai_bow:20161214001029p:plain:h24
弊社事業JAGMOのキャラクターのJAGMOくんf:id:umai_bow:20161214001154p:plain:h24がランクインです(かわいい)。
さっきから色々貼ってますが、みんな大差ないですね……。

ベテランエンジニアKの場合

f:id:umai_bow:20161214001409j:plain:h120

寿司を食べたいときに使えるf:id:umai_bow:20161214001504p:plain:h24や、
勝手に登録した他の社員の顔写真が多くランクインです。

f:id:umai_bow:20161214001758p:plain:h240

バラバラにされた顔の画像は、弊社の社員のもので、
スライドパズルで遊ぶボールをぶつける手札に揃えてゲームに勝利するなど、
様々な用途に使えるため、重宝されます。


いかがでしたでしょうか?
エンジニアにはコミュニケーション能力が必要ですが、
コミュニケーション能力は、テクニックでカバーすることができます。
みなさんもemojiの技術を磨いて、高いキーボードの摩耗を防ぎましょう。

明日は @mix3IRC さんです!よろしくお願いします。

【Unity】 NGUIについて

はじめに

この記事はカヤックUnityアドベントカレンダー2016の13日目の記事になります。
今日の内容はNGUIについてです。

ソーシャルゲーム事業部所属、Unityエンジニアの荒井と申します。
現在は社内で運用と開発が行われているソーシャルゲームアプリぼくらの甲子園!ポケットに携わっています。

NGUIとは

NGUIとはNext-Gen UIの略称で、Tasharen Entertainmentから 提供されているアセットです。Asset Storeから購入して使用することができます。

昨日のテーマにありましたuGUIが追加・更新されるまではUIを作成するAssetにおいてデファクトスタンダードとして扱われていました。 NGUIでは画像の表示やボタン、リストといった一般的なUIを作成することができます。また、画像をAtlasという形式で扱うことでDrawCall数を抑える仕組みも備わっているため、処理が快適なUIを作成するのに有用なアセットです。

現在新たにゲームを作られる際にはuGUIが用いられる場面が多いかと思いますが、 NGUIで作られて運用されているプロジェクトはuGUIへ移行しないこともあるため、今扱っていなくても新しく配属された先で出会う場面があるかもしれません。そのようなときの為に、今回はNGUIのいくつかの基本的なコンポーネントを紹介します。

UIWidget

UIWidgetはNGUIコンポーネントの基礎的なクラスです。
NGUIで描画に関係するコンポーネントはこのクラスを継承しています。また、各コンポーネントはウィジェットと呼ばれます。

UIPanel

UIPanelはウィジェットを管理するコンポーネントです。
このコンポーネントを使用することで管理しているウィジェットを描画することができます。 Depthと呼ばれるプロパティを持ち、この値を比較して大きい方が手前に描画されます。

UIAtlas

NGUIでは画像をひとまとめにしたAtlasと呼ばれるものにして扱います。
Atlasにすることにより、複数の画像を共通のMaterialとして扱うことができるため、結果としてDrawCall数を抑えることができます。Atlasとしてまとめられた画像を表示するにはUISpriteを使用します。

Atlasを作成するにはNGUIのメニューからOpenを選択後にAtlas Makerを選択します。 表示されたウィンドウでひとまとめにする画像を選択し、Createボタンを選択します。

f:id:drknss_kyc:20161213193102p:plain
Atlas Makerウィンドウ。

UISprite

UISpriteは画像を表示したいときに使用するコンポーネントです。
表示したい画像が含まれているAtlasをアタッチすることで表示することができます。 また、Depthプロパティを持ち、この値を比較して大きい方が手前に表示されます。 複数のUIPanelを扱う場合、UIPanelのDepth値の方が優先されることに注意が必要です。

UISpriteのDepthとDrawCall数の関係

DrawCall数とは1フレーム中に画像などを表示する際にグラフィックAPIを発行した回数のことで、この数値が少ない程、描画コストが低く結果として処理が軽くなります。DrawCall数はゲームビューのタブにある【Stats】を選択することにより表示されるレンダリング統計ウィンドウで確認できます。

UISpirteのDepthを変えることでDrawCall数が増減する場合があるため、扱うときには注意が必要です。 ひとつの画像を表示する場合DrawCall数は1増えますが、 あるUIPanel以下にあるすべてのUISpriteをDepth順に並べた時に、 同じAtlasが使用されている場合はDrawCall数は増えない仕組みとなっています。 例えば下記のようにDepth順に並べた場合、DrawCall数は次の通りになります。 ここでA.aはアトラスAに含まれている画像aのことを意味します。

例1: A.a, A.b, B.c => DrawCall数 2
例2: A.a, B.c, A.b => DrawCall数 3

例1ではアトラスAが連続しているのでDrawCall数は2ですが、 例2ではA.aの後にB.cと異なるアトラスが続いているため、 A.bに関してもDrawCallが発生するためこのときのDrawCall数は3となります。 このことから、異なるアトラスを同一のUIPanelで使用する際にはDepthに注意する必要があります。

UIButton

UIButtonはボタンアイテムを作成する際に使用されるコンポーネントです。
ボタンが選択されたときに呼ぶ関数を設定することはもちろん、押した際にわかりやすくボタンの色を変えたりすることができます。UIButtonScaleを併せて使用することで、選択された際にボタンを大きくすることなど視覚的にわかりやすい表現が簡単に実現できます。

下記にUIButtonを使用した例を示します。いくつのかコンポーネントをアタッチするだけで、簡単に視覚的にわかりやすいボタンが作れることがわかります。

f:id:drknss_kyc:20161213192033p:plain
UIButtonを使用したボタンの設定例。UIButtonのTargetにはボタンの画像が設定されているオブジェクトをアタッチします。

f:id:drknss_kyc:20161213192041g:plain
上記の設定で作られたボタンの動作例。ポインタが上に乗ると水色になり、選択すると青色になり拡大します。

おわりに

この記事では、NGUIの基本的なコンポーネントを中心にNGUIを紹介しました。NGUIには多くのコンポーネントが用意されているのでとても便利です。扱う機会があればいろいろ触ってみてみることをおすすめします。

明日はAnimationについての記事になります。 担当はアファトになります。
お楽しみに。