ホーム ブログ ページ 15

【成果発表会】「読もうと思えるコードを目指す」コード解析で見やすくするための「using」手法

今回は、社内の成果発表会「P-Review ’19」にて発表したエンジニア 須合 雅之さんの資料を紹介します。
※こちらの記事は個人の研究発表で、会社としての見解ではございません。

須合 雅之
2019年4月ゲームサービス部(現:コンテンツデザイン部)にエンジニアとして入社。
入社後は主に受託ゲームのエンジニア業務を担当。仏のように優しい。

p-review19_sugo.pdf1

(※挨拶省略)

このテーマを選んだ理由

僕は入社前にもプログラミングをしていたんですが、仕事で初めて触れたC++コードがとても見やすくて感動し、後世のエンジニアにもコードを見やすくする「using」での手法を知ってもらいたくて、このテーマを選びました!

既存のコードの解析をする時に「using」で悩むことが減り、コードの見やすさについて考えてくれる人が増えると嬉しいです。

仕事で触れたコード

usingの説明前に、仕事で触れたコードの見やすかったポイントをまとめました。

• 関数名、型名がわかりやすい

• 一つ一つの処理が簡潔

• 一行が長すぎない

なぜ見やすさが大事か

私がなぜ見やすさを重要視しているかですが、コードが見づらいとそのコードは読みたくなくなるんです。

例えば、このようなコードがあったとします。

ぱっと見てどう感じますか?

見づらくないですか!?

コメントがない、引数の型がわかりにくいなどあると思います。
しかし、それよりも画面に収まっていないんです。

こんな読みたくないコードを「解析しろ」と言われても、モチベーションが上がらない!
複数人で開発する場合や、見返す時も解析に時間がかかり、開発効率が悪くなってしまうと思います。

では次に、このコードはどうでしょうか。

先ほどの見づらいコードと違って、画面内に収まっています。
引数の型もそこまで複雑そうに見えないし、これはまだ読めそうです。

ですが…
実はこの読めそうなコードは、読みたくないコードを見やすくした同じコードなんです!!

同じコードだけど、ぱっと見で「読みたくない!」と思わせない。
そのためにも見やすさは大事なんです。

見やすくするために使ったのが赤で囲ってある部分にあるusingです。

では、usingでできることを今回は2つを説明します。

usingでできること~別名を付ける~

例①

例としてこのようなコードがあったとします。

今回は画面内に収まっていますが、「unsigned int 」って少しわかりにくいですね。

普通の「int」型を使うことになった場合、混じってしまうかもしれません。
それに引数に指定している部分は、「const」や「&」など、修飾が増えると混乱するかもしれないです。

コードを書く側としても、毎回「unsigned」を打つのは面倒ですし、読む側もうざったいと思います。
「unsigned int 」を一つにまとめることができれば、これらの点を改善して見やすくできそうです。

usingを使って解決します。

これがusingを使ったコードです。
修飾が外れて、ぱっと見簡単なコードに見えます。

何をしたかと言うと、usingを使って「unsigned int 」に「uint」という別名をつけて置き換えました。

赤枠で囲ってある部分で別名を宣言しています。
これが、別名に置き換える時のusingの使い方です。

例②

次は、ネット上によくあるコードの説明です。

何ビットかを明記しておくことで、メモリ配置やフラグに使うときなどにわかりやすくなりそうですね。
そして書くときも楽です!

最初にあげたこの読みたくないコードも…

usingを使って別名をつけることで、読めそうなコードにしました。

「std::function」という複雑な型を切り出すことで、実際に使っている部分がかなりわかりやすくできました。
文字数を短いものに置き換えたことで一行を短くし、画面内に収まっています。

C#の場合ですが、namespaceに対しても別名をつけることができます。スコープを明示的に付けたい時に役立つかもしれません。

次にnamespaceを省略することについて説明します

usingでできること~namespaceを省略~

例①

このプログラムでは「std」から様々な要素を使っています。
矢印で示す通り、様々なところで「std」のスコープが見られます。
特に「std::vector<std::string>」は、ぱっと見でわかりづらいかなと思ってしまいますよね。

このような問題はusingディレクティブで解決できます。

usingでnamespaceを指定すると、そのnamespace内の要素を使うときに、スコープが不要になります。
これならあとで、「std」から必要なものが増えた場合でも、「std」のスコープを付けないで使うことができます。

C#の場合(おまけ)

C#の場合でもusingを使って省略できます!

まとめ

見づらいコードは読みたくないし、開発効率が悪くなってしまいます。
usingを使えば、型に別名をつけてわかりやすい名前にしたり、namespaceを省略することができます!

usingを使って読もうと思えるコードを目指しましょう!

自分の書いたコードが分かりやすくなっているか同期と確認しあう須合氏

他の人が読むことを考えて、見やすいコードを書くのはとっても良いことですね!
これがエンジニアの思いやり……
アイコも思いやりを持ってお仕事頑張ります!

ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:思考編

0

アピリッツ コンテンツデザイン部の金井と申します。前回に引き続き、ソーシャルゲームにおけるミッション機能に対する考察をしていきます。

関連:ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:問題編

前回のあらすじ

 ミッション機能というものは構造的に、

  • 全てのAPIに影響が及ぶが故に改修へのQAコストが非常に高く
  • 処理に時間が掛かりやすく
  • ユーザーデータが膨大になるが故にそれらの問題が更に面倒な事になりやすい

 ものである。
 また、実際に実装/改修するとしても、仕様面の都合で

  • ミッション受注処理
  • ミッション進捗処理
  • ミッション報酬受け取り処理

 の3つが複雑に絡み合う事が多く、所謂スパゲッティコードというものに、しかも見るからに不味いそれになりやすい。

平和だった日常回を思い出しながら仕事に手を付ける覚悟をしたエンジニア

どのように実装/改修すべきか

注:

 ここから記述する内容は、”これから実装する“もしくは”既存のソースを流用して新しいゲームを開発する“と言った、運用中ではない事を前提としたものとなります。
 既存のミッション機能が如何にクソコード汚いものでも改修する事によって得られるメリットは、精々、

  • レスポンスが早くなる
  • コードが見やすくなる
  • 改修等に伴うバグの発生率を減らす事が出来る

等と言ったユーザーからは見えないものが多く、更に

  • 影響が膨大な以上、QAを入念に介してもバグを除き切れずに本番障害を引き起こす可能性が高い
  • バグを引き起こした場合の長時間メンテ、修正、補填などで大きな損害も被る
  • マスタの改修なども必要となった場合、マスタデータを作るExcel…これまで使用していたマクロなども改修しなければいけない事となり、プランナー側、そしてクライアント側にも大きな負担が掛かる

 と言ったそれ以上のデメリットが膨大です。
 如何にエンジンが錆び付いてガションガションうるさい音を立てていようとも、熱効率が悪かろうとも、動いている状態のまま幾つかの部品を取り替える事なんて早々出来ないですからね。
 それでもやらなければいけないとなる場合は、レスポンスの重さでユーザー離脱が激しいとか、原因不明のバグが頻発して、更に手をつけようにも秘伝のソース過ぎて壊さないとどうしようも出来ないとかそんな、それを使い続ける事で極度の不利益が出る場合に限るでしょう。
 そうでない場合は、その汚いコードと付き合っていくのがベストです。
 ベストです。
 ベストなんですよ。悲しい事に。とても、とても悲しい事に。

出社直後、イベントにて大量の期間限定ミッションが追加された事により、特定のAPIの平均レスポンスが5秒以上掛かっている事を発見したエンジニア

普遍的に良く見られるであろう悪くなっていくコード

 まず前回でも書いたような、カードの強化で例えてみましょう。
 カードを強化させた回数のミッション指定アイテムを手に入れた回数のミッションが存在するとします。
 そして、カードを最大レベルまで強化するとカードマスタに指定されたアイテムが貰えるとします。
 すると、さっくり疑似コードとして書いてみると以下のようになるでしょう。

class User < ActiveRecord::Base
  def カード強化(カードID, 使用素材群, 時刻)
    カードが存在するか確認
    カードが既に最大レベルでないか確認
    使用素材群それぞれに対し do
     消費数分持っているか、またそれらがレベルアップ用アイテムか確認
    消費数分の減算、獲得経験値を計算
    end

    カードをレベルアップ(獲得経験値)
    カードを強化したミッションを進捗させる

    if カードが最大レベルならば
     アイテム付与(カードマスタに定義されている報酬アイテムマスタコード, カードマスタに定義されている報酬アイテム量, 時刻)
    end
  end

  def アイテム付与(アイテムマスタコード, 付与量, 時刻)
    指定されたアイテムマスタが存在するか、また受け取れる時間であるか確認
    ユーザーにアイテムを付与
    アイテムを獲得したミッションを進捗させる
  end
end

 こんな感じですね。
 確かにミッションがシンプルな仕様ならば、そんなに時間も掛からないでしょう。
 しかし例えばカードの強化を促進させる施策の一環で、カードを指定レベルまで成長させたカードのレベルを最大まで上げたというミッションが追加されたとすると、最大、合計で4つのミッションの進捗確認を1個1個する事になります。
 段々雲行きが怪しくなってきましたね!

 そして今度はミッションを進捗させる方を詳しく見ていきましょう。分かりやすさの為に、ミッション進捗は別のクラスに纏めましょうか。

class ミッション進捗
  def 進捗させる(ユーザー, 進捗させるミッション種, 進捗させるミッションカウント, ...)
    進捗させるミッション種に属する、現在有効なミッション群を確認する
    そのミッション群に対して do
      ユーザーの進捗を加算する
    end
  end
end

 簡単に書くとこうなりますね。
 さて。ここで例えば前回でも書いたような、ミッションの仕様に良くある、ミッションをクリアしたら次のミッションが解放されるという仕様が入ってくるとこうなりますね。

class ミッション進捗
  class << self
    def 進捗させる(ユーザー, 進捗させるミッション種, 進捗させるミッションカウント, ...)
      進捗させるミッション種に属する、現在有効なミッション群を確認する
      そのミッション群に対して do
        ユーザーの進捗を加算する
        if クリアしたならば
          それのクリアを前提条件とするミッション群を解放させる
        end
      end
    end
  end
end

 シンプルにこのような感じになるでしょうね。
 さて。ミッション進捗そのものも重くなりましたね。それがカードを強化するだけで最大4回走りますね。
 雨が降ってきたようです。
 そしてトドメに、ある特定のミッション種別だったらクリアまでではなく、報酬付与までするとの仕様が入ってきたとしましょうか。

class ミッション進捗
  class << self
    def 進捗させる(ユーザー, 進捗させるミッション種, 進捗させるミッションカウント, ...)
      進捗させるミッション種に属する、現在有効なミッション群を確認する
      そのミッション群に対して do
        ユーザーの進捗を加算する
        if クリアしたならば
          それのクリアを前提条件とするミッション群を解放させる
          そのミッションが特定の種別だった場合、報酬付与まで行う
        end
      end
    end
  end
end

 はい。報酬付与の中ではこのミッション進捗が呼ばれていますね。雷まで落ちてきたようです。

イベント中にバグが発生し、しかもそれが実装した人ももう居ない、誰も見たがらない秘伝のソースの中にあると分かった時のサーバーエンジニア達

こうならない為にはどうするべきか

 自分なりの考えとなりますが、結論としては単純です。

 同じようなコードを何度も通さない仕組みにすれば良い。

 ただ、それだけです。
 上のコードを書き換えるとこんな感じでしょうか。

class User < ActiveRecord::Base
  def カード強化(カードID, 使用素材群, 時刻)
    カードが存在するか確認
    カードが既に最大レベルでないか確認
    使用素材群それぞれに対し do
     消費数分持っているか、またそれらがレベルアップ用アイテムか確認
    消費数分の減算、獲得経験値を計算
    end

    カードをレベルアップ(獲得経験値)
    ミッション用にカードを強化したというデータを保持

    if カードが最大レベルならば
     アイテム付与(カードマスタに定義されている報酬アイテムマスタコード, カードマスタに定義されている報酬アイテム量, 時刻)
    end
  end

  def アイテム付与(アイテムマスタコード, 付与量, 時刻)
    指定されたアイテムマスタが存在するか、また受け取れる時間であるか確認
    ユーザーにアイテムを付与
    ミッション用にアイテム付与したというデータを保持
  end
end

 そしてカード強化の後、他に何もやらなくなったタイミングで保持したデータに対して一括でミッションを進捗させる。

class ミッション進捗
  class << self
    # 進捗させるミッションデータ群 = {ミッション種別: 進捗カウント}
    def 進捗させる(ユーザー, 進捗させるミッションデータ群, ...)
      進捗させるミッション種別群に属する、現在有効なミッション群を確認する
      そのミッション群に対して do
        ユーザーの進捗を加算する
      end
      クリアしたミッション群それぞれに対して do
        それのクリアを前提条件とするミッション群を解放させる
        そのミッションが特定の種別だった場合、報酬付与まで行う
      end

      if 報酬付与まで行なった場合
        ミッション進捗をまた呼ぶ
      end
    end
  end
end

 ざっくりこのような形ですね。
 工夫が足りず、このミッション進捗はこれでも複数回呼ばれる可能性はありますが、少なくとも元々の形よりは呼ばれる頻度は落ちるでしょう。
 カードを強化させた回数のミッション指定アイテムを手に入れた回数のミッションに加えてカードを指定レベルまで成長させたカードのレベルを最大まで上げたというミッションがあったとしても、このミッション進捗を通る回数は1回で変わらないのですから。

結論

 自分ではそれしか思いつきませんでした。
 ミッションという機能は性質上、1APIで様々なミッションの進捗が進むという事が絶対にあります。
 幾らそのミッションの進捗1回分を軽量化しようとしても、無理な軽量化はどこかに歪みを生みます。コードがより複雑になったり、新たな仕様によって軽量化の前提が上等な料理にハチミツをぶちまけるが如くに崩れる事があったり。
 1個1個に対して愚直に進捗を進ませるという事柄自体をやめなければ、ミッションという機能は健全に運営に組み込めないという結論です。
 しかし、それはやはり運営フェーズに入ってからは絶対に出来ない事です。
 全てのAPIに浸透し、隆盛しているようなそんな文化を一気にひっくり返すなど、濃口のラーメンが流行りの極みの時に薄口のラーメンのみを売り出して儲けを出そうとするようなものでしょう。

 次回は、そんなコードを実際に改修した時に起きた事などを書こうと思います。

原因が見つからないエンジニア

第三回はこちら:ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:実践編

社内で生まれたゲームエンジンの活用で優良なコンテンツを提供!

0

今回はゲームデザイン部の部長・長谷部さんに、入社して感じたことや現在のお仕事、そしてゲームエンジン活用のメリットついてインタビューしました。(2020年2月取材)

――まずは、長谷部さんの自己紹介と現在のお仕事について教えてください!

ゲームデザイン部の部長をしております、長谷部と申します。業務内容は、社内で開発したゲームエンジン(技術)を活用し受託でゲームを開発したり、セカンダリ案件の運営を行っています。セカンダリ案件とは、他社さまが運営していたタイトルを買い取り、引き継いでお客様に提供することです。現在は、自社のスマートフォン向けゲーム「ゴエティアクロス」をベースとしたゲームエンジンを用いて、他社さまのIPを用いたゲームを受託で2本開発しております。セカンダリ案件としては「演義シリーズ」という3本のタイトルを運営しています。

――ゲームエンジンの活用……??

社内でゲームを開発した際にうまれた技術やシステムを使って、受託開発に結びつけるというコンセプトです。まず、どんなゲームでも似たような機能はありますよね。そういう機能を、ゲームを作るたびに毎回ゼロから開発せずに活用しています。通常はゼロから開発して毎回新しいシステムを開発していく例が多いのですが、それだと無駄が多いので、通り一辺倒の当たり前に存在するような機能はなるべく活用してゆき「使えるものは使いましょう!」という発想です。そうするとより安価に作れますし、不具合も出づらいです。

――アピリッツに入社するまでの経歴や経緯について教えてください!

元々オンラインゲームが好きで遊んでいたのですが、その頃にMMORPGを開発していた株式会社ハドソンと縁がうまれて入社しました。そこから、MMORPGの運営や、いくつかのオンラインゲーム開発、ガラケー向けのコンテンツ運営などを行い、いくつかの会社を渡り歩いてオンラインゲーム、ソーシャルゲームの開発を続けていました。数年前にハドソン時代の友達が紹介してくれた会社「風姿華傳」に入社し、その「風姿華傳」と一緒にアピリッツに合流しました。

個人の「やりたい!」が実現できる会社

――アピリッツに参加して、どのような印象を受けましたか?

ホワイトな点ですね。この業界、勤務時間が長く帰れないといったいわゆる「ブラック」な状態での会社運営がされていることがどうしても多いのです。私も過去に勤めていた会社では何件もそういった状態である会社を見てきたのですが、それがほとんど感じられないことに入社当初は驚きました。人事の方がしっかり気を配って勤怠管理制度が整っているため、従業員に優しい印象を持ちました。

また、入社間もない頃から他部署の方たちとコミュニケーションが取りやすく感じました。ちゃんと会話をするってことは仕事をする上で必要だと思っているため、コミュニケーションに対してみんな積極的であるのも良いですね。

―― 今後、アピリッツにどんな仲間が来てほしいですか?

アピリッツは、個人がやりたい!ってことに対してNGをかけたりしない傾向がありますので、自分の中で作りたいものを持っている人や、実現したい明確な目標がある人が増えるとより面白くなっていくのではないかと感じています。私自身もそういう人と一緒に働きたいですね。

こちらは2019年の様子です。コロナが収束して、またこういう日がきますように……!

――長谷部さんが仕事で感じるやりがいについて教えて下さい

ゲーム開発におけるやりがいは、やはりリリースした後のお客様(ユーザー)の反応にあると思います。それはもちろん売れれば数値的な面でもありますが、近年発達してきたSNSなどでも様々な感想が流れており、そういったものもやりがいにつながっていると感じます。

コミュニケーションを大切に、楽しく働ける環境作り

――仕事をする上で意識していることはなにでしょうか?

お客さまとコミュニケーションをたくさんとって、作りたいものをしっかり認識し、実現するってことを心がけています。ゲーム開発では、開発期間が約1年間くらいあるので、開発期間中にトレンドが変わったり作りたいもの自体も変化してきたり……と一定ではないため、最後の方に修正することも多いからです。

マネージメント的な部分ですと、従業員の人達がストレスをなるべく溜めないようにメンタル的なコントロールをする必要があると考えています。話しかけたり、話しかけられた時に笑顔で迎える、とかそういうのは結構大事かなと思って意識しています。やっぱり嫌な環境で働くのって辛いと思うので、なるべく楽しく働ける環境が作れたら良いなと思っています。

――今後の目標についてお聞かせください

まずは今期”部”が分かれた直後なので部長としてその”別れた部”っていうのを安定に稼働させて、現在開発しているコンテンツの成功も目指します。

その後も、社内で生まれた新たな技術を活用し、優良なコンテンツを提供していき、しっかりとした収益基盤を形成し、会社に貢献していきたいと考えています。

――長谷部さんありがとうございました!

関連:演義シリーズ(疾風幕末演義・関ヶ原演義・繚乱三国演義)公式サイト

関連:アピリッツのその他の役員インタビュー

【デモECサイトで学ぶ】Googleアナリティクスの基本操作と使い方

0

現在、コロナウイルスやリモートワークの影響によって、消費者が自宅で買い物をする「巣ごもり消費」が活発になり、EC サイトの需要が大きく伸びています。
その中で、Google アナリティクスを活用すれば、EC サイトにおける購入動向を分析し、さらなる改善に役立てられます。
しかし、Google アナリティクスの必要性はわかっていても、多機能でカスタマイズ性も高いゆえに、操作方法などもよくわからないまま使用している方が多くいらっしゃいます。
そんな方のために、Google がデモアカウントを用意しており、デモアカウントのデータは、Google の公式グッズを販売している EC サイト「Google Merchandise Store」から取得しています。
本記事では、デモアカウントの画面を見ながら、Google アナリティクスの基本操作や使い方について解説します。

Google アナリティクスの基本操作

1.アカウント、プロパティ、ビューの変更

こちらの画面では、デモアカウントの他に当社アピリッツの2アカウントが存在しています。
そしてデモアカウントという 1 つのアカウントに対して、1 つのプロパティがあります。さらにそのプロパティの下にビューが設定されている仕組みです。

アカウント、プロパティ、ビューを変更するにはメニューから[管理]をクリックします。
そうすると管理画面が表示され、3 つの階層を確認できます。
それぞれ上部のプルダウンから選択し、変更することができます。

2.レポートメニューの切換え

Google アナリティクスでは大きく5つのレポートがデフォルトで搭載されており、各種レポート内容を解説します。

リアルタイムレポート

「現在」と書かれている部分の数値が Web サイトを「今現在閲覧しているユーザーの数」が表示されます。
右上にあるグラフは、時間遷移に伴い、閲覧されているページの数がどのように変化しているかを表示されます。
右下の表は、今ユーザーがどのページを見ているかを表しています。

ユーザーレポート

この画面では、以下7つの指標について調べることができます。

セッション何人のユーザーが Web サイトに訪れたかという回数。
初めてのアクセス、複数回のアクセスなどは関係せず、単純に「何回訪問されているか」を調べる指標。
ユーザー特定の期間内にサイトを訪れたユーザーの数。
複数回訪れた人の計測は「1 回」とカウントされるため「何人が訪問をしているか」を知りたい際に見るべき指標。
ページビュー数Web サイト内のページが表示された回数。
Web サイト内での回遊なども含めて、「Web サイトのページが何回見られているか」を調べる際に見る指標。
ページセッションページビュー数÷セッション数1回の訪問で何ページ見られているのかを調べるのに使う指標。
高ければ高いほど回遊率が高いということがわかる。
平均セッション時間1 セッションにあたる平均時間を示したもの。
ユーザーが訪問してから離脱するまで、どれだけの時間サイトを閲覧したかわかる。
直帰率Web サイトを訪れ 1 ページしか見ずにそのままサイトを離脱したユーザーの割合。
新規セッション率Web サイトを訪問したユーザーのうち、はじめて訪問したユーザーのセッションの割合。

集客レポート

ページの下部にある表は、どのような流入元からきたユーザーがどのような動きをしているかを表しています。
左側にある、「Organic Search」や「Display」といった流入元の種類が分類されています。

行動レポート

Web サイトに訪問したユーザーが Web サイトでどのような動きをしているかを知ることができます。
具体的に、Web サイトのどのページをどのように回遊しているのかを調べられます。

コンバージョンレポート

何件のコンバージョンが発生したかを確認できます。
ページ上部のグラフでは、目標を達成したセッション数の推移などを確認することができます。

どのレポートを表示する場合にも、左側のメニューから見たいレポートを選択します。

レポートをクリックすると、レポートのリストが表示され、さらに該当のカテゴリを選択することでレポート画面が切り替わります。

3.設定内容の確認

ビューの設定

デモアカウントのビューでは、「1 Master View」、「2 Test View」、「3 RAW Data View」、「Testing 」が用意されています。

これは最低でも「マスタービュー」「テストビュー」「ローデータ」の3つを解析前に作っておく必要があり、それぞれ理由は以下の通りです。

・マスタービュー
普段の解析で使用する本番用のビューです。
関係者(自分を含む)のアクセスを IP アドレスで除外したり、リファラースパムを排除するフィルタ設定などを行います。

・テストビュー
設定を変更・追加するときなど、正しく計測できているかを確認するために使用します。
イベント計測の失敗が後になり判明するといったことはよくあるため、事前に計測テストをしておくことが大切です。

・ローデータ
フィルタをかけないなど、あらゆる設定を一切しないオリジナルのビューのことです。
他のビューの設定ミスで消去されてしまったり、なにか問題が起こったときのためのバックアップとして必要です。

eコマースの設定

デモアカウントでは EC サイトのアクセス解析において重要な「購入された商品と数量」「収益」「どの商品が売れているのか」など、実際に売上に直結している指標を確認、分析できる e コマーストラッキング機能が設定されています。

基本的なレポートの見方

1.計測期間の変更

計測期間を変更するにはレポート画面右上の日付から行います。

デフォルトでは直近1週間、表示単位は1日と設定されています。
クリックするとカレンダーが表示され、こちらから期間を設定します。

1クリックで月単位表示する

カレンダー上部の月表記を、をクリックすると、その月が期間として選択されます。

スタンダードな期間を1クリックで表示する

「期間」のとなりにある「カスタム」をクリックするとプルダウンが表示され、よく使用する「今日」「昨日」「前週」「先月」「過去7日間」「過去 30 日間」をそれぞれ選択できます。
選択したら、「適用」をクリックすると期間が切り替わります。

任意の期間を指定する

カレンダーで期間の開始日をクリックした後、終了日をクリックします。
そうすると選択した期間がレポートの期間として表示されます。
また[期間] 欄に開始日と終了日を入力する変更方法もありますので、ぜひ試してみてください。

2.レポートタブの切換え

各レポートメニューの画面表示は、基本的にタブ形式になっています。

多くのレポート画面では[エクスプローラ]タブのみですが、レポートメニューによっては複数のタブで画面表示を切り替えることができます。

各レポート画面はディメンションに対する指標ごとの計測数値を表示するもので、多くの場合は表とグラフで構成されたレイアウト(エクスプローラ)で、わかりやすく表示されています。
しかし、次のようなレポートメニューについては、個別のレポート画面レイアウトで表示します。

  • 表やグラフでなく”図”を使って表示する場合
  • 特定のディメンションのみの計測数値を独自に表示する必要がある場合


このように表示形式が異なる内容は、すべてのタブの中にレイアウトされ、タブを選択することで画面表示が切り替わるようになります。

3.グラフ、表の表示変更

グラフに表示する指標を変更する

グラフに別のデータ数値を表示させる場合は、グラフ左上のプルダウンを選択し、表示させたい指標を選択することでグラフに反映されます。

また、となりにある[指標を選択]から別の指標を選択すると、グラフに 2 つ目のデータを表示され比較することができます。

データ表のディメンションを変更する

表テーブルに表示されている項目を変えたり、複数組み合わせて表示するには、ディメンションを変更します。
ディメンションを変更するには、[プライマリディメンション]のとなりから表示させたいディメンションを選択すると反映されます。

また、データをより詳細に表示させたい場合には、セカンダリディメンションを設定します。
セカンダリディメンションを設定することで 2 つのディメンションを組み合わせたデータを表にすることができます。
設定方法は、[セカンダリディメンション]というプルダウンからディメンションを選択するだけで反映されます。

脱初心者 便利なレポートの使い方

1.正規表現を使った絞り込み検索

正規表現はカスタムフィルタの「フィルタフィールド」や「フィルタパターン」での URL や IP アドレスなど、文字列を絞り込むときに役立ちます。
実際にデモアカウントのデータを活用し、値を先頭一致で絞り込む場合の正規表現を解説します。
まず、メニューから「行動>サイトコンテンツ>すべてのページ」から、エクスプローラーを開きます。
表テーブル右上にある、[アドバンス]をクリックし、アドバンス機能を表示したら設定作業を行います。
ページ URL には「/google」から始まっているものがいくつもあります。
そこで「/google で始まるページ」に絞り込まれたレポートを表示します。

リストボックスを操作して「含む」→「正規表現一致」に変更します。
入力フィールドに、「/google で始まるページ」を意味する正規表現「^/google」と入力し、[適用]をクリックしたら完了です。

このように正規表現を用いれば、パターン数が多い高基数ディメンションをまとめて抽出することができます。
上記はほんの一例で、その他にも”OR 条件を指定する「│」”など様々な正規表現がありますので、ぜひお試しください。

2.エクセル形式でダウンロード

Google アナリティクスのレポートメニューのデータは、ファイルに出力(エクスポート)できます。
エクスポートできるファイル形式は、以下の4種類です。

  • PDF
  • Google スプレッドシート
  • Excel
  • CSV


Excel 形式でダウンロードする方法は、画面右上の「エクスポート」クリックします。

次にプルダウンが表示されますので「Excel」を選択すると、ダウンロードが開始されます。

3.よく使うレポートを保存

よく使用するレポートには、すばやくアクセスできる[保存済みレポート]の機能があります。
毎回レポートで開き、セグメントで条件を絞ったり、アドバンスフィルタをかけたり、など同じ設定をやり直す必要がなく
レポート対象期間を除く適用した設定は、手動で変更しない限り、ログアウト後も保存されます。
設定方法はシンプルで、自分の目的の合うよう設定を行い、その状態で右上にある[保存]をクリックします。

すると、「保存するレポートの名前を入力する画面」が表示されますので、任意の名前を入力し[OK]をクリックします。
その後、保存したレポートを見たい場合は、メニューの「カスタム>保存済みレポート]から、保存済みレポート一覧が表示されるので、見たいレポートをクリックします。

[保存済みレポート]の機能を使って、作業効率をアップさせてみましょう。

さいごに

今回は、Google アナリティクスの基本操作や使い方について解説しました。
実際にデモアカウントを使って操作に慣れてみると、より内容を理解することができます。
また、アピリッツでは Google アナリティクスの設定や使い方にとどまらず関連する WEB マーケティング施策を絡めた効果測定方法・活用方法をサポートしています。
自社サイトに Google アナリティクスの導入・活用をご検討されている方は、ぜひお問い合わせください!

→アピリッツへのお問い合わせはこちらから

Kali Linux 2020.3 導入と日本語化

0
kali linux 日本語

エンパワーメントサービス部所属セキュリティエンジニアの綾城です。
Kali Linux 2020.3 を VirtualBox にインストールしてメニューの日本語表示化と日本語入力を可能にしてみました。Kali Linuxは、セキュリティ診断用ツールが標準で用意されている、Linuxディストリビューションです。今回からは、このサイトに掲載していきます。以前のバージョンや内容については、こちらを参考にしてください。

はじめに

Kali Linuxは、セキュリティ診断ツールを含むLinuxディストリビューションです。利用の仕方により不正アクセス行為と判断される可能性があります。またサービス停止やデータの破損が起こる場合もありますので事前にバックアップを行うなどしてください。そして必要に応じて必ず管理者の許可を得て利用してください。また例えば、Webアプリケーションの診断等始める場合は、徳丸本など参考にして、十分理解してから行ってくださいね。

徳丸試験の紹介と合格する方法
https://spirits.appirits.com/role/engineer/security-engineer/5418/

Kali Linuxの特徴などについて

デジタルフォレンジックや、特にペネトレーションテスト(侵入テスト)用などのツールが用意されている、Debian派生のLinuxディストリビューションです。ハッカードラマなどにもたびたび登場するほどこの分野に関してはメジャーなディストリビューションです。最近では、Windows10のWSL(Windows Subsystem for Linux)で、使用できたりします。

Kali Linux 公式サイト
https://www.kali.org/

脆弱性診断とペネトレーションテストの違い

主な収録ツール

Kali Linuxには多数のツールが導入されています。収録ツールについては下記のリンクから確認ください。Nmap、Aircrack-ng、Wireshark、Metasploit Framework、Armitage、Burp Suite、OWASP ZAP、BeEF、sqlmap、wpscan など

Kali Linux Tools Listing
https://tools.kali.org/tools-listing

日本語化について

海外の資料などを参照しながら、日本語化したKali Linuxを使うとUIの文字列が違い分かりにくいと意見もありますが、自分はわかりやすさ優先でUIも日本語化して使うことが多いです。また、日本語入力もCherryTreeなど便利なドキュメントツールもあるので、Kali Linux内で完結できるようにしています。

VirtualBox上にインストールする

仮想化ソフトウェア、VirtualBoxをインストールし、Kali Linuxのイメージを導入、起動させます。

VirtualBoxをインストールする

あらかじめ下記サイトからダウンロードを行いVirtualBoxをインストールしてください。
今回は、バージョン6.1.12に、Extension Packを導入してますが最新版で問題ないと思います。

VirtualBox 公式サイト
https://www.virtualbox.org/

Kali Linux イメージファイルのダウンロード

Kali Linux Downloads – VirtualBox Images イメージファイルのダウンロード先
https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/#1572305786534-030ce714-cc3b
(名前の方をクリックしましょう。Torrentって書いてある方は、イメージファイルを入手するのに別途アプリが必要です。通信状況の悪い時などに使用します。またVMWare用などもありますので間違えないようにしましょう。)

kali linux download

Kali Linux 仮想アプライアンスのインポートと設定

VirtualBoxを起動し、ファイル、仮想アプライアンスのインポートで、先ほどダウンロードしたkali-linux-2020.3-vbox-amd64.ovaを選択しGPLの使用許諾に同意し、インポートします。

kali linux import

初期設定を行う上では、デフォルトのNAT設定でも問題はないですが、ネットワークの割り当ては、診断対象環境との通信の関係上、DHCPで割り振られる環境などでは ブリッジなどにするなど、実施したいこと構築したい環境などによって変更してください。その他は、好みによって設定を変更します。私はCPUは、2コア使用でメモリを4GBぐらいにしています。

kali linux VirtualBox

Kali Linux上の設定

Kali Linuxの起動とログイン

起動ボタンを押し、しばし眺めます。
Kali Linuxの起動を行いログインします。Kali Linuxのパスワードは、kaliに設定されています。
 ユーザー名:kali
 パスワード:kali
Usernameに、「kali」と入力し、Passwordに、「kali」と入力しLog Inを押します。
※以前と違い、rootログインが廃止され、パスワードがkaliに変更されてます。

kali linux login

パッケージの更新

最初に既存のパッケージを最新に更新してしまいましょう。
画面左上の黒っぽいアイコンのターミナルを起動します。
そして下記のコマンドを入力します。しばらく時間がかかり、パスワードkaliの入力や、確認のため途中にy、ニュース閉じるのにqの入力が必要となります。
※以前と違い、ユーザー権限ですので、コマンド前にsudoが必要になってきます。

$ sudo apt-get update
$ sudo apt-get upgrade
kali linux terminal

画面がロックしてしまったら、パスワードを入力して解除しましょう。
また、エラーが出るようでしたら、右上のネットワークの接続について確認してみてください。
ホストPCでインターネットに接続できるようでしたら、一度仮想マシンのネットワーク設定をNATなどにしてみてください。

日本語関連パッケージの導入

ここで日本語関連パッケージをまとめて導入してしまいます。
そして下記のコマンドを入力します。しばらく時間がかかります。
多少、必要のなさそうなものも導入されるかもしれません。

$ sudo apt-get install -y task-japanese task-japanese-desktop
kali linux japanese package

日本語表示の設定

ここで日本語表示の設定をします。
そして下記のコマンドを入力します。

$ sudo dpkg-reconfigure locales

スクロールして、ja_JP.UTF-8 UTF-8をスペースキーで選択、TABキーでフォーカスを変更して、OKでエンターキーを押します。

kali linux locales

同じように、ja_JP.UTF-8を選択して、OKです。

kali linux ja_JP.UTF-8

また、下記のコマンドを入力します。これをやらないとなぜか再起動が複数回必要だったり、反映されなかったりします。

$ sudo update-locale LANG=ja_JP.UTF-8

設定が終わったら、restart(再起動)します。

日本語キーボードの設定

日本語キーボードを利用している人が多いと思いますので、キーボードレイアウトを変更します。
メニューから、設定、キーボードを選びます。

kali linux japanese keyboard

まず、システムデフォルトを使用するのチェックを外します。
キーボードレイアウトがUSとなってると思いますので、選択して編集、日本語のキーボードを選んでください。おそらく、日本語(OADG109A)などがほとんどでしょう。

kali linux keylayout

タイムゾーンの設定

次に時刻がずれてると思いますので、タイムゾーンの設定をします。
下記のコマンドを入力します。

$ sudo dpkg-reconfigure tzdata
kali linux timezone

日本語表示の設定の要領で、アジア、東京を選択します。

Kali Linux 2020.3 導入完了

Kali Linux 2020.3 を、VirtualBoxにインストールし日本語表示、日本語キーボードの利用、日本語変換が行えるようになりました。
バージョン2020.3で追加された機能、ツールは公式ブログの記事、Kali Linux 2020.3 Release (ZSH, Win-Kex, HiDPI & Bluetooth Arsenal)で簡単に紹介されています。
Kaliの新バージョンをベースにCTFなどに参加してみてはいかがでしょうか。

kali linux japanese

さいごに

アピリッツでは、脆弱性診断など各種セキュリティサービスを実施しています。

また、セキュリティエンジニアについても募集しています。Webセキュリティについて学んだことを活かしたい、CTFにチャレンジしてみたい方など歓迎します。興味ある方は、下記の採用情報からセキュリティエンジニアの職務内容・応募資格を確認してみてください。もちろん、Webエンジニアも募集中です。下記ボタンからぜひ確認ください。

ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:問題編

0

アピリッツ コンテンツデザイン部の金井と申します。幾つかに渡ってソーシャルゲームにおけるミッション機能に対して書いていこうと思います。

関連:第二回「思索編」はこちら! → ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:思考編

前置き:ミッション機能の構造的問題

新しいプロジェクトに入り、ミッション機能の秘伝のソースを目の当たりにしたエンジニア

 ソーシャルゲームにおけるミッション機能というものは、サーバーサイドにおける実装を極めて慎重に行わなければいけないものである。
 理由としては、

  • リリース後の改修が困難になり易い
  • 負荷的な問題になりやすい
  • マスタ、ユーザーデータが膨大になる

 という、サーバーサイドにしては一つ一つが重大な問題を抱えるからである。
 一つ一つに対して詳細を追っていく。

リリース後の改修が困難になりやすい

 まず一つ目として、ソーシャルゲームにおけるミッションというものはユーザーの様々な行動で更新が発生する。ユーザーの所持するユニット/カードなどを成長させる、ログイン日数が一定数に達成する、指定のダンジョン/楽曲を指定のスコアでクリアする等々。
 即ち、ゲーム全体で実装する全てのAPIにおいてトリガーとなる事象が発生する可能性があるという事だ。それが意味する事とは、ミッションにおける根幹の部分を変更しようと思った場合には、全てのAPIに影響が及ぶ事を想定しなければいけない。
 それへのQAコストを考えた場合、リリース後の改修が困難になりがちである。

負荷的な問題になりやすい

 一つのAPIに対して、複数のミッション種が更新される、となった場合の処理を考えてみる。
 例えば、ダンジョン/楽曲をクリアした時などで考えると、
 ゲームクリアに紐付いて起こる事柄は例えば、
・パーティの経験値が増加する
・報酬が貰える
 等と言った事がある。さて、ここでそれらに紐付く、カードのレベルが指定に達する指定のアイテムを手に入れると言ったミッションがあったとする。
 サーバー側で行わなければいけない処理は簡単に書いても
・対象のミッションを探す
・対象のミッションの数値を達成数分加算する
・対象のミッションの達成条件を満たしたら達成状態に変化させる、もしくは報酬を付与する
 となる。しかも上記は、愚直に行うのならば、レベルアップしたカードの数手に入れたアイテムの種類数、更にミッションを達成して手に入れたアイテムの種類数だけの回数を繰り返さなければいけない。
 下手な実装をしたら、あっという間にレスポンスが返って来るまで5秒、10秒と掛かってしまう事の想像は難くない。

マスタ、ユーザーデータが膨大になる

 負荷、改修コストの問題にも紐付くが、それに拍車を掛けるのがこの問題だ。
 リリース直後にはミッションデータは少なく、負荷的な問題にならなかったとしても、リリースして暫く時間が経って来ると色んな施策を実践していくに連れてミッションマスタ、それに紐付くユーザーデータというものは肥大化していく。
 新たな施策の為にユーザーデータにカラムを追加したい、と言った事をしたくとも、その膨れ上がったデータベースに対してカラムを追加しようとした時、それだけでも数時間掛かる……即ちそれだけの時間は少なくともメンテナンスに入れなければいけない、と言った事も容易に発生する。

ミッション機能の構造的問題の纏め

 簡単に纏めてしまえば、ミッション機能と言うのはサーバー側にとって、

  • 全てのAPIに影響が及ぶが故に改修へのQAコストが非常に高く
  • 処理に時間が掛かりやすく
  • ユーザーデータが膨大になるが故にそれらの問題が更に面倒な事になりやすい

 と言う三拍子揃った非常に厄介なものとなりやすい。
 勿論、仕様次第ではもっと厄介な事になる事も十分にある、と言うか問題が上記だけで済むのならばとても喜ばしいとまで言える。

必死に読み解いていたらそれらを更に複雑にする仕様の改修を依頼されたエンジニア

ミッション機能の実現の為に

 サーバーサイドで実装すべき機能は大まかに分けて以下の3つになる。

  • ミッション受注処理
  • ミッション進捗処理
  • ミッション報酬受取処理

 同様に一つ一つ詳細に見ていこう。

ミッション受注処理

 問題になりやすい部分。
 ただ受注させるだけならマスタデータ参照してユーザーデータ作るだけでしょ? と思っても、些細な問題が色々と発生し易い。
 例えば、15:00から受注出来るミッションに対して、14:58にゲームを開始して15:02にゲームをクリアした、と言った事柄を考えてみる。
 この場合、15:02にゲームクリアのAPIを叩かれた時にはユーザーはミッションを受注していない状態である訳だ。
 その場合に15:00から受注出来るミッションを進ませたい、とプランナーから要望を受けた場合、エンジニアとしてはミッションの受注処理をゲームクリアAPIの最初に仕込む必要が出て来る。
 さて。時が経つに連れて、似たような事柄がポンポン出て来てしまった。この処理の前にもミッション受注処理を入れる。この処理の前にもミッション受注処理を入れる。この処理の前にもミッション受注処理を入れる。この処理の前にも……。殆どの場合に何も発生しない処理が至る所に埋め込まれる。これだけでも香ばしいクソコードの出来上がりだ。
 後から考えれば、プランナーにゴメンナサイしてゲームクリアAPI以外では基本的にログインさせ直すように仕向けた方が良かったとか、期間前であろうとも受注させておいて進捗だけは進ませないようにしておくとか、そういうもっと良い対応も取れたけれど、もう後の祭りである。
 運用に乗っているクソコードはもうずっとそこにあるのだ。直そうとしてもQAコストを余計に掛ける余裕も無いのだ。

ミッション進捗処理

 問題になる部分。
 端的にやるべき事は、トリガーとなる処理にミッション進捗処理を引っ掛けて、対象のミッションを探し出し、進捗を進める。
 ただそれだけである。しかし、色んな仕様がここにくっついたりすると一気に複雑になってくる。
 良く見る機能としては、ミッションA1をクリアした場合、ミッションA2が解放されるというもの。
 そうなるとミッション進捗機能にミッション受注処理がくっついてくるのだ。さて、これだけでも頭が痛くなって来る。ミッション受注処理自体は、その上記で書いたように時間制限とかを鑑みずにA2だけを解放すれば良いのだろうが、問題はそこではない。ミッション受注処理が複数種類生まれて来るという事がよりコードを複雑にさせる。
 他にもA1の進捗が4/5で、その場合に進捗を2進めた場合にA2の進捗は1進んだ状態であって欲しいとか言われたらさあ大変。受注の後に更に進捗処理が発生する。ぐるぐるぐるぐる処理が回るよどこまでも。こういうループ処理はとても危険で、もしかしたらQAも気付かずに極めて限定的な条件で無限ループに入ったりする時もある。
 更に、この処理は根幹のトリガーとなる処理にミッション進捗処理を引っ掛けて、対象のミッションを探し出し、進捗を進めるという部分で時間が掛かり易いという部分もある。
 簡単に考えても、対象の種別のミッションマスタ群の中で進捗可能な時間内にあるものを引っ張って来る、ユーザーがまだクリアしていないもの、という両方ともクエリを掛けないと引っ張ってこれないものが必要になってくる。
 そして、更に問題なのは、そんな時間が掛かる処理が何度も回る可能性がある、という事だ。カードのレベルアップ処理にミッション処理を紐づけて、上記でも書いた、ゲームクリア時にカードがレベルアップした、とするとどうなるか考えてみよう。
・使用したデッキのカード群それぞれに対して
 ・カードのレベルが上がる
 ・レベルが上がったのでミッション進捗処理が走る
 ・ミッションが達成状態になったらそれに紐付くミッションの解放処理が走る
 これだけで最悪数秒掛かりそうな予感がする。
 更にここに、上記で言うアイテムを手に入れた場合にミッション進捗処理が走ると考えると、
・使用したデッキのカード群それぞれに対して
 ・カードのレベルが上がる
 ・レベルが上がったのでミッション進捗処理が走る
 ・ミッションが達成状態になったらそれに紐付くミッションの解放処理が走る
  ・達成したミッションからアイテムが手に入ったらそれに紐付くミッションの進捗処理が走る
  ・そのミッションがクリアしたらそれに紐付くミッション解放処理が走る

   ・達成したミッションからアイテムが手に入ったらそれに紐付くミッションの進捗処理が走る
   ・そのミッションがクリアしたらそれに紐付くミッション解放処理が走る

 うわあああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛あ゛!!!!!!!!!???????????!!!???!!?!?!?!?!?!?!?!

※ここまでなるのは達成状態になったら、このミッション区分に関してはユーザーが能動的に受け取るAPIを叩かずとも報酬が自動的に付与されるとか、そんな仕様がある場合に限る

ミッション受け取り処理

 そんなに問題になる可能性は低い部分。
 けれどミッションを受け取り完了状態にしてアイテムを付与すると同時に、別のミッションが解放されるとか、別のミッションの進捗が進むとかそんな事があると更に頭が痛くなってきますね!!

実装面での障害の纏め

 主に3つと書いたが、問題なのは、書いたようにその3つは仕様次第で複雑に絡み合っていく事である。
 ただでさえ色んな問題が起き易いのに、コードがイタリア人がターボ機能を仕込んだ靴で助走をつけてパイルバンカーを顔面に叩き込みそして馬乗りになり原型がなくなっても憤怒の表情を浮かべながら打ち込み続ける程の作り方で仕上げられた、見るからに、そして実際吐いてしまう程のスパゲッティのようになり易いのである。

 次回はどう実装すれば、よりマシになるかを考察していく。

マンガの推しが前触れなく本誌にて急逝した事により急遽休みを入れたエンジニアに対して、休みの内容は私用だと伝えられていたが実際の理由は周知の事実であり、彼のバレバレなtwitterを覗くと発狂ツイートが羅列されている事に色んな意味で涙を禁じ得ないチームメンバー

関連:第二回「思索編」はこちら! → ソーシャルゲームにおけるミッション機能のサーバーサイド実装の考察:思考編

今だから言えるエピソードや裏話。~アルフヘイムの魔物使い編~

0

今回は、長らく愛されてきたアピリッツの人気webブラウザゲーム「アルフヘイムの魔物使い」のお話です。こちらは2020年7月14日をもちましてサービスを終了いたしました。遊んでくださったみなさん、ありがとうございます。約7年という長い間にはいろいろな出来事がありました。ということで、2018年までプランナーを担当された大久保さんに、今だから話せるエピソードを教えてもらいました。(2020年7月取材)

「アルフヘイムの魔物使い」とは

「アルフヘイムの魔物使い」は、聖なるホーリーエルフと邪悪なダークエルフが争う異世界アルフヘイムを舞台に、戦いを終わらせるため立ち上がった「魔物使い」の冒険の物語です。魔物と共に各地を冒険し一流の魔物使いを目指します。

アルフヘイムの魔物使い

バトルは昔ながらのターン制バトルとなっており、様々なスキルや魔法を修得し組み合わせることがバトルの鍵となります。また、行動パターンにより敵に狙われるかどうかを左右する「ヘイトシステム」で深みのあるバトルを楽しめます。

そんな「アルフヘイムの魔物」がサービス終了……!

サービス終了当日の公式ツイッターでは111リツイートと139いいねやコメントなどなどたくさんの反応が寄せられておりました。

アルフヘイムの魔物使い

2013年10月のサービス開始より約7年も続いたゲームですが……

大久保さん、思い出に残るエピソードを教えてください!

大久保:自社ゲームとして社内で制作していたので、チップやイラストの構図などにプランナーからも意見を出せたことは思い出に残っています。

「ルシファーの構図をどうしよう?」とか、「大剣をどうやって持たせよう?」という話をしてた時に「剣を召喚したらどうですか?」という提案が通って実際にかっこよく作ってもらえた時は嬉しかったです!

逆に、SSRアスレイのチップを跳ねさせてみました、と見せられた時は脱帽でした!

今だから言える裏話

大久保:強敵を作っているときは楽しく、”強欲の魔王”のように簡単に倒された魔王もいれば、ギミックにこだわった”怠惰の魔王”、全然倒せなかった”色欲の魔王”など色々いて、どれもいつ倒されるかチェックしていました。

――ということは、もしかして”強欲の魔王”が簡単に倒されたのは、想定外だったのでしょうか……?

大久保:正直想定外でした!装備などで特定の耐性を高めると大幅にダメージをカットできてしまったのが原因でした。そこらへんから1属性に特化するというのはやめましたね。

――”強欲の魔王”とは逆に”色欲の魔王”は全然倒されなかったわけですが、それはそれで、開発者として悩まれたのでしょうか……?

大久保:やりすぎたかなって焦りましたね。ギミック的にも色々盛り込みすぎたので、リリース後に若干HPを下げるなど、いくつか調整入れたりもしました。

しかし、強敵として出しているのに過度な下方調整をしても面白くないので色々と悩みました。

その後、一定期間に挑戦された回数を調べてみたところ、ユーザーの皆様の魔物の強化が進んでいくにつれて、挑戦してくれるようになりました。なので、動向をチェックし続けるにとどめました。とうとう倒されたときは感慨深いものがありましたね!

――裏では色々な試行錯誤があったのですね……!

アルフヘイムの魔物使い

大久保:あと、個人的には最初の方のシナリオは和田さん(弊社社長)自らが書いていたと聞いて驚きました!

なんと……!せっかくなので和田社長からも一言頂いてきました!

たしかに昔のゲーム開発の現場にはまだライターが居なかったので、自分の他にもエンジニア等もシナリオやストーリーを書いていましたよ。 ”垣根を作らずに、必要であれば、全部やる。”そのスタンスが無いと、少人数でゲームは作れないですね。

――そんな少人数でゲームを開発していた時代もあったのですね……!

意外なエピソードや裏話をありがとうございました!

終了時のコメントでは「6年あまりの月日をほぼ毎日INして遊ばせていただきました」、「たくさんの仲間と魔物と楽しくプレイできたことに感謝します!」などの温かいコメントをいただきました。愛されていたゲームであったことが伝わってきました!

あらためまして、ユーザーの皆さま、「アルフヘイムの魔物使い」に携わった運営チームの皆さん、約7年間ありがとうございました!そしてお疲れ様でした!!

関連:アルフヘイムの魔物使い 公式サイト

「読んで、見て、経験したことが直接糧になる」ゲーム用シナリオライティングの秘訣!タイムラインに沿って、構造分解しよう

山田アイコ、発信します!
今回は、アートディレクターとしてシナリオライティングを務める「鈴木 常信」さんに、シナリオライティングのコツや魅力、そして鈴木さんならではの手法についても教えていただきました。

鈴木さん!お忙しい中ありがとうございます。
今日はよろしくお願いします!

こちらこそよろしくお願いします。

鈴木 常信
2018年5月コンテンツデザイン部にプランナーとして入社。
入社後はアートディレクターとしてシナリオライティングや、サウンドや映像関連の発注など、演出まわりを担当している。
著書にWizardry BCF/CDS攻略本、UO辞書、新映画宝庫などがある。

著書
・ウィザードリィコレクション (LOCUSエンタテインメントシリーズ) 鈴木 常信、 アークライト | 1999/6/1
・初めてのネットトレード奮戦記|2000/8/1
他多数

キャラ同士が話し始めて進む物語

シナリオライティングってどういうお仕事なんですか?

設定を考え、物語を紡ぐのがシナリオライターのしごとです。
それは剣と魔法のファンタジーの世界か?
機械に隷属化された人々が反乱を起こすSFなのか?
ゲームのなかで、どんな世界が広がり、どんなヒトやキャラクターや登場して、どんな場所で会話をするのか? そういうことを考えます。設定やシナリオがないと、ワールドそのもの、ゲーム自体が生まれないのです。

本当に1から想像していくものなんですね。ゲームの世界の神様みたいなお仕事です!
どういう流れで作っているんですか?

大枠では、制作コンセプトが決まったら、世界観を設定し、構成を決めて、箱書きして、執筆という流れです。
ただ、オリジナルと受注では工程を変えています。

どんな風に工程を変えているんですか?

オリジナルでは、コンセプト決めてからは箱書き飛ばして、いきなり書くことも。
ざっとラフを書いて、キャラクターを遊ばせながら構成することもあります。

キャラクターを遊ばせる?

芝居を書いていると、勝手にキャラ同士が話しを始めるんです。
人格や物語の立ち位置も、それによって調整します。

キャラクター達がお話ししだしちゃうなんてすごい想像力です!
そうなると想像して書くのって楽しそうですね!

シナリオライティングに必要な技術って?お作法ってなに?

ゲーム業界のシナリオライティングについて、くわしく教えてください。

例えばRPGのシナリオ書く場合、ただ原稿を用意すればいいわけではありません
表示システム、キャラクターのビジュアル、エフェクト、サウンドなどがあってはじめて、ゲーム上で花開きます。

舞台や映画と一緒で、完成させるためには様々なひとたちの協力が必要です。
書いた物語をどのように表現し、それを実現させるために何が必要なのか、考慮する必要があります。

マネージャーやディレクターの指示で単に書くだけの場合もありますが、予算や期間を考慮しながら、設定や話のボリュームなどを自身で企画することもあります。

いろいろな関わり方があるんですね~!
ゲームのシナリオライターには、どういう技術が必要ですか?

ゲーム会社で働く場合、シナリオはゲーム制作の一部です。
文字まわり全体をまかされ、解説力が必要なヘルプであったり、文字を制御するタグや簡単な関数などプログラム的要素も必要になります。

当然、キャラクターや表示演出そのものをつくらないといけないことも。
CVの収録では、台本の書き方、現場でのルールもあります。
幅広いジャンルのルールや知識、ゲーム制作のお作法を身につける必要があります。

どんなお作法があるのか知りたいです!

まず『収録現場でのお作法』
これは、「指示出しで別コンテンツのキャラクター例を出してはいけない」や「収録以外の話をしない」など。収録時の暗黙のルール的なものです。

次に『ゲーム制作専門のお作法』
ゲーム会社に所属するシナリオライターは、やることが多いのです。ってことを言いたいだけです。

単純に話を書くだけではなくゲーム制作で必要な「プログラムとは何か?」「グラフィックとは何か?」「どのように、制作が行われ、納期までに各セクションがすべきことは何か?」ということを理解しましょう、ということです。

プログラムや絵が書けるほど精通しろいうことではなく、全体の流れや書くパートの作業を把握することで、自分がすべきことと、その優先順位に解を出すのです。

なるほど、色々身に着ける必要があって大変ですね。
鈴木さんはシナリオライティングについて学校などで専門的な勉強をされていたのでしょうか?

編集プロダクションのバイトをして、ゲーム攻略本を書いて、ゲームの仕事でシナリオを任されるようになった、という叩き上げなんです。

お作法や構成論は、本や知り合いの脚本家からのものです。
でも、物語や映像を分析する目線や知識は、「東京国際ファンタスティック映画祭」で知り合ったマニアな友人たちとの会話で磨かれたと思っています。友人のなかには映画監督になった人もいます。

学校以外のところで身につけられるスキルってたくさんあるんですね~!

鈴木さんならではのシナリオテクニック。物語の構造を分解!?

シナリオライティングでのコツがあれば教えてください。

もともと、芝居をちょっとかじり、攻略本や映画のコラムなどを執筆していたので、物語の構造を分解・評価する手法をとりいれてます。
自分で書いたものも、容赦なく斬って、調整するのです。

自分で書いたものを斬るってなかなか勇気がいる調整ですね……。
物語の構造分解ってどうやるんですか?

物語は時間軸に沿って事象が生まれます。
なのでタイムラインを切って、シーン別にキャラクターの状況や感情変化の書き出します。こうして構造分解することで、キャラクタライゼーションの歪みや、物語の起伏を調整します。

想像していたよりもずっとロジカルです‼
鈴木さんが影響を受けた作品は何でしょうか?

間違いなく「Star Wars Ep4~6」ですね!
物書きとしての心構えというか、人格を決定付けたのはオビ=ワン・ケノービの「Point of View」という言葉です。
「物事の側面は見る角度で変化する」という概念は、キャラクターを描くうえで重要な視点です。

読んで見て、経験したことが直接糧になる

鈴木さんが考える「この仕事に向いている人」ってどんな人ですか?

物を書くって、言語や情報などの知識力、書いた構造体を分析したり解を出す構成力、誰かがいいと思ってくれる話を創造する力、が必要です。
だから、どれかひとつが突出してれば、それを活かした物語を書くことができるかと。

得意なことを磨いていくんですね……!
この仕事のやりがいを教えていただけますか?

精神と寿命を消費して、一文字を紡ぎ出す。
魂削りながらやれる仕事って終焉に向かって歩いているようで、楽しいです。
この数年、いい仕事のお話をいただいて、書いて「おもしろかった」という言葉をいただけているのはありがたいことです。

魂を削りながら取り組む仕事、かっこいいです!!!!
いま、鈴木さんが力を入れて取り組んでいることを教えてください。

好きなものを好きでいることですね。
歳をとると、息をしているのにもエネルギーを使っているのを実感するので、音楽を聴き、本を読み、映像を見続けることを諦めないようにふんばっています。

インプットをやめないって大切なことなんですね。
今後の目標を教えていただけますか?

昨日よりおもしろいものを書くことが目標です。
あと、シナリオや映像にははやりすたりがあるので、映画、アニメ、ドラマ、バラエティ、漫画、小説、音楽など演出にかかわることには、これからもなるべく見続ける。読んで、見て、経験したことが直接糧になるので。

シナリオライティング、奥が深いです……‼
読んで、見て、経験したことが直接糧になる。とても素敵な考え方です。
アイコもいっぱい読んで見て経験していくぞ~!

ラーニングエージェンシー 「【若手向け】自己成長につなげるリフレクション」を受講して

0

アピリッツ、デジタルビジネス部所属の大山です。
今回はラーニングエージェンシー主催の研修、「【若手向け】自己成長につなげるリフレクション」を受講してどんなことを学んだかについてお話します。

ラーニングエージェンシーとは

ラーニングエージェンシーとは企業の人材育成・教育研修の支援を行っている企業です。
ラーニングエージェンシーでは若手向け、中堅社員、管理職などその人の役職に見合ったレベルの様々な研修を行っています。
私たちアピリッツの社員はラーニングエージェンシーの研修を無料で受講することができます。

受講した研修について

私が今回受講したのは「【若手向け】自己成長につなげるリフレクション」という研修です。
この研修では日々の業務のリフレクション、つまり振り返りを普段から行うことの大切さや、振り返りの効果的な方法を学ぶことができます。

学んだこと

私にとってこの研修で最も印象的だった点は以下の3点です。

  1. 仕事を思い出すときに工程を細分化して思い出す。
  2. 振り返ったことを普遍化し、今後の業務でどのように活かせるか想像してみる。
  3. 失敗したことだけではなく、成功したことに関してもなぜ成功したかを考える。

1.仕事を思い出すときに工程を細分化して思い出す。

普段仕事の振り返りを行う時、時間がかかったなとか、なんとなく難しかったなとか、総括的な感想をただ頭の中に浮かべて終えてしまっている人もいるかと思います。そうではなく、その仕事の中で行った一つ一つの行動、思考を思い出し、考察を行うことでより多くのことをより実用的な知識として定着をさせることができます。

2.振り返ったことを普遍化し、今後の業務でどのように活かせるか想像してみる。

ある仕事の特定の箇所においてこうすればよかったと反省をすることはもちろん大切です。しかし、学んだことがその特定の仕事でしか活かされないのであれば振り返りを行う意味があまりないと言えます。そこで反省から何かを学んだ際は、他の場面ではどのように活用できるかを一緒に考えることで色々な場面で活躍する知識を身に付けることができます。

3.失敗したことだけではなく、成功したことに関してもなぜ成功したかを考える。

振り返りを行う際、多くの人は自分が失敗した点、悪かった点のみをピックアップしてどう行っていれば上手くいっていただろうかを考えるかと思います。しかし、失敗だけではなく、成功したことを振り返り、なぜ成功したかを考えることで、自分の中で成功への道筋を蓄えることができるかと思います。より早く解決策を見つけるのに役立ったり、仕事への自信をつけていくという観点からも成功体験を振り返るということが大切です。

受講から3ヶ月が経って…

普段何気なく行っていた振り返りですが、そのメリットや効果的な方法を知り、普段の振り返りに取り入れることで、より多くの「役立つ知識」を得ていると実感しています。
単純な作業でも、なんとなく時間がかかったなと反省するだけでなく、この部分はショートカットキーを使う、この部分は一つ一つ進めるのではなく、最後にまとめて行うようにするなど、一つの仕事から学ぶことが多くなりました。
また、成功体験の振り返りも始めたことによって、ここはこの前やったあの方法でできると自信を持って仕事に取り組める機会が増えてきました。
これからも当研修で学んだ振り返りを実践し、今後の業務に活かしていきたいと思います。

「アニメ業界の技術や知識は、ゲーム業界でも需要がある」ゲームとアニメのクロスオーバー

山田アイコ、発信します!
今回は、デザイナの『金子 俊太朗』さんに、アニメ業界からゲーム業界へ転職したことでよかったことなど、アニメ業界との違いについてもお話を伺ってきました!

金子監督!お忙しいところありがとうございます。
今日はよろしくお願い致します。

こちらこそよろしくお願いします。

アピリッツ AICHO
▲金子さんにアイコの原画を描いていただきました!

金子 俊太朗
2019年8月エクスペリエンスデザイン部にデザイナとして入社。
アニメ業界で数々の作画/作画監督を経験した後、アピリッツに転職。
現在はデザインリソースのディレクションを行う。

アニメ業界の知識をゲーム業界へ

ゲーム業界への転職を考えたきっかけを教えてください。

最近ゲームアプリ内でアニメーションを使った演出を目する機会が多くて、自分もこういうものを描きたいなと思っていたところ、知人から「会社でアニメが描ける人材を探している」と声をかけてもらい、楽しそうだと感じたので転職を決めました。

もともとゲーム業界に興味はあったんですか?

はい!スマホゲームではアイドルマスターが大好きで、お仕事でも原画をやる機会もあったので、ゲーム業界にはとても注目していました。

転職をする際、どこに魅力を感じましたか?

ゲーム業界では作品に対してアイディアや意見を自由に発言しやすく、作品により深く関われるところに魅力を感じました。
アニメーター時代も大人数で作品を作っていたのですが、とても意見交換をするような環境ではなかったので…

実際のアピリッツの印象はいかがでしたか?

業界が違うので馴染めるかとても不安だったのですが、実際入ってみると社内でのコミュニケーション機会が非常に多くて、仕事の質問や作品に関するディスカッションなども気軽にできたことで、人間関係のストレスがなく仕事ができています。

あとは、ゲーム業界ならではの知らなかった知識や技術を教わりつつも、自分がアニメ業界で培ってきた技術も有効に活かすことができているので、とても恵まれた環境だと感じています。

アピリッツ AICHO
▲コンテも!

心に余裕ができた職場環境

アニメ業界からゲーム業界に転職して、良かったことはなんですか?

アニメーターは数をこなさないと食べていけないという緊迫感が常にあって、作品が終わるごとに契約が終わってしまうという未来の不安を常に感じながら仕事をしていたんですが、今は余計な心配をせずに集中して仕事に取り組めるようになったことがとても嬉しかったです。

あと、作業に入る前に資料集めや業界のトレンドの研究などにも時間を使えて、アニメ業界にいた頃より心に余裕をもって仕事ができています。

一本ごとの契約だったんですか!?
それは不安になっちゃいますね…心に余裕ができて良かったです。
業界をまたいでの転職になりましたが、業務上の変化はありましたか?

アニメーター時代は作画監督としてキャラクターのブラッシュアップや、原画で動きを作ることしかしていなかったのですが、アピリッツに入ってからは色んなソフトに触りながら学べることが多くて楽しいです。

ほぼ趣味でしか使っていなかった「Adobe After Effects」による撮影や編集も業務として使えたので、機会の少なかったセクションの作業を行うようになったことは大きな変化でした。

ちなみにどんなソフトを使うようになったんですか?

PhotoshopやLive2D、Unityなどはアニメ業界では触る機会がなかったんです。
そういったソフトを使いこなして、表現の仕方を多く学べたところはとても良かったです。

アニメ業界とゲーム業界の違いに驚いたことはありましたか?

一番驚いたことは、デザイナーなどのクリエイター職の待遇が新人の頃から安定しているという点です!
クリエイター技術がつくまでは稼げなくて当たり前という認識があったので、新人のころから安定した待遇で技術を学びながら業務をできる環境はとても素晴らしいと感じています。

アピリッツ AICHO
▲こちらのアイコのイラストは社内のSlackでも活躍中です

アニメ業界からゲーム業界への転職は少ないようですが、なにか理由はあるのでしょうか?

ゲーム業界とアニメ業界は近いように見えるのですが、交流自体が少なくて情報があまり行き来せず、認識の差がすごくあるんです。
僕は知人からの紹介だったので色んな話を聞けましたが、他の方は情報がないので不安なんだと思います…。

実際に業務をする中で、なにか感じたことはありましたか?

クライアントさんから頂いたイメージを実現する能力や単純な動きを作る技術など、アニメ業界では基本的なスキルが、ゲーム業界ではかなり貴重な人材として扱われていて「アニメ業界での技術や知識は、ゲーム業界にとても需要がある」というのを強く感じました。

社内にアニメスタジオを立ち上げる

金子さんの今後の目標を教えてください!

今スマホゲーム業界ではアニメーションを使った演出の需要がすごく高い時期だと考えていて、アニメも作れる会社にすることを目標にアニメーション作成ができるチームの立ち上げを行っています。
ゆくゆくは社内に自分のアニメスタジオを持って、ゲームのOP/EDやPVなどのショートアニメを内製でガンガン作っていきたいです!

素敵な目標ですね!!
社内でどんなアニメを作りたいですか?

今アピリッツに、とっても可愛いヴァーチャル新入社員の山田アイコちゃんがいるので、アイコちゃんのアニメを作って世に出していくのが今の目標です!
アイコちゃん、一緒に頑張りましょう!

えっ、アイコのショートアニメですか!?
嬉しいです…!アイコ、一生懸命頑張りますね!!

アピリッツ AICHO 原画
金子さんにアイコを描いてもらっちゃいました~!

最後に一言いただけますか?

今は尊敬できる上司や趣味の話もできる仲間がいて、安定した環境で仕事ができています。
アニメ業界で原画・作画監督・撮影・仕上げ・制作進行などの経験者と一緒に、社内のアニメスタジオをどんどん強くしていきたいと考えています!

それでは、アニメスタジオの活躍を楽しみにしております。
今日はありがとうございました!

ありがとうございました!

僕にグッときたデザイン賞 ~公衆トイレ編~

0


デジタルビジネス部所属、Webディレクターの伊與田です。

まったくもって、デザインです。
世の中デザインに溢れています。

ココまでで、すでに3回も「デザイン」という言葉が出てきてしまいました。

デザインとは何でしょうか?

デザインとは「問題解決の手法」です。

言い切ってしまいました。
が、これは僕自身の定義の話です。

立場や使用場面、また、時代によっても言葉の意味合いは変化します。

が、いずれの場合も「問題解決の手法」という軸が定義として存在しているはずです。
存在していて欲しいです。

問題解決イメージ図


なので、そう考えると、今その場で3秒周りを見渡すだけでも
軽く30は「デザイン」が存在しているはずです。
存在していて欲しいです。

この記事では、僕が街で見かけたデザインの中で
「問題解決の手法があまりに素晴らしくて衝撃を受けたモノ・コト」をご紹介します。

今、どこにいますか?

もし公衆トイレにいるのであれば、
ちょっと、その場で周りを見渡してみてください。

公衆トイレ



・・・

どうですか?

素晴らしいですよね?

そうです。
今回ご紹介するのは ―――

公衆トイレの個室のドア

です。

おそらく「鍵がかかってない個室のドアは自動的に開いている」のではないでしょうか?

ココ最近の公衆トイレは、ほぼ、そうなっているはずです。
なってなかったらホントすいません。

鍵をかけなければ自動で開く

この「手法」によって以下の「2つの問題が解決」されています。

空室確認に時間・手間がかかる

例えば、常にドアが閉まっているタイプの場合の空室確認の方法は
「ドアノブ付近の赤or青のサイン」です。

公衆トイレの鍵


上の画像は冗談ですが、このタイプのトイレの場合、
確認するのにいちいちドアの正面にまわる必要があり、
空きが無ければ通路の奥まで進んだ挙句、トイレの入口まで戻らなければなりません。

一刻を争う時もあるでしょう。
由々しき問題と言えます。


「鍵がかかってなければ自動的に開く」場合はどうでしょうか?

一覧性が高いため、トイレの入口付近からすべての個室の空き状況が分かり、
確認時間もわずかに3秒、空きが無ければそのままその場で待機できます。

公衆トイレ



鍵のかけ忘れによるバッティング

最悪の状況です。
詳しくは書きません。

公衆トイレのイメージイラスト


鍵をかけずに……恐ろしいことです。


「鍵がかかってなければ自動的に開く」場合はどうでしょうか?

「鍵がかかってないのに使用中」という状況が無くなるため
「使用中の個室のドアを開けてしまう」ことも無くなるでしょう。

「鍵かけない派」の人はバグです。

シンプルいつもグッド

シンプルがベストかは分かりませんが、
シンプルなデザインにはいつもグッとキます。

「良いデザインほど意識されない」みたいなコトを
よく耳にしますが、同感です。

あなたが「デザイン」と認識していないかもしれない「デザイン」を、
またこの場でご紹介できればと思います。

「次元が一つ増えることで表現は倍増する」今需要が高い3Dデザイナーと、3DCGの制作工程を紹介!

山田アイコ、発信します!
今回は、アピリッツで3DCG全般を担当している『立原 直喜』さんに、今需要が高いとされている3DCGの作業工程やその魅力について、気になることをすべて質問してきました!

立原さん、今日はよろしくお願いします。

こちらこそよろしくお願い致します。

お仕事中の立原さん

立原 直喜
2016年4月 アピゲー部デザイナとして入社。
入社後は、主に自社開発ゲーム「かくりよの門 -朧-」にて3D全般とムービーの制作、シェーダーやデザイナー向けツール開発、背景・UI・エフェクトのディレクションを担当。
趣味で洋楽メタルのカバーバンドを組んでいて、ラップやデスボイスが好き。

3Dデザイナーのお仕事について

早速ですが、立原さんの普段のお仕事について教えて下さい!

アートディレクション以外の自分で製作しているものでは、最近は3DCGを取り扱うことが多くて3DCGに関わるものならほとんどのものを作ってます! キャラクター、敵、背景、小物、セットアップ、アニメーション、などなどですね。

3DCGのデザイナーはアピリッツには多いのでしょうか?
私がプレイしているゴエティアクロスは2Dが主体でしたよね。

3Dのキャラクターが3D世界の中を動き回るような3DCG主体のリリースされているタイトルは、(2020年3月現在)アピゲー部のかくりよの門 -朧-だけなので、3Dデザイナーの人数も、まだ少ないように思います。

「かくりよの門 -朧-」

3DCGを取り扱う規模が大きくなりづらい理由は、技術的に難しいという問題があるからでしょうか?

それもありますね。
単純に皆さんが遊んでいる端末の性能が上がってきて、今までは3D表現の制約が多かったという物理的な問題。
技術的な問題では、縦・横に加えて奥行きという次元がもう一つ増える訳ですから、普通に絵を描くよりも扱う情報が単純に増えるのでハードルは高くなると思います。

技術的に難しいとすると、3DCGをやりたいデザイナーは少ないのでしょうか?

3DCGをやりたいというデザイナーさんはたくさんいます
3DCGの専門学校の卒業生の応募も多く、嬉しい限りなのですが、入社してから商業クォリティの3Dデザインができるようになるまでの習熟コストは2DCGよりもそれなりにかかってしまいますので、すごく慎重になってしまいます。
3D表現主体のタイトルで売り上げをもっとガンガン上げて人をもっと増やせるようにしたいですね~。

現在、3Dの新しいタイトルを制作中だと耳にしたのですが、よければ宣伝していきませんか?

宣伝したいのですが、まだ詳しくは言えなくてゴメンなさい。
ただ、『かくりよの門 -朧-』で培った技術を最大限に活かした新作の開発をバリバリ進めているので楽しみにしていて欲しいと思っています。

新作、楽しみにしてます!いつ頃リリースされる予定なんですか?

年内にはリリースのお知らせができたらいいなと思っています!

3DCGの制作現場

先程、3D表現主体のタイトルという言葉がありましたが、どんなゲームを指すのでしょうか?

まずプレイヤーが操作するキャラクターが3Dだったりします。
縦横、奥行きがある3Dオブジェクトが散りばめられた綺麗なステージで、その中をキャラクターが走り回ったり同じく3Dで作られた敵と戦ったりできるんです。
3D表現主体のゲームとは言っても、2DのイラストやUIを効果的に使うとワクワク感がより出ると思います。
良かったらこちらのプレイ動画を見てください。

「かくりよの門 -朧-」プレイ動画

わぁ~!楽しそうです~!!3Dの表現って2Dと違った味がありますよね!
こんな3DCGの技術について聞けると思うと、私もワクワクしてきました。

プロジェクト固有の工程は割愛して、ここでは基本的な作業をお教えしますね。

よろしくお願いします!!

3DCGの制作工程・モデリング

①モデリング
モデリングというのは、ポリゴンという面を使って形状を作ることです。

「キャラクターを描く」というのとはまた違うんですか?

たとえるなら彫刻や粘土細工に近くて、石から削り出したり、粘土を変形させたりするような感じですね。

モデリング

3DCGの制作工程・UV展開

②UV展開
3Dモデルの展開図を作るため、1つ1つのパーツ分けを行っています!
三次元座標xyzとは別の、テクスチャーのための二次元座標がuvです。

UV展開

こうやってペーパークラフトの様に展開していきます。
3Dのキャラクターに模様や色をのせる下準備です。

モデリングしたものにそのまま色を付けはできないのですか?

可能ですが、立体に対して絵を描くのって、かなり難しいんです……。
組み立てる前にペラペラの2Dにしてから色をつける方がやりやすいんですよ~。
色付けは次の工程なので、UV展開というのはバラバラにする作業です!

3DCGの制作工程・テクスチャー

③テクスチャー
3Dモデルに貼り付ける画像を作ります。
展開しておいたUVをもとに、顔や柄などを描いて色・陰影などを調整します。

先程の展開からようやく色付けですね!
影とかは自然にできるものじゃなくて、この時点で描いているんですね~。

照明によってつける陰影もありますが、描画負担の軽減などの為に今回のプロジェクトでは細かい陰影は描いちゃってます。

テクスチャ-

3DCGの制作工程・リギング/セットアップ

④リギング/セットアップ
難しい言葉になってしまうんですが、キャラクターに骨を入れる話です!
こちらをご覧ください。

うわぁ~!3Dキャラクターには骨があるんですね! しかもこんなにいっぱい……。

そうなんですよ。これは「骨を一つ動かすことで、どこが動くのか」というのを細かく設定する作業になります。
この設定をちゃんとしないと、骨をいくら動かしてもキャラクターが思い通りに動いてくれないんですよね。

どういう設定をしているんですか?

3Dモデルはポリゴンという面ででできていて、ポリゴンは頂点という点で構成されています。
このひとつひとつの点に対して「なんという骨の影響を何%受けるか」というのを設定していってます。

キャラクターを形成する点の1つ1つすべてに、設定をしていくということですか!?

もうわけわかんないですよね。
骨と骨の中間にある関節の頂点は、片方の骨の動きだけにくっついてきちゃうと変な動きになってしまうので、半々で影響を受けるように設定してあげるとか……慣れればある程度機械的にできるんですけどね。

これはものすごい時間がかかりそうな作業ですね~。

そこは3Dソフトの機能やテクニックで工夫をしています!
骨による動きを調整したら、次は「IKの設定」といって骨を動かしやすくするための作業もありますが、あまりに専門的すぎるのでまた別の機会に……。まあキャラクターを動かす準備ですね。

リギング/セットアップ

3DCGの制作工程・アニメーション

⑤アニメーション
先程の動かす準備が整ったものを動かしてみます!
キャラクターのポーズや表情を作って演技させます。
髪や服の揺れはコンピューターの自動計算でも表現できますが、今回は手作業でアニメーションさせています。

アニメーション

動いた!
どうやって動きを付けているんですか?

キーフレームを設定して動きを付けています。
キーは「基点とか重要」フレームは「時間」という意味と考えるとわかりやすいかもしれません。
タイムラインに始点、中、終点のようにキーフレームを設定して、このポーズからこのポーズにアニメーションをつけてーーと細かく設定します。

この表情もコロコロ変わっていますが、どうやって細かく目を開けたり閉じたりさせているんですか?

表情はテクスチャーとして用意していたパターンがあって、同じくキーフレームに「ここでこの表情に切り替える」と設定していきます。!

表情のテクスチャー

今回はデフォルメが効いたテイストのキャラクターなので、目や口単体で細かく動かすのではなく決められた表情パターンをあらかじめ描いてしまいます。

例えば先の動画なら「着地したタイミングのフレームで、目を閉じた絵に切り替える」という感じで設定しています。

新作の3DCGを制作中の立原氏

使っているツールは?プロとは?

なるほど……だんだんわかってきたような気がします。
ちなみにアピリッツでは何のソフトを使っていますか?

主に「Maya」というソフトを使っています。
でもちょっとお高めなので家でも3DCGをやりたいなと思っている方は「Blender」という無料のソフトで練習しているようですね。

そういえば、個人でも3DCGのゲームを作っている方はいますよね?

いますね~!
学生でゲーム作って売ってるのを見ると独学だろうによくぞここまで……と感動します。

会社と個人の差はどこにあるのでしょうか?

企業の製品クオリティは、定められた世界観を表現する為の高い技術水準が求められます。それにリソースのボリューム(作成する素材の数)も必要で、開発規模がかなり大きくなりがちです。デザイナーもアートディレクターも非常に大変なのですが、それゆえ学べる事もたくさんあります!
例えば、仕様に沿っていてかつ見た目パフォーマンスも良い3Dデータを量産するのは、実務経験がないとなかなか難しいと思います。

本人がどこを目指すか次第にはなってきますが、そういった売り物になるようなハイレベルな3DCGを学びたいなら実際に企業の案件に携わってみるのが良いと思います。

3Dデザイナーその先も

アイコも3Dデザイナーが気になってきました!
では、どんな人が3Dデザイナーに向いているんでしょうか?

ゲームの3DCGの場合、見た目の良さを求めすぎて重いデータを作ってしまうと、
処理しきれなくて動作がカクカクになったり、ハード本体が熱くなっちゃったりと、実写映画やアニメなどと比べて制限が多いんです。
制限の中で、見栄えを良くしたり面白くしたりする工夫をするのを楽しめる人が、ゲームの3Dデザイナーには向いてると思います。

未経験でも、3DCGを担当させてもらえるのですか!?

もちろんです!
今の3DCGメンバーも全くの未経験からのスタートで、大体3ヵ月~半年で段々慣れてきてという感じでした。

専門的な勉強が必要そうな技術ですが、立原さんはどうやって技術を身につけられたのでしょうか?

自分は専門学校で基礎を学びましたが、先ほど言ったような無料で使える3Dソフトで練習したり、3DCGに関する映像やゲームに触れたりして、センスや関心を高めておけば事前の専門的な勉強は必ずしも必須ではありません。

ええっ!専門的な勉強がなくても大丈夫だったなんて……意外です!

でも、絵心があると有利ではあります。
自分が使う絵筆に詳しい人の方が優位なのは当然で、3DCGもあくまで絵筆のひとつですから。
あとは、プログラムができたりするのもいいですね。

え、デザイナーなのにプログラム?
プログラムはどんな場面で使われるんですか?

例えば、立方体のサイコロを1個作る作業があったとして、それを100~200個作ってくださいと言われたとき1つ1つ作るのなんて途方もないですよね?
必須ではないんですけど、 プログラムをかじっていれば、手作業では不可能な物量をこなせたりします。
特に出世したい人はプログラムができるといいですね。

プログラムができると出世するんですか!?

例えば「人の3倍作業ができます」という人がいたとしても、その人がチームを離れてしまえばチーム全体の作業効率は大きく下がってしまいますよね。でも、その人が作業効率3倍アップのプログラムを書いてチーム全体に配布すれば、その人がいなくなったとしてもチーム全体の効率は大幅に上がります!
自分としても生産性を上げられる人は貴重だと感じています。

もしかして、立原さんもツールを作ったりしていますか?

はい! 色々なツールを作ってチームをどんどん効率化させていってますよ!

立原さんがまとめていた工程のまとめ資料(すごく丁寧で詳しく書いてありました)

資料もすごく細かくて丁寧ですね。きっと、作成するのに相当時間がかかったのだろうなと思います……。

出来ることが増えるって喜びだと思うので、それを分かち合いたいんです。
もし自分が関われるのなら、持っている技術をできる限りすべて伝えたいですし、僕も学んでいきたいです。
3DCGって、やることが多い分『できなかったことができるようになる喜びを感じられる面』がたくさんあるんですよね。

次元が増えることで表現方法が倍に

ちなみに、立原さんは3DCGで何を作っている時が一番楽しいですか?

有り体ですが、3Dで作る事は全部楽しいです!!
ポリゴンでモデルを作るのも、テクスチャ描くのも、アニメーションつけるのも、3Dエフェクト作るのも、ツール作るのも好きです。
やることが多い分、それぞれに楽しみを見出しています。

「全部楽しい」と嬉しそうに語る立原氏

その笑顔でそんな発言ができるなんて、憧れちゃいます!
アピリッツで3Dデザイナーとして働くとどんな良いことがありますか?

アピリッツの3Dデザイナーは全ての工程を体験できます!

大企業だと分業化が進んでいて「3DCGがやりたくてなんとか入社できたものの、ずっと限られた一部の作業しかできない」といったケースもあります。
でも、アピリッツでは全ての工程を知った上で長所を見つけて欲しい。ある程度は何でもできるような人になってほしいという思いがあるので、キャラクターを作ってテクスチャ描いて、それを動かしてと、一通り体験してもらうんですよ。

そもそもキャラクター制作はとても人気なので、メインキャラのモデリングからアニメーションまで一通り触らせてもらえるようなところはそう多くはないと思います。もちろん世界観作りが好きなら背景でも、モンスターに興味があるなら敵キャラでもいいですし、希望があればその工程について一通り学べます!

自分の希望したものをしっかり学ばせてくれる環境ができているというのはとてもいいですね!

最後に、3DCGの魅力を教えていただけますか?

やはり立体であることですね。
一枚絵って正面から描いたものの場合、後ろとか見せようがないじゃないですか。
でも3Dモデルは360°どんなアングルも対応できていろんな事ができるんです。
奥行きがあることで臨場感や没入感を生み出せたり、三次元ポリゴン情報を使ったユニークな表現ができたりと、表現方法も倍に増えます!
3DCGで表現の幅を更に奥深くしましょう。

仏のように優しいが、かなりメタルな趣味を持つ立原氏
和風MMORPG『かくりよの門 -朧(おぼろ)-』江戸時代の日本をモチーフとした世界で3Dのかわいいキャラクター「式姫」たちと妖怪討伐の旅に出よう!

4営業日でレスポンシブサイトを作成しよう!

0

とある金曜日、Mさんから話しかけられました。
Mさん「ちょっとお願いがあるんですが、来週半ばまでに1枚技術職採用のためのサイト作成お願いします!」
私「がんばります」


【依頼内容】
  • ポップな感じで硬くないイメージのデザイン
  • スマホとPCでレイアウトが崩れず見れるように
  • 次週半ばには公開できるように
  • 原稿でポイントとなる箇所を目立つように
  • ファーストビューに「エントリーするボタン」を配置してほしい

その日はすでに金曜日で、次週半ばとなるとあまり時間はありませんでした。
そこで、多種多様なツールを用いて何とか公開までこぎつけたのでその方法を紹介します。

徳丸試験の紹介と合格する方法

0

はじめに

エンパワーメントサービス部所属の綾城です。徳丸基礎試験おそらく第1号認定です。

私は普段、外部の会社で脆弱性診断等を担当しているエンジニアです。
自社のセキュリティにはまったく係わってないため、社内事情には少し疎いですが、今回は自社で開発者などコーディング作業がある会社で働いている方にお勧めの資格の紹介をしたいと思います。

徳丸本について

みなさんは、徳丸本をご存じでしょうか?正式には、安全なWebアプリケーションの作り方という本です。普通に読み方は”とくまるぼん”としちゃってます。Webアプリケーションセキュリティの第一人者、EGセキュアソリューションズ株式会社徳丸浩氏が、2011年に著したベストセラー書籍です。Webセキュリティの本ではバイブル的な存在で、いろいろなところで紹介されては、読んどけとたくさんの方に私も言われました。

2018年大幅パワーアップした第2版が出版されました。個人でも買いましたが、会社にも置いておきたく、書籍購入制度を利用したのですが、総務から第2版が欲しい理由ってありますかと問われて、ページ数の増加と徳丸氏が書いた、安全なWebアプリケーションの作り方改訂のお知らせを見せて納得してもらったのをよく覚えています。その時は大変助かりました。第1版と第2版を読み比べるのもなかなか興味深いです。

しかし以前、Weeyble セキュリティ勉強会の輪読会に参加していたのですが、メンバーの中に安い中古買ったら第1版だったらしく内容が違うという事態になったことがありました。通常はもう第2版にしておきましょう。私が言うまでもないのですが、クロスサイト・スクリプティング、SQLインジェクションその他各種脆弱性について、コードを交えながら体験もできるという、とても素晴らしい書籍です。

徳丸試験について

徳丸試験は、正式名称ウェブ・セキュリティ試験といい、ウェブ・セキュリティ基礎試験(通称:徳丸基礎試験)が、2020年7月15日から正式に開始されました。ウェブ・セキュリティ実務知識試験(通称:徳丸実務試験)は、今後開始される予定です。
主催団体の一般社団法人BOSS-CON JAPAN PHP技術者認定機構の吉政忠志氏は、書籍を書いたり、興味深いコラムを書いたり、精力的に活動されてます。
問題の様子は、ウェブセキュリティ基礎試験予行問題集で少し見られます。

問題数40問
出題形式選択式
試験方法CBT形式
試験時間60分
合格基準7割正解
受験料一般価格 11,000円
出題範囲徳丸本の内容

詳しくは、下記を見てください。申し込みもこちらからです。
https://cbt.odyssey-com.co.jp/tokumaru.html

徳丸試験受験体験

私はちょうど去年の今頃、徳丸基礎試験のベータ試験を受けました。会場には血気盛んな感じの方達が集結しており、徳丸先生に挑戦するぞ!みたいな空気で満たされている気がしたのは私だけでないと思います。
予告通りPHPに関する問題は出ませんでしたがJavaScriptについてはほんの少し出ました。(XSSとか範囲だしあたりまえかな)問題を解きながら、書籍のあのあたりに書いてあったはずだけどなんだったっけなどと、結構頭を悩ませました。
30分ぐらいで退席する方も多くいましたが、私はじっくり時間を使いました。おそらくこの回は、士気の高さからほとんどが合格だったのじゃないかと思ってます。

ベータ試験を受けた方の記事 みなさん気合入ってますね
https://blog.pinkumohikan.com/entry/tokumaru-basic-exam
https://se-log.blogspot.com/2019/07/web-security-basic-examination.html
https://teitoku-window.hatenablog.com/entry/2019/10/16/202310

既に本試験を受けてきた方の記事 はやい!
http://blog.serverworks.co.jp/tech/2020/07/25/tokumarubasic/

この番号、おそらく第1号認定なのではないかなぁと思います。

徳丸基礎試験の合格方法

一応、タイトル詐欺にならないように書いておきます。
徳丸本をよく読む、余すところなく読む、わからないとことは調べたり、試したりして理解する。以上!
特に以下のようなマークのところは絶対理解しておきましょう。これで受かるだけなら受かります。しかしこの試験、合格だけが大事だとは私は思ってません。

大事なこと

私のはベータの時なので郵送できましたが、合格証明書と受験レポート(写真はベータのもの)が手元に来ます。受験レポートには、カテゴリ別の正答率が出力されています。試験中悩んだ箇所や、正答率が低かった部分を、振り返り復習することがとても大事です。この資格のいいところは、徳丸本をまんべんなく理解したかチェックできることにあります。


開発者は、配属されたプロジェクトや、プロジェクト規模により、自分の担当する箇所や機能に偏りがどうしても出てきてしまいますが、徳丸試験や受験レポートによって、あまり脆弱性について理解していない部分を見つけ出すことができます。また、会社全体でプロダクトのセキュリティを担保できているところが全てではなく、チームや個人の力に頼らざる負えない状況も多いです。個人的には、1~2年目ぐらいの開発者全員に、徳丸本をじっくり読んでもらって、徳丸基礎試験を受けてもらったらいいなと感じています。今後開始される徳丸実務試験にも開発者にはぜひ挑戦してもらいたいですね。


IPAの情報セキュリティマネジメントは全員に受けてほしいものの開発者よりではないし、情報処理安全支援確保士は、Webアプリケーションの問題はそんなに出なくなってきてる。EC-CouncilのCASEなどJavaですし、ちょっと敷居が高い気がします。開発者寄りでちょうど良さそうなのがあまりないという認識です。
脆弱性診断するならCEHCompTIA PenTest+やSANSのGWAPTなどですかね。あと、OSCPなどでしょうか、ちょっとハイレベルすぎる気がします。上野本で、上野試験とかあるとありがたいのですけど、またOWASPスキルマッププロジェクトの脆弱性診断士が試験になると程よい気もします。

さいごに

ウェブの脆弱性診断の現場で、時間ある時どのような準備をしておけばよいですかと聞くと、徳丸本読んでおいてよって回答がたまにあったのですが、徳丸試験受けておいてよと言われた事例がすでにあるそうです。自分が思ったより業界では注目されてそうです。

弊社のセキュリティエンジニアの募集要項には、Webセキュリティを学んだことのある方(独学可)としているのですが、徳丸基礎試験合格者は徳丸本の内容を理解しているとみてプラス評価になるでしょう。興味ある方は、下記の採用情報からセキュリティエンジニアの応募資格等を確認してみてください。もちろん、Webエンジニアも募集中です。下記ボタンからぜひ確認ください。

【社員インタビュー】マレーシアから夢を叶えに!日本へ来て8年経った女性デザイナーの今

0

今回は自社ゲーム開発(AG部)のデザイナーとして働いているマレーシア出身のシャラルリンさんに、日本に来てから現在までの経緯についてお話を聞きました!

――簡単に自己紹介、現在の仕事内容について教えてください!

自社ゲーム開発のデザイナーを担当しているシャラルリン・ウォンジャージーと申します。マレーシア出身です。最初はアルバイトとして入り、ゲーム(かくりよの門朧)のキャラクターや敵イラスト、背景、アイコン系などの2D関連の絵の仕事をしていました。現在は、正社員として新しいゲームプロジェクトのUIデザインのアシスタントを担当しています。

UIデザインについてはまだ経験が浅いので、日々色々な新しい知識を覚えながら技術を磨いております。かくりよの門朧で今まで積んできたイラストの経験を生かして新規ゲームのUIデザインの格好良さを最大限に出していきたいと思っています!

かくりよの門朧Twitter用イラスト アピリッツ
かくりよの門朧Twitter用イラスト

幼いころからの夢を叶えに日本へ

――マレーシアから日本へ……?

小学生の頃から日本のアニメや漫画の文化に影響されて、元々絵を描くのが好きだったこともあり、将来は必ず日本に絵の勉強をしに行きたいと思っていました。

その夢のために高校卒業後、1年間マレーシアの日本語学校で日本語を勉強しました。その後日本に留学し、東京にある漫画の専門学校に進学し2年間ネームの作り方やプロットの作成なんかを勉強しました。小学生の頃からの夢が叶って本当に嬉しかったです!

漫画家を諦めアニメーターに

最初は漫画家を目指して漫画の専門学校に入ったのですが、日本で漫画家として就職するのはやはり色々と難しい問題もあり、他に絵に携われる仕事を探し、アニメ業界に入社しそこで1年間アニメーターとして働きました。仕事としては好きだったのですが、経済的に厳しく食べていくのが難しかったため転職をしました。当時は業界的にも朝まで仕事をする事も多々あり、土日も働くことが普通でした……(笑)。

次に就職した印刷業界ではデザインやイラストとは関係のない仕事であったのと、事務職だったので単純作業で成長していく場が少ないと感じたため、「やっぱりクリエイティブ業界に戻りたい!」という思いが強くなり当時専門学校時代の先輩に相談しました。その際に先輩が勤めていたアピリッツを紹介してもらい、当時はゲーム業界未経験だったこともありアルバイトから2Dデザイナーとして応募し入社しました。

かくりよの門朧背景イラスト
かくりよの門朧背景イラスト
かくりよの門 スタンプ用イラスト
スタンプ用イラスト

仕事への意欲が益々高まった!

――アピリッツに入ってみてどうでしたか?

親切な先輩や同僚に恵まれていて毎日会社に行くのが楽しいです!また、自分の努力や、やっていた成果物がちゃんと上司に届いていることが実感できて、”仕事を頑張りたい!”という気持ちが益々高まりました。

後は、残業も少なく休みもきちんと取れるので、今まで勤めていた会社の中で一番働く環境が良いです!私自身はもっと頑張りたい!って方なので、コアタイムの1時間前に出社して仕事に着手しています。早く実力を身に着けたいので空いた時間は勉強や知識を増やす時間に当てています。フレックスタイム制なので時間の使い方の自由さなんかも魅力に感じています。

アピリッツでは文化の違いも関係ない……?

――日本に来て働きづらさなんかはありませんでしたか……?

そうですね……文化の違いは確かに少し感じました。マレーシアだと比較的自分の意見を主張する人が多いのですが、日本には上下関係の文化があるのでどちらかというと上司の意見に従う印象を持ちました。

前職までは、日本に来たからにはそういう文化に気を付けて仕事をしていたのですが….そういった面では、アピリッツは他の会社に比べると上下関係があまりなく、フラットな印象を持っています。自由に意見が言える雰囲気を感じました。

――これからの目標について

もっと色んな人に自分のアイデアを見てもらいたいので、ゆくゆくはゲームのアート、デザインのコンセプトのディレクターになるのが目標です。そのためには、自分に足りてない技術やセンスをしっかり学んで、実力を身に着けていきたいです。後は、さらに日本語のコミュニケーション能力を高めて精進していきたいと思います。

――ありがとうございました!

「アピリッツだから提供できる“付加価値”を」 2020年 経営幹部合宿レポート

0

先日、アピリッツの経営陣が経営合宿をおこないました。このご時世に合宿? もちろん慎重に検討を重ねました。アピリッツはメンバー同士のコミュニケーションとチームワークを大切にする会社です。この理念を守りつつ、いかに安全に、日々の業務ではなかなか見通せない中長期的なビジョンを経営陣が話し合ったのか? その様子をお伝えします。

「密」をさけて、安全に移動

まず、参加にあたっては「健康上の不安がないこと」「家族の同意」を参加の絶対条件とし、ごくごく限られた経営陣と一部のGMで臨みました。移動についても集団をさけて車で移動するメンバーが多かったです。

長谷部部長とCD部の大金部長。距離をとりつつ記念撮影。緑がきれい。

不参加メンバーも事前課題シートで参加

合宿の事前準備として、経営陣には経営課題シートが共有されました。和田社長の考える経営戦略に対して、率直に自分の意見と提案をおこなうのが目的です。また、今回合宿には参加しない役員についても課題シートを記入し、ビジョンの共有をおこないました。

箱根の風を浴びながら意見交換

感染症対策ばっちり。ホスピタリティ抜群のとてもよいホテルでした

今回の合宿会場は箱根の仙石原にある「箱根リトリートfore」を選びました。人里離れた森の中に佇む静かなホテルです。紫陽花と新緑がきれいで、霧雨でも涼しく、空気がおいしかったです。私達も窓を開け放ち、マスクを身に着け、お互い距離をとりつつ話し合い開始。

「これからのアピリッツ、どうする?」

この合宿のテーマは「中期経営計画」。つまり「これからのアピリッツ、どうする?」を経営陣みんなで考えるのが、合宿の目的です。

まずは「今後のアピリッツの働き方はどういうものであるべきか?」を話し合いました。目下の懸案事項である新型コロナウイルス感染症対策にとどまらない「働き方」を各部門ごとに検討しました。

そして、アピリッツの中期経営計画について意見発表と質疑応答を全員でおこないます。和田社長が掲げる「30人30チーム構想」をいかに実現するか? そもそもどういうビジョンなのか? 会社を成長させるためには、アピリッツは何をするべきなのか? これらについて、フラットに率直に話し合いました。

距離をとりつつ集中して話し合い

合宿、やってよかった?

やってよかった? もちろん、やってよかったです。休憩をはさみつつ議論を続けることで和田社長が掲げる「30人30チーム」のビジョンが経営陣のあいだでより明確になりました。そして、個々のメンバーの課題や想い(そしてナイスな人柄)を解像度高く理解しあえたと思います。これからのアピリッツの戦略と働き方をより深く考える機会になりました。

私達が決めたこと

この合宿を経て、私達アピリッツは以下の軸をさだめました。

  1. いつまでもベンチャーマインドを持つ組織であること。そのためには社員が増えてもフラットな組織体質を維持すること
  2. やる気のある人にチャンスを提供できる組織であること。そのためには、新たな挑戦・チームを作り続けること
  3. それぞれのチームで「アピリッツだから提供できる付加価値」を探し求めていくこと

こちらについては、今後の全社会でより具体的にシェアして参ります。参加者のみなさん、おつかれさまでした!

ビジネスはAIの夢を見るか〜AIがビジネスにもたらす価値〜

0

Michael SchwarzenbergerによるPixabayからの画像

はじめに

データイノベーション部所属の浅田です。

昨今、AI(Artificial Intelligence)というワードがバズワードになっています。日夜、AIに関連した記事やニュースを目にしない日はないと言っていいでしょう。

私はAI-Laboという、ビジネスにおけるAI活用を研究・支援する部署に属しています。業務的にも個人の興味的にも、そのような情報にアンテナを立てていますので、AIに関する情報を目にする機会は普通の方より多いと思いますが、そうではない、ITと直接関わりのない方々でさえも「AI」というキーワードをニュース等で目にすることは当たり前になっているかと思います。 ですが、どうしてこんなにAIという技術が注目されているのか疑問に思ったりする方もいるのではないでしょうか。あるいは、過去のAIブームをご存知の方の中には、今のAIブームが過去のAIブーム同様に一過性のものになるのではと思う方もいるのではないでしょうか。

そこで、なぜこれほどまでにビジネスにAIという技術が求められるのかを私なりに書いてみようと思います。

AI発展の歴史

AIのブームは過去二度あります。

第一次ブームは1960〜70年代に、コンピュータに推論や探索をさせようとしますが、簡単な問題(いわゆるトイプロブレム)しか解けなさそうとわかって、終焉を迎えることになります。

第二次ブームは1980年代に、コンピュータに知識をもたせることによって、専門家の役割を担わせる、いわゆるエキスパートシステムの構築を目指しました。しかし、知識を定義するのが膨大な作業で現実的でないことがわかり、終息していきました。

これらのブームの主役となったAIは、いわゆる記号主義と呼ばれるAIで、ルールを人間が定義して、その通りに振る舞わせようというものです。例えば、現代のゲームAIなどは多くの場合この技術の発展系が使われています。

それに対して、今の第三次ブームの火付け役となったディープラーニング(Deep Learning)に代表されるAIはコネクショニズムと呼ばれるAIで、人間がルールを教えるのではなくデータを与えることによってコンピュータにルールを獲得させようとするものです。ルールを機械が学習しているので、機械学習と呼ばれます。

それまでもコネクショニズムに基づくAIはありましたが、大量のデータが必要、データの保存場所も必要、それを処理できるCPU性能も必要、といった課題がありました。2000年代に入り、センサー技術やスマートフォンの普及などによるデータ獲得手段の発達、データを保存するストレージの低価格化、CPU(GPU)の高性能化などによって、大量のデータを処理することが可能になりました。また、ニューラルネットワークで層を深くした際に生じる勾配消失の問題を解決する誤差逆伝播法などが登場したことにより、今のブームを迎えます。

データ・ドリブン(Data Driven)

データに基づいて判断を行う、いわゆるデータ・ドリブンは、現代のビジネス環境において重視されつつあります。ファクトベースで状況を理解し、適切な判断をくだしていく。これがビジネスにとって重要なことは論を俟ちません。

データをもとにしてルールを獲得させる機械学習は、まさにデータ・ドリブンです。データから意思決定のための知見を得る、あるいは予測(判定)を行って迅速にビジネスを回していく。これがビジネスにAI(機械学習)が求められている一番の理由だと思います。

すなわち、ビジネスの核に近い部分にメリットをもたらすのが機械学習という技術であると言えると思います。

機械学習により得られるもの

ほとんどの場合、人間たちは、自分が望んでいることを喜んで信じる(fere libenter homines id, quod volunt, credunt.)

古代ローマの政治家ユリウス・カエサルの言葉です。

客観的に考えてるつもりでも、先入観が入ってしまうのが人間というものです。 それは固定観念であったり、偏見であったり、誤解であったり、時には希望であったり様々だと思いますが、先入観なしに物事を理解するのは難しいものです。そこで、機械学習を用いてデータから客観的な知見を獲得するのを助けることができます。

単純な例で言えば、回帰分析などは顕著な例かと思います。 回帰分析(Linear Regression)はもっともデータにフィットするよう偏回帰係数などを求めますが、その値はデータから導くもので人が設定するものではありません。ディープラーニングにしても、ニューラルネットワークがデータにフィットするような重みなどをデータから導き出します。

このように集められたデータから、データの中に潜む法則性を機械的に導き出す、というのが機械学習の根底にある思想です。

データを有効活用するために

とはいえ、大量のデータさえあれば、それで自動で機械学習のモデルが構築できて知見を得られるかというと、そう単純ではありません。

まず、第一にデータの質の問題があります。 ビッグデータの時代と言われるように、日々大量のデータが生み出されて蓄積されていますが、それらのデータが問題解決に十分なものであるとは限りません。いくら安価になったとはいえ、ストレージも無料ではないので、なんでもかんでも保存しておくわけにもいきませんし、そもそも入手すらしていないデータが問題解決に必要だということもあります。

第二に、機械学習に入力として与えるデータは何でもかんでも放り込めばいいわけではありません。オッカムの剃刀という、「ある事柄を説明する際に、必要以上に要素を仮定すべきではない」という原則は、機械学習の分野でもあてはまります。データの種類が増えれば増えるほど、機械学習のモデルが良い結果(精度)を出すために必要な学習データの量が増えていくということが知られています。なので、有限のデータ、有限のリソース、有限の時間の中でよりよい結果を出すためには、データの選別は必要になってきます。

そしてこれが決定的だと思っていますが、第三に現時点でのAIは問題設定そのものを行うことができません。いわゆるフレーム問題と呼ばれるもので、課題を解くために必要な情報はなにかということをAI自身が選択することができません。

したがって、人間がモデリングというプロセスを行う必要があります。

モデリングというプロセス

モデリングの意味するところは様々な要素を持ちますが、共通することは、観測されたデータに潜む関係を構造化することだと思います。

人間の様々な活動に共通することかと思いますが、ある事柄に熟練している人間と、それに不慣れな人間とを比較すると、目の付け所が違うな、と思うことがあります。熟練者は与えられた状況に対し、何を注意的にみればいいか、何と何が関連しているかなどを経験的に知っていて、枝葉末節よりも根幹に関わる重要な情報に着眼するからだと思います。

それと同じで、モデリングを行う際にも、どのようなデータを入力とするか、データの生成過程がどのようになっているかということを考える必要があります。

典型例で言えば、ベイズ統計モデリングが当てはまります。ベイズ統計モデリングでは、観測されたデータがどのようなファクターから影響を受けているのか、それぞれのファクターはどのようなデータ分布をもっているのか、ファクター同士の交互作用はあるかないかなどを色々考えながらモデリングしていきます。そしてそれぞれのファクターのパラメータをMCMC法などのアルゴリズムを使ってデータから学習していきます。

データの構造化は、ひいては解決しようとしている問題の構造化と言い換えてもいいでしょう。モデリングというプロセスによって、取り組もうとしている問題の構造を浮き彫りにすることができます。問題の理解が進めば、解決のための打ち手を考えられる可能性も高くなります。

上記のようなモデリングというプロセスは、一面ではデータドリブン的に見えないかもしれません。人間の「こうではないか」という仮説と、それをデータに当てはめてみて検証するという、人間的なプロセスを経るからです。ですが、人間が得意とする仮説・検証と、機械が得意とする推定・予測との両輪がそろって初めて、データドリブンというプロセスは正常に機能すると考えます。

予測に使われる機械学習

前述のような機械学習の利用法は、データ(事象)の解釈性に重心をおいた機械学習の利用法といえます。

一方、解決したいタスクによっては、事象の理解よりも、高い予測精度を確保したいケースもあると思います。例えば、CT画像から病気を発見するようなタスクを考える場合には、「ここがこうなっているから、この病気である可能性が高いと判定できる」といった解釈そのものよりも病気を発見することそのものが重要な課題になってくるでしょう。

そのような場合に、解釈性と引き換えに予測の精度を得ることに重心をおいたモデリングをすることもできます。ディープラーニングはその好例で、複雑なモデルともなるとパラメータの数は億を超えてしまうので、学習によって機械が推定したパラメータを人間が解釈するのは困難ですが、代わりに高い予測精度を得ることが可能になります。

また、モデルの精度を上げるために使用するブースティング(boosting)やバギング(bagging)というアンサンブルの手法がありますが、それなども解釈のしやすさよりも精度を優先するモデルの構築方法と言えます。

近年そのような手法の発展によって、特定の分野では人間に匹敵する(場合によっては人間を超える)精度や速度をもってタスクを処理することができるようになっています。2016年にDeepMindがGoogleのデータセンターの冷却電力を大きく削減して話題になったことがありましたが、そのようなケースを見てもわかるように、高い予測精度のモデルがビジネスに与えるインパクトは計り知れないものがあります。

データを分析するだけで終わって、ビジネス上のアクションにつなげられなければ意味がありません。機械学習という技術は、データからアクションに直接繋げられる、という点もビジネスに機械学習が求められる理由でしょう。

機械学習を支えるソフトウェアの充実により、機械学習の利用はますます促進される

ここまで、機械学習がビジネスにもたらすメリットを簡単に見てきたわけですが、それらが一部のハイテク企業に限定された話であれば、そんなことをしている企業もあるんだな、という話で終わってしまうかもしれません。

近年機械学習を支えるソフトウェア群は凄まじいスピードで進化してきました。

  • scikit-learnを使用することで、線形回帰や決定木などのアルゴリムズを数行のコードを書くことで使用できます。
  • ベイズ統計モデリングとMCMC法を用いたベイズ推定を行いたければ、stanを使用することで数十行のコードで実装できます。
  • XgBoostやLightGBMを用いれば勾配ブースティングを用いたアンサンブルによるモデルを数行で構築できます。
  • TensorflowやPytorchを用いることで、単純なニューラルネットワークであれば数行で実装できますし、複雑なニューラルネットワークも柔軟に実装することできます。

さらに機械学習の知識がほとんどなくても機械学習のメリットを享受できるようなクラウドサービスも出てきています。

これらによって、機械学習のメリットをビジネスに組み込むことは、数年前に比べれば確実に敷居は下がっています。それがデータを活用しようとする企業を後押しし、その企業が実績を出すことによってその有効性が示され、それに追随する企業の出現を促す、というサイクルを生み出していると思います。

最後に

  • ビジネス上の意思決定においてデータの有効活用を助ける
  • 人間の判断を代替し迅速にビジネス上のアクションを行える

大雑把にいえば、上記の2点がビジネスに機械学習がもたらすメリットであると思います。それらが有効であることは、想像に難くないと思います。そして、それらのメリットを享受していく企業は今後も増えていくでしょう。

とはいえ、機械学習は単なる技術でしかありません。もちろん、向いていないタスクもありますし、何よりもそれを正しく活用するためには、それなりのスキルが必要になります。そして日進月歩の分野でもあるので、それをキャッチアップしていく必要もあるでしょう。

私も、AI技術のもつ価値を信じる者の一人として、その価値を社会に提供できるよう、これからも精進していくつもりです。

第二弾アピリッツ社員のリモートワーク効率化まとめ。

0

現在アピリッツでは新型コロナウイルス感染症(COVID-19)対策としてリモートワークを取り入れております。

実際に実施してみてのリモートワークの社員の皆さんのリアルな声をお伝えできればと思い、全社員向けにアンケートを実施しました!(2020年4月実施)第一弾の記事はコチラ。

前回の記事ではメリット・デメリットについてご紹介しましたが、今回はその第二弾ということで、実際にアピリッツの社員の皆さんがリモートワークをする際に、工夫していることや便利なツールについてご紹介したいと思います!

リモートワークをする際に気を付けていること……

  • 文章をより分かりやすく伝えるように心がける。(丁寧なコミュニケーション。)
  • 生活スペースと作業スペースを区切る。
  • 部屋着ではなく普段着に着替えて仕事に取り掛かる。(ON,OFFをつける。)
  • 1日のタスクを管理しておく。(時間ごとのスケジュールを引く。)
  • 朝一でチーム内メンバーと朝会を行う。(Web会議システムの比較記事はこちら)
  • 運動、ストレッチ、散歩などの気分転換。
  • 休憩中などSlackのステータスを変更。

多く寄せられた社員の皆さんの気を付けている点としては、”普段会社に行くのと変わらない生活”を送ることを意識している人が多かったです。

その他、次のような工夫を取り入れている方も多いです。

  • 起床時間を変えずに、いつもの出社時刻と変わらない時間にパソコンの前に向かい仕事を開始する。(通勤にあてていた時間を散歩の時間にあてるなど。)
  • 寝巻のままではなく、外出着に着替えることで切り替えをする。

確かに生活のリズムを変えないことは大事ですよね……!また、仕事と生活の場を工夫して区切ることも大事だと感じました。

ちなみにアピリッツでは、リモートワークが始まってすぐに社内チャットツールのSlackで「#skill-リモートワーク効率化」という、設定、機材、手法などの情報を共有する雑談チャンネルが作成されました!すでに200人以上の社員さんが参加している人気チャンネルとなっていますが、まだ参加していない社員の皆さんはこちらを覗いてみるのもリモートワーク効率化や困ったときの参考になるかもしれません……!

最後に……

リモートワークおすすめ便利ツール!(Web会議システムの比較記事はこちら)

  • Googleリモートデスクトップ
  • Zoom 
  • discord(音声通話ならコレ!)
  • Redmine
  • スプレッドシート
  • asana(プロジェクト管理ツール)
  • いい椅子

ツールではないですが……とお家で美味しいラーメンが食べれるサイトのURLを載せてくださる方もいらっしゃいました♪

外出自粛が続きますが、おうち時間を少しでも快適に過ごせるように一緒に乗り越えましょう!

[Series] PX, the missing link for XD: How to research user needs in Design Thinking “Empathize” stage (Deep user engagement, Part 4)

0

In the previous article, I introduced the fictitious mobile application “Stormie”. Stormie demonstrates how Design Thinking (UX) provides designers with a problem solving process to come up with innovative solutions for problems facing a particular audience.

In this article, I will dive further into how I applied Design Thinking for Stormie, covering stage 1 of the process, “Empathize”.

Overview

The Design Thinking process helps designers learn about the user, their needs, and come up with new ideas for innovative solutions. These ideas are then turned into a prototype and tested to refine the usability for creating better solutions.

The empathize and define stages help define the problem space. And the ideation stage helps us come up with useful and innovative ideas for prototyping and testing. The prototype and test stages make the solution easy to use and provide feedback for further iteration (ideation, prototyping, and testing).

Stage 1, Empathize: Research user needs

The first step is to understand and empathize with the users. In our case, the users are aspiring writers. To better understand the needs of aspiring writers, research is required. There are different dimensions and research methods within UX research. The goal for each method is to better understand the user and their needs. If done properly, the methods will generate quality user data for synthesis in the next stage, “Define”.

Common user research methods

  • User interviews
  • Usability studies
  • Surveys
  • User data analysis
  • Ethnographic field studies
  • Participatory design

Note

If you don’t have direct access to the users and it’s difficult to conduct user interviews, surveys, or usability testing, investigate their communities. In this case, you’d research writing forums, blogs, and sites for writers. Other sources for user data are website analytics, heat-maps, session recordings, and other user data that doesn’t require direct access to the users. In any case, it’s helpful to have data from more than one source to verify assumptions in the Define stage.

Stormie UX research method: User interviews

For “Stormie”, user interviews is our research method. To learn more about aspiring writers and the problems they face, in-person user interviews were conducted. Writers from community writing centers were asked questions about their writing goals, a typical day with writing, lifestyle, current tools, ideation process, tasks, and problems.

Before conducting the interviews, prepare a simple script to introduce yourself, the purpose and goal of the interview. In the end, thank them for their time and ask if they know any other users (writers in our case) you can reach out to for interviews – preferably with similar problems. Referrals are a great way to find your target audience and early adopters.

Stormie interview questions

  • When did you start writing?
  • Why do you write?
    • Do you have a writing goal?
      • How are you progressing towards the goal?
      • Is there anything preventing you from achieving this goal?
  • What types of writing do you do?
    • Is it long form like a book or shorter form like a short story?
  • How does writing make you feel?
    • When do you feel this way?
  • What do you write about?
  • When do you write?
    • When do you write most?
  • Where are you when you write? At home, work…?
  • Do you currently use any writing tools or applications?
    • If so, what? Do they help? If not, why not? If so, how?
  • Have you used any writing tools or applications in the past?
    • If so, what? Did they help? If not, why not? If so, how?
  • Can you describe a typical writing day?
  • How do you come up with ideas to write about?
    • Can you describe the idea generation process, and going from idea to writing it down?
  • What is the biggest pain about your writing process?
  • If you could wave a magic wand and change anything in your writing process, what would it be?

If done properly, user interviews are one of the most useful UX research methods. Interviews allow the designer to learn first hand what the issues are. Follow the tips below to ensure you get the most out of the interviews.

And remember, just because a user says something doesn’t mean it’s true. Listen carefully to what users do, think and feel as well. The truth is a mix between what users say, do, think, and feel.

User interview tips

Great questions to ask for any product

Tailor the below to your audience.

  • What is the biggest pain about how you work?
  • If you could wave a magic wand and change anything in what you do, what would it be?

Do

  • Have a set of questions you use every time
  • Ask open-ended questions
  • Ask the same question from multiple angles
  • Ask follow-up questions
  • Keep your reactions neutral
  • Keep the conversation natural
  • Talk about solutions last

Don’t

  • Don’t ask leading or directed questions
  • Don’t ask people what they want
  • Don’t ask yes/no questions
  • Don’t make assumptions
  • Don’t mention other users
  • Don’t use jargon

Below are quotes from the interviews. Quotes are useful to highlight information that may be useful for insights and opportunities in the next stage when synthesizing all the data.

Stormie user quotes

“I’ve been trying to write a book for years, but can’t find the time. I’m just so busy.”

“I have tons of ideas all over the place. Organizing them is going to be a nightmare.”

“I can’t seem to write more than a few paragraphs without researching “how to write” online. I never know if what I’m writing is effective or not.”

“I wish there was a way to see where my ideas fit in the overall story structure.”

Next time: review the research data for “problem statement” insights in the Define stage

In the next article, I will show how I found insights from Stormie user research to create a problem statement. A problem statement is a clear and concise summary of the user, their need, and why the need is important to the user. See you in the next stage of Design Thinking, “Define”.

→ Japanese translation of this article

【開催中!】書類選考なし!ポテンシャル(未経験)採用キャンペーンとは?

0

株式会社アピリッツではなんと現在ポテンシャル(未経験)採用キャンペーンを開催中……!!こちら、異業種からのエンジニア転職を歓迎する企画です。

ポテンシャル(未経験)採用キャンペーンって?

アピリッツ 中途採用 未経験募集

次の2つの条件を満たした方は、エンジニア職の書類選考なしで即面接いたします! 気になる応募条件はこちら!

1、社会人経験1年以上の方(11ヶ月でもOKかも★)

2、プログラミングスクールでプログラミングを学んだ人

・TECH CAMP (テックキャンプ)・Tech boost (テックブースト)・TechAcademy(テックアカデミー)などのプログラミングスクールで学んだ方が対象です(他のプログラミングスクールでももちろんOKです)

詳しい詳細はコチラです。

たった2つの条件を満たすだけで書類不要、即面接というキャンペーン……!こちら「10名採用限定」です、お急ぎください!

これからエンジニアになろうとしている皆さんにはチャンスです!ぜひこの機会にご応募ください!

今アピリッツで活躍しているプログラミングスクール出身のエンジニアインタビューはこちらです!

新卒も参加中! AWS主催 “ANGEL Dojo Season2” 若手エンジニアインタビュー

0

AWS主催の次世代エンジニア向けのイベント”ANGEL Dojo Season2″に、アピリッツの若手エンジニア5名が参加中です。期間は2020年6月12日〜2020年9月11日で、この3ヶ月のあいだ、彼らは業務と並行しながら、疑似プロジェクトの立ち上げと開発を通してAMAZONの文化と考え方を体験します。

→ “ANGEL Dojo Season2″の概要と、参加に向けての西脇執行役員の思いはこちらをご覧ください

参加しているエンジニアはみな若手で、今年新卒入社したばかりのメンバーもいます。部をまたいだ社外プロジェクトであるANGEL Dojo Season2に飛び込んだ経緯や、プロジェクトの様子を教えてもらいました。アツいです。

アピリッツのANGELsはこの5人!

メンバーの経歴や、ふだん取り組んでいる業務は異なります。でも「それぞれがこだわりを持ち、手を抜かない」「やる気がある」「問題視する内容が似ている」「話がおもしろい」など、共通点は多いそうです。

写真 左手前から

データビジネス部(DB部) Strategy Partnerグループ・渡邊 泰平
2018年入社
「とても仕切るのがうまくチーム全体をまとめたり、
伝達など丁寧にしてくださる方 by 大久保さん」

データイノベーション部(DI部)・小林 史弥
2020年入社
「心のうちで常に高みを目指している印象 by 大久保さん」
「大久保さんと小林くんは新卒なのにやる気があってやるなあ by 柴田さん」

データイノベーション部(DI部)・柴田 裕也
2018年入社
「柴田くんと渡邊くんは同期。なので今回メンバーにいると聞いて安心した by 吉岡さん」
「柴田くんはいつも忙しそう by 渡邊さん」

メディアサービス部(MS部)・大久保 美涼
2020年入社
「小林くんも大久保さんも先輩相手でも積極的に発信してくれてて頼もしい by 吉岡さん」
「勉強してないと言いつつ100点とる人 by 小林さん」

データイノベーション部(DI部) AI-labo所属・吉岡 孝太
2018年入社
「たまにランチも一緒に行きます by 渡邊さん」
「他の意見を否定せず広げようとする前向きな印象 by 大久保さん」

「AWSについてより深く勉強したい」「この機会を逃したくない」

――みなさん 「ANGEL Dojo Season2」の社内募集にはすぐ手を挙げたのでしょうか?

DI部 柴田:私はすぐに決めました。この企画は3年目までの人が対象で、私はちょうど入社3年目です。だから「この機会を逃したら次はない」と思いましたし、AWSを業務で使う上で、もっと勉強しなければと考えていたところだったので。

DI部 吉岡:自分はGMの浅田さんから「やってみない?」と推薦されたのがきっかけです。実は最初はすごく迷いました。ちゃんと専念できるか不安でしたし、AWSを自分で触る機会がすくなかったので、この状態で参加して良いのかなと……。でも、柴田さんと同じく「この先こんなチャンスはないかも」と思いましたし、AWSの苦手な部分を克服したかったんです。それで、思い切って飛び込むことにしました。

DB部 渡邊:私は部長の長谷さんから声がかかって「参加します」と伝えました。エンジニアとしてAWSの知識を増やさねばという危機感がありましたし、あとはこのタイミングで社内で5人しか経験できないって、すごく貴重なチャンスだなと。

DI部 小林:コロナ対策でリモートワークが始まった頃に、部長の児山さん( →インタビューはこちら)との会話でANGEL Dojo Season2を知りました。そこで「参加したい!」と志願しました。新卒で参加するので、チームの足を引っ張ってしまうかもと心配でしたが、AWSの知識はこれから必須事項になると思いましたし、入社直後に学べる良い機会だなと……

MS部 大久保:私も最初は少し迷っていたのですが、GMの剣持さんとお話して参加を決めました。AWSは入社後絶対に勉強しようと決めていましたし、実践で知識を身につけられるのが魅力で。

DB部 渡邊:そう、小林くんと大久保さんは新卒です。やる気があってすごいなあと思いました。あと、新卒で入社して即こんな経験ができるのは正直うらやましい。自分が新卒だった頃を考えると、これってものすごくいい勉強だなと思うんです。

声をかけあってミーティングスペースに集まって打ち合わせ。後ろに写っているのは西脇執行役員です。

業務のあいまにトレーニングとワークDay

――ANGEL Dojoは、金曜日が終日ワークDayで、他の日に講義やトレーニングもありますね。業務との両立は大変でしょうか?

DI部 柴田:ANGEL Dojo以外の時間は業務に集中しよう、とみんなでスケジュールを決めて動いています。

DI部 吉岡:意識せずできていると思います。Slackでの連絡はなるべくハードルを低くしようと話し合って決めたので、できるだけ遠慮せず流すことにしています。

DI部 小林:頭の切り替えはいけるんですが、講義は通常業務のあと夜に参加するんです。気を張って臨んでます。

DB部 渡邊:私もANGEL Dojoと業務の棲み分けは大丈夫です。むしろ通常業務のあいまに気分転換でANGEL Dojoのことを考えたりしています。

MS部 大久保:私もスイッチを替えつつ取り組んでいます。でも家でくつろいでいるときにふと考えたり……。

「今までと思考の領域がちがう」

――ANGEL Dojoは新鮮な体験かと思いますが、いかがでしょう?

DI部 吉岡:若手が考えたものを、若手だけで作るのは通常ならあまりないことです。たとえばツール選定ひとつとっても、流れがぜんぜん違う。ベテランのメンバーがいればツールの選択肢も狭まるんですけど、若手だけだと「アレがいいかな、コレかなあ」って模索するところからはじまるんです。楽しいです。

DI部 小林:思考の領域がちがうなと感じます。僕の場合、通常業務ではおもに処理をコードでどう実現するかを考えます。でもANGEL Dojoでは課題をサービスでどう解決するかを考えています。ANGEL Dojoは今ちょうど0→1を作るフェーズなので、余計違いがあるなと思います。

DI部 柴田:そうなんですよね、自分たちで考えたプロジェクトというのが新鮮です。自分の場合、設計に携わるのが初めてなので、苦労してます。

MS部 大久保:企画から開発まで、通して取り組めるので良い機会です。来年以降もあるなら是非同期にもオススメしたいです。

DB部 渡邊:自分たちでやりたいように要件を決めてます。こんなに自由に何かを作るという経験が今まであまりないので、そのぶん大変です。

ちょうどこの日は週に一度のワークDayの日でした

「ゼロから何かを作る産みの苦しみ」「お客さまの視点で考える」

――ANGEL Dojoの壁は何でしょう?アイデア出しに苦労したとお聞きしましたが……

ANGELs全員:アイデア出し!苦労しています!(大声) そして今でも課題は山積みです。

DB部 渡邊:まず全員「アイデア出しは苦手です」と申告してたんですよ、そして実際めちゃ苦労してます。これは現在進行系の課題ですね。個人的にはまだ全く納得できていません。

DI部 柴田:アイデアの深堀りが難しいです。初めての経験が多いので、壁と言ったらすべてが壁です。

MS部 大久保:納得行くまで理解するのも大変ですし、お客さま像を考えて、それが本当に必要なサービスなのか? という視点の大切さを学んでいます。

DI部 小林:アイデアを出しても、いざユーザーを仮定してサービスを掘り下げると「これはアイデアを満足する内容なのか?」となることがしばしばです。考えれば考えるほど手段と目的が離れてしまう、ゼロから何かを産むのはこんなに難しいのか……と思わされました。

DI部 吉岡:「お客様が何を求めているか」と「自分たちが何をやりたいか」との間に無限に妥協点があって、どこに収束させていくかを決めていくときに本当にこれでいいのかと常に不安になってしまいます。

――AWSのみなさんやアピリッツのメンターのサポートで、ブレイクスルーはできそうですか?

DI部 小林:メンターの方々の的確なアドバイスで、殻を破るまでは行かないまでも、ヒビくらいは入ったはず。

DB部 渡邊:最初はホント苦し紛れでした。最近はみんなが納得できるアイデアを形にできつつあるように思います。まだブレイクスルーできているのかわかりませんが、ブレイクスルーのきっかけはAWSのベテランの方々のアドバイスだと思います。

DI部 吉岡:アドバイスが的確すぎて、そこからさらに大きく直したり……アイデアをまとめるときはもうヘトヘトです。とりあえず作ってみる、余裕があったら拡張してみる、と段階を着実に踏んで1歩1歩進めていければ良いなと思います。

MS部 大久保:頂いたフィードバックをもとに、一歩ずつ進めています。

DI部 吉岡:アピリッツ側からメンターとして西脇さん(注:アピリッツのWebシステム開発のトップ。→インタビューはこちら)と浅田さん(注:アピリッツのAIエンジニア。→インタビューはこちら)が参加しています。浅田さんは知識や技術の話で手助けをしてくれています。西脇さんは僕らの自主性をものすごく大切にしてくれます。こちらがいよいよ本当に困って、相談や質問をするまでは、じっとガマンして見守ってくれているなあと感じます。

――参加までの経緯は、みなさんバラバラなように見えて、「今しかないチャンスだから」「AWSを学びたいから」という点でつながっています。そして、ANGEL Dojoは「AWSの知識の習得」にとどまらない、幅広い経験につながる、豊かな機会なのだなと感じました。これから開発と発表が待っています。9月の最終発表のあと、またチームの皆さんに話を聞きたいです。応援しています!

最近人気な記事