ホーム ブログ

新入社員たちのビジネスマナー研修、そのリアルな現場から

0

こんにちは!今日は、新卒社員を対象にビジネスマナー研修を行いました。どんな風に過ごしていたか、ちょっと覗いてみましょう!

緊張と真剣さが交差する講義時間

マナー研修日、新入社員たちは真新しいスーツに身を包み、何やら緊張した面持ち。講義が始まると、みんな真剣そのもの。社会人として知っておくべきことを一つひとつ学んでいきます。

筆記用具を片手に、講師の話に耳を傾ける姿はまるで大学の講義を思い起こさせるよう。でも、ここでの学びは学問だけでなく、「実際のビジネスシーン」で使う実践的なもの。それが、彼らの緊張感を一層高めているようです。

リラックスして学ぶ、グループワークの時間

講義中には、グループワークでの実践も挟み、講義で学んだ内容を元に、ロープレ形式で実践的な練習を行います。最初はぎこちない動きも、同期が助けてくれたり、互いに笑いあったりしながら、だんだんと慣れてきます。

自身の携帯を利用しての電話研修。いろんなシチュエーションで何度も挑戦!
新卒社員にとって初めての名刺交換。我々もルールを改めて聞いて再発見する面もありました(笑)
研修のグループは完全ランダムでしたが、全員初めてという共通点から仲を深めていきました。


この時間があるからこそ、新入社員たちは緊張を解きほぐし、自然体でスキルを身につけることができるんですね。お互いに「こうしたほうがいいよ」とアドバイスを交換する姿は、まるで学生時代のグループ活動を思い出させます。楽しみながら学ぶ、これが成長への近道かもしれません。

研修終わりには。。

研修が終わる頃には、朝の緊張した面持ちもどこへやら。新入社員たちは少し疲れた様子もありますが、明らかに自信に満ちた表情に変わっています。実際に研修を終えた新卒社員の声を聞いてみると。。

・現在だけでなく今後どのような社会人になりたいのかなど将来的な物事を考えるきっかけにもなりました。
・マナー・身だしなみ、所作、振る舞いはすごく周りに見られる。会社の代表として恥ずかしくない振る舞いをしたい。
・想像以上に細かいマナーが存在していてびっくりした。

一日でこんなにも変われるんだから、これから数ヶ月、数年で彼らがどれだけ成長するのか、考えるだけでわくわくします。そして、研修終わりには何か行われたそうです、、が、その様子はまた次回のアピスピで紹介します!

社会人としての一歩を踏み出した新入社員たち。彼らのこれからの成長に、私たちも大きな期待を寄せています!

UnitySentisでSpeechToTextをしよう

0

はじめに

コーヒーにこだわりたいけど豆に触れると沼だと思って手を出していません。ゲームエンジン・エンハンスメント学部 中村です。前回の記事ではUnitySentis+ML-Agentsのサンプルに触れたので、今回はもう少し踏み込んでUnitySentisを用いたSpeechToTextを実行しましょう。さらに声をコマンドにしてキャラクターを動かすちょっとしたゲームを作っていきます。

UnitySentis

前回の記事でも触れましたが、Unity Sentisはニューラルネットワークをもとに学習されたonnxファイルをインポートし、そのAIモデルをUnityがサポートするプラットフォームで直接実行することができます。これによって、音声認識や手書き文字認識などがWebを経由することがないので、ネットワークインフラに依存する必要がなくなります。

まずはサンプルから

何事もまずはサンプルから始めていきましょう。

UnitySentisでSpeechToTextを実行するためには、そのAIモデルが必要になります。SpeechToTextといえば、Web上から実行できる OpenAI 製の Whisper が有名なのでそちらを利用しましょう。WhisperはHuggingFaceにオープンソースで公開されており、その構造の詳しい説明書も含まれています。

今回はUnityから公開されているこちらのサンプルを使用していきます。このサンプルに含まれているファイルは以下のとおりです。

  • answering-machine16kHz.wav:テキストに変換したい音声ファイル
  • LogMelSepctro.sentis:音声波形をlog-melスペクトル変換するモデル
  • AudioEncoder_Tiny.sentis:log-melスペクトル変換された音声からその特徴量に変換するモデル
  • AudioDecoder_Tiny.sentis:音声特徴量とテキストトークンから次のトークンを予測するモデル
  • vocab.json:トークンと文字の組み合わせ
  • RunWhisper.cs:UnitySentisを利用してSpeechToTextを実行するコード

このサンプルではReadmeに記述されている通りの手順で実行していきました。

  1. Unity2023.2.11 で新規プロジェクトを作成し、サンプルファイル群をインポート
  2. com.unity.sentis パッケージをインポート
  3. RunWhisper.cs ファイルをMainCameraにアタッチ
  4. sentisファイルとvocab.jsonをAssets/StreamingAssetsフォルダへ移動
  5. answering-machine16kHz.wavをインスペクタから “Force Mono” と “Decompress on Load” をONにする

この状態でUnityをPlayすると、以下のようにデバッグログが出力されて音声がテキストに変換されている様子を確認できます。

音声を認識してテキストに変換していく様子

サンプルの中身を理解する

一旦 Unity 上で SpeechToText が動作していることを確認できました。ここで RunWhisper.cs がどのような動きをしているか見ていきます。私の理解でコメントを付けています。

void Start()
{
    // 推論に利用するテンソルをキャッシュ,もしくは単にメモリ割り当てを行う仕組み.
    allocator = new TensorCachingAllocator();
    // テンソル演算を実行するインスタンスを生成する(Opsはオペレーションか?).ここでbackendはSentisの実行環境を示しGPUを指定している.
    ops = WorkerFactory.CreateOps(backend, allocator);
    // 変換後の特殊文字を白埋めするのでその配列を初期化.
    SetupWhiteSpaceShifts();
    // vocab.jsonからトークンと文字の割当をロード.
    GetTokens();
    // StreamingAssetsからモデルファイルを読み込む.
    Model decoder = ModelLoader.Load(Application.streamingAssetsPath + "/AudioDecoder_Tiny.sentis");
    Model encoder = ModelLoader.Load(Application.streamingAssetsPath + "/AudioEncoder_Tiny.sentis");
    Model spectro = ModelLoader.Load(Application.streamingAssetsPath + "/LogMelSepctro.sentis");
    // 読み込んだモデルからニューラルネットワークを実行するワーカーのインスタンスを生成する.
    decoderEngine = WorkerFactory.CreateWorker(backend, decoder);
    encoderEngine = WorkerFactory.CreateWorker(backend, encoder);
    spectroEngine = WorkerFactory.CreateWorker(backend, spectro);
    // デコーダーに指定する入出力トークンを初期化する.
    // index:0 は 単に SpeechToText を開始する合図.
    // index:1 は 言語の指定.
    // index:2 は 同じ言語の文字列 に変換するか 別の言語に翻訳するか.
    // index:3 は 文字起こしにタイムスタンプを利用するか.
    outputTokens[0] = START_OF_TRANSCRIPT;
    outputTokens[1] = ENGLISH;// GERMAN;//FRENCH;//
    outputTokens[2] = TRANSCRIBE; //TRANSLATE;//
    outputTokens[3] = NO_TIME_STAMPS;// START_TIME;//
    currentToken = 3;
    // 音声をロード.
    LoadAudio();
    // ロードした音声を変換.
    EncodeAudio();
    transcribe = true;
}

まずRunWhisperのStart内では、テンソル演算に使用するオペレーションやニューラルネットワークを実行するインスタンスを生成しています。この際にAIモデルを指定すれば、内部でその演算を行ってくれます。

また、 outputTokens には SpeechToText の初期状態を設定するトークンを指定しています。このoutputTokensは音声をデコードする際に利用します。さらに LoadAudioでは単にAudioClipを浮動小数点配列として取り出し、 EncodeAudioencoderEnginespectroEngineによるエンコードを行っています。

void EncodeAudio()
{
    // 浮動小数点テンソルを 指定した TensorShapreに併せて生成.
    // ここでは data に音声データが含まれているため,音声データをテンソル化している.
    // SentisのTensorは IDisposable を持つため usingステートメントを利用する.
    using var input = new TensorFloat(new TensorShape(1, numSamples), data);
    // Whisperのエンコード/デコードに対しては30秒の音声データを入力しなければならないため,30秒に満たない場合には足りない分を0で埋める.
    // Pad out to 30 seconds at 16khz if necessary
    using var input30seconds = ops.Pad(input, new int[] { 0, 0, 0, maxSamples - numSamples });
    // 音声データをlog-melスペクトル変換して特徴量を計算する.
    spectroEngine.Execute(input30seconds);
    // 変換結果をTensorで出力する.
    var spectroOutput = spectroEngine.PeekOutput() as TensorFloat;
    // 音声データの特徴量を Whisperエンコーダーに入力する.
    encoderEngine.Execute(spectroOutput);
    // エンコード結果を受け取る.
    encodedAudio = encoderEngine.PeekOutput() as TensorFloat;
}

EncodeAudio メソッド内ではロードした音声データをWhisperエンコードしています。この処理自体は非常に簡単で、音声データからテンソルを生成して、log-melスペクトル変換、エンコード、と順に行っているだけでした。ただ、Whisperでは音声データの長さが30秒であることを基準としています。短すぎる音声ではその推論の制度が低下すると考えられているからのようです GithubDiscussion。その影響でこのサンプル内では足りない分のデータを0で埋めて処理しています。

void Update()
{
    if (transcribe && currentToken < outputTokens.Length - 1)
    {
        // outputTokensをデコーダーに入力するためにテンソルに変換する.
        using var tokensSoFar = new TensorInt(new TensorShape(1, outputTokens.Length), outputTokens);
        // デコーダーへの入力情報を作成.
        var inputs = new Dictionary<string, Tensor>;
        {
            {"encoded_audio",encodedAudio },// EncodeAudioで生成したエンコード済み音声データ.
            {"tokens" , tokensSoFar }
        };
        // デコーダーに入力して実行.
        decoderEngine.Execute(inputs);
        // 実行結果を受け取る.ここでは各トークンに対してどの程度一致しているかの数値が返される.
        var tokensOut = decoderEngine.PeekOutput() as TensorFloat;
        // 出力されたトークンの中から最も大きな数値を持つ(一致している)トークンを探す.
        using var tokensPredictions = ops.ArgMax(tokensOut, 2, false);
        tokensPredictions.MakeReadable();
        // 一致していると判断されたトークンのIDを取得.
        int ID = tokensPredictions[currentToken];
        // 出力トークンとして記憶する. 次のフレームでの推論にまた利用する.
        outputTokens[++currentToken] = ID;
        // 推論が終了したと判断されるか,IDが用意されたトークンを超えるまで繰り返す.
        if (ID == END_OF_TEXT)
        {
            transcribe = false;
        }
        else if (ID <= tokens.Length)
        {
            outputString += $"(time={(ID - START_TIME) * 0.02f})";
        }
        // tokensにはvocab.jsonからトークンと単語の組み合わせが含まれているので,その中の指定のトークンを取り出す.
        // ここで tokens[ID] は新たに推論された単語となる.
        else outputString += GetUnicodeText(tokens[ID]);

        Debug.Log(outputString);
    }
}

Updateは毎フレーム実行されるため、デコーダーによるテキストの推論を少しずつ進めて行くように処理されます。outputTokens はデコーダーへの入力とするためにテンソルに変換され、またデコーダーから推論されたトークンを新たに指定し、次のフレームでまた入力として利用されるようにループしています。デコーダーは事前にモデルを読み込まれたdecoderEngineで実行されます。通常入力された音声データと前回の結果トークンから次のトークンを推論しています。デコーダーからの出力は、vocab.jsonに含まれるすべてのトークンに対してどの程度一致しているかを数値で出力します。そのため、最も大きな数値を持つインデックスを見つければそれが推論されたトークンとなります。推論されたトークンから単語を取得し毎フレームつなぎ合わせることで結果の文章が得られます。

以上、大ざっぱですがサンプルについてその仕組みを記述しました。

今回、このSentisを利用したSpeechToTextを用いて、声で操作するミニゲームを作ってみようと思います。と考えると、音声が30秒限定というのは長くないですか?

AIモデルを出力してみる

Whisperでは短すぎる音声は推論の制度が低下するため30秒の音声ファイルを要求している、ということは理解したうえで、半分の15秒の音声ファイルを処理するモデルを作成してみようと思います。というのも「声で操作するゲーム」を考えたときに、30秒の発言で操作することはほぼないでしょう。15秒でも長いかもしれませんが、ある程度短くできればテンソルサイズが小さくなるのでメモリ節約と処理速度向上が見込めるはずです。

モデル出力スクリプトを利用する

先ほど見たサンプルに含まれる各「.sentisファイル」はonnxAIモデルファイルからUnitySentisが利用しやすいように変換されています。そのため、サンプルにonnxファイルは含まれていません。そこで、そのonnxファイルを手元で出力してみましょう。Whisperのonnxファイル出力もすでに有志によってオープンソース化していますので、こちら whisper-export をお借りします。

今回はWindows+WSL2上のPython3.10.12で実行しました。まず、任意のディレクトリに whisper-export をGitクローンします。その後、以下のコマンドで必要なライブラリをインポートできます。

$ pip install ./
$ pip install onnx

CUDAを利用してonnxを出力するため、以下のコマンドでWSL2上でCUDAが参照できているか確認します。CUDAが参照できない場合、NVIDIA Diriverが古いかインストールされていない可能性があります(1ミス)。

$ nvidia-smi
Sun Mar 24 20:50:15 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.54.10 Driver Version: 551.61 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+

私のWindows環境では NVIDIA Driverが551、CUDAが12.4でした。 whisper-export では torch2.2.1がインストールされるので、CUDAのバージョンを12.1以上に合わせる必要があります(1ミス)。また、CUDAのバージョンが合っていてもPythonから認識されない場合があるので、以下のコマンドで状況を確認します。認識されていない場合にはPCの再起動が必要です(1ミス)。

$ python
Python 3.10.12 (main, Mar 15 2024, 20:29:42) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True

ここまでのコマンドで設定が確認できたら、いよいよonnxモデルを出力しましょう。以下の2つのコマンドを実行し、エンコーダーとデコーダーをそれぞれ出力します。また、この際になんでも良いので音声ファイルが1つ必要です。元になるモデルはwhisper-tinyです。

$ python cli.py audio.wav --model tiny --device cuda --export_encoder
$ python cli.py audio.wav --model tiny --device cuda --export_decoder

コマンドが正常に完了すると、export_model ディレクトリにdecoder.onnxとencoder.onnxファイルが出力されています。

また、今回の目的は音声データの認識サイズを30秒から15秒に変更することです。これはこのプロジェクト内のaudio.pyでCHUNK_LENGTHを15に変更するだけでした。

出力したモデルをSentisで使用する

手元で出力したモデルを利用するため、先ほど出力した2つのonnxファイルをサンプルプロジェクトのStreamingAssetsではないディレクトリにコピーします(1ミス)。すると、Inspectorには以下の画像のようにonnxファイルを認識した状態の情報が表示されます。ここで入出力の形も確認できるようです。

ここで、Inspectorにある[Serialize To StreamingAssets]ボタンを押すと、StreamingAssetsディレクトリにonnxをSentis用に変換した.sentisファイルが出力されます。サンプルに含まれていた.sentisファイルはこのようにして作られたものです。

これでエンコーダーとデコーダーの2つの.sentisファイルが生成されたので、サンプルに含まれていたRunWhisper.csをこのモデルを利用できるように書き換えましょう。LogMelSepctro.sentisはそのまま利用させてもらいます。

まず、以下のように単に読み込むAIモデルのファイル名を変更します。

Model decoder = ModelLoader.Load(Application.streamingAssetsPath + "/decoder.sentis");
Model encoder = ModelLoader.Load(Application.streamingAssetsPath + "/encoder.sentis");

さらに、サンプルに含まれていたデコーダーと、手元で生成したデコーダーでは入力データの数が異なります。はじめにmaxSamplesで音声の長さを指定しているので15秒とします。さらにkvCacheoffsetの2つのテンソルを用意し入力に加える必要があります。

const int maxSamples = 15 * 16000;

TensorFloat kvCache;
TensorInt offset;

void Start()
{
    ~~~~~~~~~~~~~~~~~~~~~~~
    int kvCacheFixed = 451; // whisper-exportで固定された数値.
    int beamSize = 1; // 推論探索深さ.
    int modelSize = 384; // whisperモデルごとの数値,ここではtiny用.
    kvCache = TensorFloat.Zeros(new TensorShape(8, beamSize, kvCacheFixed, modelSize));
    offset = new TensorInt(new TensorShape(1), new int[] { 0 });
}
void Update()
{
    if (transcribe && currentToken < outputTokens.Length - 1)
    {
        using var tokensSoFar = new TensorInt(new TensorShape(1, outputTokens.Length), outputTokens);
        var inputs = new Dictionary<string, Tensor>
        {
            {"audio_features",encodedAudio },
            {"tokens" , tokensSoFar },
            {"offset", offset},
            {"kv_cache", kvCache }
        };
        decoderEngine.Execute(inputs);

これで手元で出力したwhisperのAIモデルを使用する準備が整ったので、Unityをプレイします。

手元で生成したAIモデルを使用してSpeechToText

ログに出力される結果はサンプルとまったく同じです。

ここで、音声の長さを15秒としたことが正しく反映できているかは以下のログを出力すると確認できます。

Debug.Log($"encodedAudio: {encodedAudio.shape}");

このとき出力されるのは音声がエンコードされた後のテンソルの形状です。30秒のとき、15秒のときでそれぞれログは以下のようになります。

# 30秒のとき
encodedAudio: (1, 1500, 384)
# 15秒のとき
encodedAudio: (1, 750, 384)

これで手元で出力したAIモデルが利用できていることを確認できました。

音声で操作するミニゲーム

それではSpeechToTextを利用したミニゲームを作ってみましょう。

まずは音声を認識せずに、キーボードで動かす簡素なゲームを作ります。

出来上がったものがこちら

色のついた箱を指定の位置へ運ぶ

キーボードでユニットを操作し箱を指定の位置まで移動させます。画面中央にはその時ユニットに与えられた命令を表示しています。現状はキーボードからこの命令を与えていますが、ここに音声認識を組み込んでいきましょう。

音声をリアルタイムに処理する機構

これまでのサンプルでSpeechToTextする際の音声データはwavファイルになっていました。「音声で操作」するためにはマイクからの入力をリアルタイムに変換していく必要があります。この機構を作りましょう。

まず、Unityでデバイスのマイクを利用するには以下のように記述します。モバイル端末ではマイクの利用許可ダイアログの表示が必要ですが、現在Macで動作させているのでこれだけの処理でマイクを利用できます。

if (Microphone.devices.Length == 0)
{
    Debug.Log("microphone not found");
    return;
}
microphoneName = Microphone.devices[0];
Debug.Log("find microphone : " + microphoneName);
audioClip = Microphone.Start(deviceName: microphoneName, loop: true, lengthSec: audioSecondLength, frequency: audioFrequency);

このコードによってaudioClipからはマイクから入力された音声がそのままAudioClipとして参照できるので、以下のようなコードでそのデータを取得できます。

// AudioClipの現在の位置.
int position = Microphone.GetPosition(microphoneName);
if (position < 0 || position == prevSamplePosition) return;
// 全データをバッファに取得.
audioClip.GetData(dataBuffer, 0);
// 前回確認した位置と現在の位置を比較.
if (position < prevSamplePosition)
{
    // 前回の位置のほうが大きい場合はループを挟んでいるのでループを考慮してdataに格納.
    data = new float[position + (audioFrequency * audioSecondLength - prevSamplePosition)];
    Array.Copy(dataBuffer, prevSamplePosition, data, 0, audioFrequency * audioSecondLength - prevSamplePosition);
    Array.Copy(dataBuffer, 0, data, audioFrequency * audioSecondLength - prevSamplePosition, position);
}
else
{
    // 現在の位置のほうが大きいので進んだ分をdataに格納.
    data = new float[position - prevSamplePosition];
    Array.Copy(dataBuffer, prevSamplePosition, data, 0, position - prevSamplePosition);
}
prevSamplePosition = position;
// 音声がしきい値を超えているか確認.
bool isVoice = false;
for (int i = 0; i < data.Length; i++)
{
    if (Mathf.Abs(data[i]) > audioThreshold)
    {
        isVoice = true;
        break;
    }
}
// データ点の内1つでもしきい値を超えていれば音声データとして扱う.
if (isVoice)
{
    var bf = processData;
    processData = new float[bf.Length + data.Length];
    Array.Copy(bf, 0, processData, 0, bf.Length);
    Array.Copy(data, 0, processData, bf.Length, data.Length);
}
else
{
    // しきい値を超えなかったので無音と判断.
    processData = new float[0];
}

このときのAudioClipはループがONになっているので、指定の秒数を過ぎると0に戻って音声が上書きされるような動作をします。そのため、前回確認した音声の位置と現在の位置が逆転している場合にはループを挟んでいるのでそれを考慮してデータを取得しなければいけません。また、すべての音声を常にSpeechToText処理をするのも無駄なので、取得したデータがしきい値を超えているかどうかで無音の判定をする必要があります。

こうして取得した音声データをWhisperエンコーダー・デコーダーで処理することで、リアルタイムにSpeechToTextを行うことができます。その様子を録画しました。左上の白い囲いの中に、現在マイクから入力されている音声をリアルタイムにテキスト変換して表示しています。言葉が止まると途中で[BLANK_AUDIO]が認識されてしまいますが、概ね正常に変換されているようです。We'll sail ~~の部分は始めにI'll say will youなどと認識されていますが、これは認識中の音声データが短すぎるために正確な推測ができていないためで、続きの音声が順に認識され始めると一気に正確な推測ができています。

Today is the best day of my life. So I'm going to explore the world with my rabbits. We'll sail, we'll ride through the wilderness, we'll climb mountains, and we'll leave this earth one day.
音声をリアルタイムにテキストへ変換する

以上、無事に喋った言葉がテキストに変換されました。これだけでもオンラインマルチプレイなどで文字起こし機能として利用できそうですね。

変換されたテキストをコマンドとしてユニットを動かす

音声から変換されたテキストにユニットの操作コマンドが含まれていたとき、その動作を実行するようにしました。同時に変換されたテキストは右下に表示しています。これによって、音声でユニットを操作することができるようになりました。

音声から変換されたテキストでユニットを操作する

まず反省点として、とんでもなく難しいです。音声がテキストに変換されるまで1秒ほどかかってしまうので、その間にユニットは動き続けてしまい、操作しようにも間に合っていませんでした。また、ユニットを操作するコマンドが一つの単語なので、短い音声を正確に推論できないという点がネックになり、結果として短文で話しかけなければなりませんでした。声で操作するという趣旨としてはミニゲームの選定に失敗しました。

しかしながら入力した音声をリアルタイムにテキスト変換できるということは、ゲームで幅広く活用できるのではないでしょうか。大きな可能性を秘めているように感じます。

まとめ

今回はUnitySentisに触れるという目的で、まずWhisperのサンプルを動作させてそのコードをある程度理解しました。さらにwhisper-exportを利用してSentisで使用するWhisperのonnxを出力できるようになりました。このとき音声の長さを半分の15秒に変更できました。ここから音声をコマンドとしたミニゲームを作成し、マイクからの入力を常にSpeechToText変換することでゲーム内のユニットを操作できるようになりました。

このプロジェクトだけでもUnitySentisを利用することでAIモデルを気軽に扱えることが理解できるのではないでしょうか。ゲームからAIを利用する際にネットワークインフラに依存しないという点は強力だと思います。夢が広がりますね。

【生成AI】のゲーム開発への活用事例紹介

0

~ 式姫プロジェクト最新作【カクリヨ・トーキョー】の現場より ~

▼【生成AI】への取り組み

【生成AI】近年耳にしないことがないほどの単語ですので、
 ご存じの方も多いのではないでしょうか。

ChatGPTを始めとする多数のAI技術が革新した昨今
株式会社アピリッツ(以下アピリッツ)でも、
【生成AI】の活用について全社的に取り組んでいます。

この記事中におきましては、
アピリッツのゲーム開発及び運営にかかわる部門より
最新作【カクリヨ・トーキョー】を研究開発している式姫プロジェクトでの
生成AI技術(以下AI)への取り組み方の一部をご紹介します。

こんにちは~。広報担当の山田アイコです。
今回は、フィールドゲーム・テクノロジー学部で開発中の
式姫プロジェクト最新作【カクリヨ・トーキョー】
のチームにお邪魔しています!

【生成AI】って最近のトレンドですよね~。
名称はよく聞くのですが、私もまだよく解っていない所が多いと思いますので
式姫プロジェクトチームのみなさんに、【生成AI】について色々とお話を伺わせてください。

現在鋭意開発中のプロジェクトとなるため
リリース前にお伝えできる情報が限定的になってしまい、
物足りない点があるかもしれませんが頑張ります!

▼【生成AI】とは?

古今東西、人々はゲーム開発に限らず、ものづくりという分野で
【文章を書く】【絵を描く】【音楽を奏でる】【動画を撮影する】など
頭で考えて、手を動かし、匠ともいえる芸術的なコンテンツをこの世界に生み出してきています。

本や絵画、音楽に映画、そしてゲームにおいて名作と呼ばれるコンテンツが多々ありますよね。

コンピューターなどの道具は、あくまで人間が使う道具の延長線上での進化を遂げて
コンテンツ制作の速度や生産性や品質の向上に一役買っていたわけです。

最近の映画やゲームの映像で、現実と間違えてしまいそうなくらいクォリティ高いなと感じることあります!

そこへ【生成AI】は、各コンテンツのパターンや関係を大量に学習することで
道具の領域を超えて、人間の役割の一部をこなすことが期待できる
新たな技術のひとつとして登場
したものとなります。

なるほど~
だから全世界がこれほど【生成AI】に色めきだっている訳ですかぁ。

プロジェクト内での活用法を想定

さて【カクリヨ・トーキョー】はスマートフォン用のゲームとして開発を進めています。
AIを使ってゲームを開発するというと、
【自動で様々なコンテンツが制作される夢のような開発環境
を想像される所があるかと思いますが

【生成AI】は、まだまだ新しい技術なので、
「私達のゲームプロジェクトに活用するためにはどうする?」
からチーム内で考えることとなりました。

素晴らしい道具や機能も使いこなせなければ宝の持ち腐れとなってしまうからです。

たしかに最新のスマホ機能ですら、『まだまだ、私使いこなせていないなあ』と思うときありますもんね~。

そこで『式姫プロジェクト』では、

①AIでできることの調査
②各セクション内のタスク・工程を洗い出す
③洗い出した中からAIでできることと、タスクの中でマッチするものを検討
④マッチした内容でAIを使い、効率化できる箇所を想定
⑤手順化
⑥量産

までを考慮して着手しました。

セクションごとの取り組み

生成AIを役立てることができそうな項目の精査を行ったあと
現在『式姫プロジェクト』チーム内では

・2Dイラストセクション
・シナリオセクション
・3Dキャラセクション

の3つのセクションでAI技術への取り組みを進めています。

それでは各セクションの担当者にお話を伺ってみようと思います。

◾️2Dイラストセクション

- ゲーム中に表示されるスチル画像やアイテムの画像を描くセクション -

※開発中のイメージ画像です。今後ゲーム中で採用される場合がありますので、少しモザイクとなります。

2Dイラスト制作では、どのような制作項目でAIの導入を推進したのですか?

そうですね~
・アイコンラフ生成
・イメージ下絵生成
・イメージ背景生成
・アイテムスチル生成

という項目で
案出し/コンセプトパターン出し/イメージ素案/クォリティ合わせの標準化
の作業で生成AIをテストしていきました。

ゲームではたくさんの画像が使われていますもんね。
様々な絵のアイディアを出すだけでも大変な作業ですよね!

多数のポーズ案/背景イラストの構図案等を
短時間で目に見える形にする点で【生成AI】のレスポンスの良さが活かせると考えました。
それらの画像案は、そのままゲーム内で使用するのではなく
多数のアイディアを必要とする場面での効率化の為に使用しています。

なるほど。
絵のクォリティをさらにあげていく為に、
人の手をかける時間が式姫プロジェクトでは必須と考えられるので
AIの得意とする【絵のバリエーションを短時間で数多く揃える】
ところに使用しているのですね。

『式姫プロジェクト』においては
 世界観やキャラ設定を、特に大切にしていますので
その整合性について必ず人の目で確認を行ってから
ユーザーの皆様にお届けしていきたいと考えて作業を行っています。

◾️シナリオセクション

- ゲーム内の世界観や物語を描くセクション -

※開発中のイメージ画像です。今後ゲーム中で採用される場合がありますので、少しモザイクとなります。

シナリオ制作では、どのような制作項目でAIの導入を推進したのですか?

・多面的なアイディア出し
という項目ですかね。

基本的に、物語の内容や考えこむ時間の短縮化に寄与しています。
生成AI】を活用することで
思ってもみなかったシナリオアイディアのパターンがアウトプットされる事もあり、
アイディアをひねり出す時間の短縮等に活用しています。

AIというと、ChatGPTを代表としてテキスト生成では一日の長があり
多分野で使われているイメージがあるかと思いますが
シナリオ制作活用時の課題として、プロンプトの精度を上げていく必要もあり
なかなかそのまま使用できるクォリティには届かない事も多かったです。
ですのであくまでアイディア出しへの使用にとどめている現状です。

なるほど。
シナリオは、考える、まとめる、確認する
を繰り返して物語の流れを構築していかないといけないので
気づきを得るトリガーにAIを有効活用しているのですね。

【生成AI】でたくさんアイディアが出てきたとしても
どのアイディアを選択/選別して、どのように使っていくのかという場面では
人間がキャラクターやゲームの世界観に対する思い入れと
熱意をもって創作していかないと
まだまだ胸を打つ文章をお届けするのは難しい
とあらためて感じました。

■3Dキャラクターセクション

- ゲーム内キャラクターの3Dモデルを描くセクション -

※開発中のイメージ画像です。今後ゲーム中で採用される場合がありますので、少しモザイクとなります。

3Dキャラクター制作では、どのような制作項目でAIの導入を推進したのですか?

各キャラクターの動きとなる【3Dモーション】を
ダンスムービー等から式姫用モーションデータとして

生成できるかをテストしています。

3次元のキャラクターの外見を制作することをモデリングといいます。
キャラクターの外見を制作しただけでは、キャラクターは動きません。
モーションと呼ばれるキャラクターの動きのデータを制作する必要があるのです。

有名な作り方としては、モーションキャプチャーという
実際に人間が動いて、そのリアルな動作をデータ化するという技術があります。

ただこの方法が頭を悩ませる点として
モーションを撮影するスタジオと専用の機材
その動きを再現するアクター(俳優)さん
が必須となり
様々な大きめのコスト(お金や時間、小道具の準備やアクターさんの選定等)
が発生してしまうんです。

その解消法の一つとして、
動画からのモーションデータ作成に【生成AI】を活用できればと考えました。

なるほど。
特に時間のかかる制作物の納期短縮方法を模索しているのですね。
だいたいの仕事って、時間の削減がコストの削減に直結してる場合が多いですもんね。

まだテストを開始した段階なのでどこまで導入できるかは、未知数な段階です。

▼まとめ

このように【生成AI】【カクリヨ・トーキョー】にもたらす恩恵は種々様々となりますが
プレイヤーの皆様に各キャラクター達の魅力を
最大限に引き出してお届けすべく開発を進めております。
アピリッツよりリリース予定の式姫プロジェクト
【カクリヨ・トーキョー】を楽しみにお待ちいただければと思います!

【生成AI】に関する取り組みのお話ありがとうございました。
私も可愛らしい式姫ちゃん達が大好きですので
式姫プロジェクト【カクリヨ・トーキョー】のリリースを
楽しみにしています!

2024年度 アピリッツ入社式、新しい54名を迎えました

0

2024年4月1日にアピリッツは入社式を行い、今年も54名と多くの新入社員をアピリッツへ迎えることができました。
今回はその様子をお伝えいたします!(2024年4月1日取材)

Welcome to Appirits!

アピリッツでは今年、54名という多くの仲間を迎えることができました!

入社式当日は、アピリッツ社員としても社会人としても1日目でもある新入社員たち。少し緊張している様子がうかがえました。取材班も当時の入社式での自分と照らし合わせて、懐かしい気持ちになりました(笑)

ちなみに、今回は多くの仲間を迎えるために大きい会場を渋谷で借りたそう。そんな気合十分な入社式に潜入してきました!

素敵な54名の新入社員のみなさん

入社式開始直前、新入社員以上に緊張していた運営陣。

入社式の司会進行を務める人事のお姉さんに心境を聞いてみると、「名簿を読み上げる時に嚙まないかめちゃめちゃ緊張してます。と同時に、新入社員のみんなと交流できるのが楽しみです。」と、緊張しながらも新たな仲間を迎える準備はばっちり!

社長や執行役員の皆さんも、新たに迎える仲間たちにエールを送るとともに、

「卒業おめでとう」「アピリッツに入ってくれてありがとう」

と、感謝と歓迎の言葉を投げかけていました。そんな社長や執行役員のみなさんのエールをいくつか紹介させていただきます!

社長の和田からは、「ストレスが絶えない社会人へようこそ」と、ユーモアを交えた歓迎の言葉から始まり、

アピリッツ取締役社長 和田 順児

「一つひとつの物事に対してなぜ必要なのかを自分の頭でしっかりと考え、徹底して行動を心がけることが重要です。そして、こうした行動ができる人材の中から新たなリーダーが生まれてくると考えています。」と、新入社員に向けて激励の言葉を送りました。

執行役員 八木 広道

「ぜひ同期に今考えている事を聞いて、なぜなんだというのを掘り下げていきましょう。すると、自分がある物事に出くわしたときにどういう掘り下げができるのか、引き出しが増えていきます。そうなると、少なくとも人生が豊かになるんじゃないかなと思います。」

取締役 執行役員CFO 永山 亨

「今、自由な社会だからこそ何事もよく考えて自分で決める。自分のために多くの事を吸収して自分が決めれる材料を集めましょう。そして、最終的には自分の後悔しない選択ができれば一番いいかな」

名前を呼ばれて元気に挨拶をする新入社員たち

アピリッツに来た54名のフレッシュな新入社員たち。まだ緊張と社会人生活に対する不安があると思います。

これから研修や案件など多くの経験を経て成長していく彼らから目が離せません!


アピリッツではまだまだ新たな仲間を募集しています。

たくさんのご応募お待ちしています!

Unity SentisとML-Agentsを試してみた

0

はじめに

おうさぎ様との同居生活が三年目に入りました。ゲームデザイン(GD)部クライアントエンジニアの中村です。

最近AIが流行っているらしいので、Unity使いとしても何らかAIを取り入れていかなければと思っていました。そんなときにUnity Sentisがオープンベータになったという記事を見かけたので、せっかくだからML-Agentsと併せて触ってみようと思った次第です。

Unity Sentis

ONNX ファイル形式でインポートされた AI モデルは、Unity がサポートするすべてのプラットフォームで直接実行することができます。つまり、クラウドインフラストラクチャを必要とせず、直接ユーザーデバイス上の Unity ランタイムで、大半の AI モデルを実行できます。

https://blog.unity.com/ja/games/create-next-gen-ai-models-with-unity-sentis

なんとモバイル端末でもAIモデルを利用した推論が可能となります。githubにサンプルが公開されていますが、ニューラルネットワークによってオセロを学習したAIとの対戦や、MNISTによる手書き文字認識を行うことができます。その他にも、AIモデルを用意すれば音声認識やText-To-Speech、物体認識も可能であり、Hugging Faceなどで公開されているモデルも動作させることができます。

Unity ML-Agents

Unity Machine Learning Agents(ML-Agents)なら、創発的挙動を「コーディング」することなく、代わりに深層強化学習と模倣学習の組み合わせを通じて「学習」するよう、知的エージェントに教育できます。

https://unity.com/ja/products/machine-learning-agents

Sentisで公開されていたサンプルのような「ターン制ボードゲーム」「手書き文字認識」などの学習データが容易に用意できるゲームでは、知識があれば独自AIモデルを作成することも難しくありません。しかし、対戦格闘ゲームやシューティングゲームなどのアクション要素が強いゲームでは学習データの用意が難しくなります。

ML-Agentsではこれら学習対象となる「エージェント」をもとにしたAIモデルの作成をサポートします。こちらもgithubにサンプルが公開されています。

SentisとML-Agentsの関係

SentisはAIモデルを読み込み、推論に必要なパラメータを与えるとその結果を返すという仕組みになっています。

ML-AgentsはSentisを介してAIモデルによる推論を行いエージェント(GameObject)の行動を決定します。

この2つの関係性は、個人的な理解ですが以下のようになっていると思っています。Sentis単体で動作することはできるが、ML-Agentsはその内部でSentisに依存していることになるでしょう。

Unity内でのML-AgentsとSentisの関係

ML-Agentsサンプルを動かす

さっそくサンプルに触れていきます。

搭載されたAIモデルを利用する

まずダウンロードしたサンプルの中にあるUnityプロジェクトから「3DBall」を開きます。今回はUnity2022.3.19で動作しています。

プレイすると、青い箱が頭にボールを乗せて落とさないようにしている様子を見ることができます。青い箱1つ1つがエージェントであり、その姿勢とボールの速度からボールを落とさないように学習されたAIモデルを搭載しています。健気で可愛いですね。

ML-Agentsによってボールを落とすことができなくなった青い箱たち

これはサンプルに含まれる学習済みのAIモデルをそのまま利用しています。それではAIモデルの生成も行ってみましょう。

AIモデルを生成する

ML-Agentsのサンプルプロジェクトには学習モデルを生成するためのPythonコードも含まれています。

今回はM1Macで行った影響か、Pythonやパッケージのバージョンにかなり縛りがありました。まず、なぜかPython3.10.12でなければ動作しませんでした。さらにReadMeにあるインストールコマンドもそのままではエラーが出るため、issuesに記載された暫定対策を行って環境を整備しました。

基本的にはPython3を用意し、以下のコマンドを実行するだけで準備ができます。ml-agentsのPythonパッケージをインストールするのでvenvの使用を推奨します。

$ pip install ./ml-agents-envs 
$ pip install ./ml-agents 

環境が整ったら以下のコマンドでml-agents(Pythonのほう)を起動します。

$ mlagents-learn config/ppo/3DBall.yaml --run-id=first3DBallRun_mine

すると、以下のようにUnityからの接続を待つ待機状態となります。

 Version information:
  ml-agents: 1.0.0,
  ml-agents-envs: 1.0.0,
  Communicator API: 1.5.0,
  PyTorch: 2.2.1 training by pressing the Play button in the Unity Editor.

この状態でUnityからプレイすると、自動的に学習モードに入ることができ、青い箱たちがひたすらボールの位置と自分の姿勢を計算・学習し続けます。最初はただボールを落とすだけですが、3,4分すると徐々にボールを落とさなくなっていく様子を見ることができます。

はじめのうちは何も知らずにボールを落とす青い箱たち
4分経過するとボールを落としてはいけないと理解する

学習が終了すると Results ディレクトリにAIモデル(onnxファイル)が生成されます。このファイルをUnity内に移動し、Inspectorから割り当てます。

これだけの操作で自作したAIモデルをエージェントに搭載することができます。

学習内容を「落としたもの勝ち」に変更してみる

今回のエージェントの学習内容は、「ボールを頭に乗せている間ずっと報酬を得られる」「ボールを落としてしまうとマイナスの報酬が得られる」という仕組みになっています。そこで実験としてこの関係を逆転させてみようと思います。

Ball3DAgentの内容を以下のように変更しました。

if ((ball.transform.position.y - gameObject.transform.position.y) -2f ||
    Mathf.Abs(ball.transform.position.x - gameObject.transform.position.x) > 3f ||
    Mathf.Abs(ball.transform.position.z - gameObject.transform.position.z) > 3f)
{
    // 落としたらプラス報酬.
    SetReward(1f);
    //SetReward(-1f);
    EndEpisode();
}
else
{
    // 頭に乗せている間マイナス報酬.
    SetReward(-0.1f);
    //SetReward(0.1f);
}

早速学習させ、生成されたAIモデルを読み込んだ結果以下のようになりました。

頭の上にボールを乗せたくない

みんな頭の上にボールを乗せたくないので、とにかく傾けて落としています。

まとめ

Unity SentisとML-Agentsについて調査し、ML-Agentsのサンプルプロジェクトを少し動作させてみました。その中で独自のAIモデルを生成できるようになり、報酬の与え方を変更するだけで異なる特徴を持つAIモデルが生成できました。ML-Agentsは学習の対象、報酬の与え方がすべてUnity C#で記述されているため、Unity使いならばすぐに独自のAIモデルを生成できるのではないでしょうか。

今回はUnity Sentis自体に触れることなくAIモデルの動作が確認できてしまったので、いずれSentis単体での動作確認もやってみたいと思います。

エンジニア初心者に送る AI-STYLE THE ROAD OF ENGINEER

0

はじめに

AIエバンジェリストの浅田です。

AI、とくにディープラーニングなどの機械学習における学習プロセスは、人生で物事を上手に行うための心得に通じるものがあると感じます。

自分はアピリッツに中途でジョインして、この4月で丸10年となりますが、自分の過去を振り返った時に、これらの考え方を自分が初心者の頃に魂に刻んでおけば、今よりうまくエンジニア人生を送れていたと思います。そこで、AIの学習処理の概要について軽く触れつつ、自戒の念を込めてそれらについて書いてみたいと思います。

機械学習の学習プロセスの概要

まず、ディープラーニングの機械学習における学習プロセスを簡単に書くと以下のようになります。

  1. 達成すべき「指標」を決める
  2. 現在の「状態」と達成すべき「指標」との「差分」を確認する
  3. 「差分」を改善するための「計画」を考える
  4. 「計画」にしたがって「実行」する
  5. 指標を達成するまで繰り返す

端的に言ってしまえばPDCAを回すという当たり前のような話なわけですが、これを徹底的に行っていることが、AIが価値を発揮していることにつながっているわけです。AIは様々なタスクをこなせるようになっていますが、やっていることの原理はシンプルですね。

では、それぞれの項目からどんな知見が引き出せるか見ていきましょう。

達成すべき「指標」を決める

機械学習の文脈で言えば、学習に使用するデータの用意、解決すべき問題の定義、そして達成すべき精度の設定になります。最終的な成果を決める重要な部分です。

人生で言えば理想とする「あるべき姿」を思い描くといったところでしょうか。どんなエンジニアになりたいか、何をできるようになりたいか、何を達成したいのか、というビジョンが具体的であればあるほど、後続のプロセスが容易になります。

自戒的な意味合いで述べると、自分がエンジニアになろうと思った理由の一つに、当時見た映画「ソードフィッシュ」の主人公がかっこよかったからといったような、あまり具体的ではない動機がありました。あまり明確なエンジニア像ではなかったので、当然目指すべき方向性はあやふやでした。

とはいえ、自分のケースは極端だとしても、論語に「五十にして天命を知る」という言葉があるように、最初から明確にあるべき姿を規定するのはかなり難しい部分でもあるかと思います。それにフィクションであれノンフィクションであれ、憧れは強い原動力になるかと思います。

現在の「状態」と達成すべき「指標」との「差分」を確認する

機械学習の文脈で言えば、「損失関数」の設定にあたります。損失関数とはAIの予測がどれぐらい外れているのかを評価するための仕組みです。関数というとイメージしにくいかと思いますが、要は計算可能な数学的表現ということです。この関数が弾き出す数値を小さくしていくことが、学習の目的になります。

人生で言えば理想とする姿と現在の状態との差分についての状況分析(自己分析)ということになるでしょう。まずは「自分に何ができていなくて、何をできるようになる必要があるか」を正確に認識することが重要になります。これができれば、努力した結果ちゃんと目標に近づけているのかどうかをチェックできるようになります。

「差分」を改善するための「計画」を考える

機械学習の文脈で言えば、「最適化関数」の設定にあたります。最適化関数とは、前段の損失関数によって認識できた損失(つまり、理想の状態との差分)を小さくしていくためのアルゴリズム(計算手順)です。

人生で言えば「今の自分と理想の自分との差分をどう埋めていくか」を考えていくことにあたるかと思います。この方向性を誤ると、間違った方向に努力してしまうか、非効率的な努力をしてしまうことになります。

個人的な話ですが、何かを始めようとした時に、体系的な学習を済ましてから取り掛かろうとする癖があります。これは悪癖だと思います。体系的な学習をすること自体は重要です。ただ、体系的な学習を済ましてから取り掛かろうとするのはかなり非効率的です。体系的な学習が済んだと判断するのは難しいですし、時間的なオーバーヘッドも大きいです。概要部分をざっと掴むことを優先し、あとは実践を通して学ぶというのが一番効率がいいように思います。要は「習うより慣れろ」ということですね。そして体系的な学習も並行して行うのがベストかと思います。

「計画」にしたがって「実行」する

機械学習の文脈で言えば、最適化関数のアルゴリズムに従って、新しい方法(パラメータ)で予測を実行してみるということになります。最適化関数の選択が適切であれば、損失関数の結果(つまり、現在の状態と理想の状態との差分)は前回より改善される可能性が高くなります。「可能性が高くなる」と書いたのは、実際には複雑な条件が絡み合ってくるので計算通りに改善されないケースもあります。ただ、その結果によって次の最適化関数で改善する指針を得ることができます。

人生で言えば、実際にアクションを起こすターンになります。ここまでのプロセスは頭の中での計算でしかないので、実際にやってみると思った通りにいかないということもあるでしょう。面白そうだと思っていたことが実際にやってみるとそうでもなかったり、あるいはその逆に、興味をもてなさそうなことが実際にやってみると面白かったりすることもあります。いずれにしても、貴重なフィードバックを得ることができます。

自分が就活生だったころはインターン制度は今ほど一般的ではありませんでした。最近はインターンで業務の一旦を経験できるので、非常にメリットのあることだと感じます。

指標を達成するまで繰り返す

機械学習では、状況の変更(最適化関数によるパラメータの更新)と状況の評価(損失関数による損失の計算)を、目的の指標を達成するまで繰り返します。機械学習においては、一回のサイクル(エポックなどと表現されることもあります)で目標を達成できることはまずありません。数十、数百回の試行を繰り返すことになります。

目指すべき姿が明確で、それを達成する適切な方法がわかれば、あとはそれを最後までやり遂げるだけです。ただ、人間の場合、この「最後までやり遂げる」というのが一番難しいのではないでしょうか。機械学習の場合、まさに機械的に繰り返すことができますが、人間はそう単純ではないと思います。成果をなかなか感じられなければやる気も減退します。なので、モチベーションを保つ方法を見つけることが重要になります。

モチベーションがどこからくるかは人それぞれだと思いますが、個人的には「楽しさ」から来るものが一番強いと思います。「好きこそものの上手なれ」というやつですね。至言だと思います。

自分の場合は本屋さんの技術書のコーナーで新しい技術の本がたくさん並んでいるのを見ると、言葉では言い表せない「ときめき」のようなものを感じます。新しいものを「学ぶ・知る」ということが好きなのだと思います。そういう気持ちを忘れないでいたいものです。

失敗することも必要

こんな話があります。

10個の画像があります。そのうち9個は「りんご」の画像で、1個が「みかん」の画像です。これらの画像をランダムに見せられた時に90パーセントの精度で「りんご」を検出する仕組みを作る一番簡単な方法はなんだと思いますか?

答えは「常に『りんご』だと判定するようにする」です。

これはAIの世界でいうところの「データによるバイアス」の典型例です。良くも悪くもAIはデータから学習してしまうので、何も考えずに上記のデータから学習させると、高確率で「りんご」と答えてしまうAIになります。なので、AIの学習に使うデータはなるべく偏りがないようにすることが重要なのです。データが50:50の状態で90パーセントの精度を目指すために学習すると、「りんご」と「みかん」を区別するために本質的な特徴を捉えるようになり、結果的によりロバスト(堅牢)なAIになります。

AIが学習するのはデータですが、人間が学習するのは経験です。先ほどの例になぞらえるなら、うまくいった事例しか経験してなければ、なぜうまくいったのかを本質的に認識することは難しくなります。なので、成功体験も重要ですが失敗するということも同じように重要だと思います。大抵の失敗はリカバリーが効きますし、長い目でみれば成功確率も上げることになると思います。

おわりに

変化の激しい時代です。Webアプリケーションを構成する流行りの技術スタックも数年単位でガラっと変わってしまいます。生成AIの登場によって、さらに変化は加速しようとしています。そんな中で理想とする「あるべき姿」が変わっていくことも当然あるかと思います。「リスキリング」という言葉もよく聞きますし、むしろ変化していくことが普通の世の中になっていくのかも知れません。

私自身も元々アピリッツに転職する時には「Webエンジニアになりたい」という思いで転職してきましたが、この10年でWebエンジニア、クラウドエンジニア、AIエンジニア、と目指すべきエンジニア像が変化してきましたし、今後もまた変化していく可能性はあります。いずれにしても、変化を厭わず、学び続けることが重要なのだろうと思います。

なお、アピリッツは様々な職種のポストがありますし、今までなかった職種やポストが新設されたりもしてもいます。そんな環境なので「あるべき姿」が変わっていったとしても、受け入れられる懐の深さがあるのも魅力の一つかと思います。

【IPA資格】エンジニアじゃなくても情報処理技術者試験って役立つの?

0

こんにちは!
新卒1年目のWebコンサルタントをしている石川です。

普段は、クライアントさんの持つWebサイトの運用や改善の提案をしています。

みなさんは「IPA情報処理技術者試験」というものをご存じでしょうか?

ちょっと堅苦しい名前ですが、
「ITパスポート」「基本情報技術者」という名前だったら聞き覚えがあるかもしれません。

IPA試験とは、ITに関する知識を幅広く身に付けられる試験として
ITを利活用する組織で幅広く認知・活用されている資格です。

エンジニアさんであれば「基本情報技術者」よりさらに上の「応用情報技術者」や、さらにその上の「高度情報処理技術者試験」などを取得しているイメージがありますね。
(そもそもIPA試験は「ITエンジニアの不足」という背景のもと生まれているらしいです)

しかしエンジニアに限らずコンサルタントやデザイナーなど
どの職種にとっても非常に役立つ資格だということをご存じでしょうか…?

今回は、コンサル1年目でIPA試験の基本情報技術者を取得した私が、
実体験をもとにこの資格がなぜ様々な職種にも役立つのかをお伝えしていこうと思います。

エンジニアはもちろん、コンサルやデザイナー、IT業界を志している学生さんなど
ITに関わる全ての人にちょっとでも「この資格、挑戦してみようかな?」と思っていただけたら幸いです…!


どうしてエンジニアじゃなくてもとるべきなの?

そもそもこの資格・・・

「名前は知ってるけど、どういう問題が出るの?」といった
資格の中身がよく分からないという人が多いのではないでしょうか?

「ITパスポート」や「なんちゃら技術者」なんて名前を聞くと
「難しいコードの話」とか「電子的なデータの情報がうんたら」とか、うっかりしていると

ムーディー勝山状態(右から左へ情報が流れている状態)になってしまう問題が出てきそうですが、実際にそこまで難しいことが問われることはほぼありません。

(※試験の種類にもよりますが)

では、どんな問題が問われるのか?
どうしてエンジニアじゃなくても役に立つ資格なのか?

その答えは、ITパスポートで問われる3つの分野を見れば一目瞭然です。

※下部のメリットはコンサル基準で記載しています。

これを見て分かる通り、エンジニア寄りの知識以外にも
た~~~っくさんの分野から問題が出題されることが分かると思います。

「プロマネ」や「サービスマネジメント」、「経営戦略」なんかはコンサルの業務にダイレクトに影響してくる範囲ですし、「HTML」や「Webデザイン(UI)」などのデザイナーに関する知識も豊富に出題されていますね。

まさにITに関することなら何でも学べる
「大ボリュームITお勉強パック」と言っても過言ではありません。

コンサルの人がITパスポートを勉強した場合・・・

  1. エンジニアサイドの知識を新たに吸収しながら(テクノロジ系)
  2. 自分の専門分野の知見をさらに深めることができ(マネジメント系)
  3. 社会人としての常識(法律や簿記)も学ぶことができる(ストラテジ系)

といったメリットだらけの資格になっています!

勉強するしかないですよね…?

もちろんコンサルに限った話ではなく、エンジニアやデザイナーなど、どの職種の人でも
「必ず専門外の分野が出題される」という点がこの資格の面白いところだと私は思います。

でもこんなにいっぱいの分野、勉強しきれないよ!

色んな分野を網羅的に学べる反面、学ぶ範囲も広く、学ぶ量も多くなってしまうという部分がこの資格の難点です。

しかし、裏を返せば
分野が多いということは「それぞれの分野の出題数が少ない」とも言えませんか?

言ってしまえば「広く浅く」知識が身につけられる資格です!

プログラミングやネットワーク、データベースなどの専門知識が色濃い分野は
手も付けられないような難しい問題が出題されそうなイメージですが、
実際に出題される問題の観点は「仕組みを理解しているか」「単語を知っているかどうか」であり、「実際にコードを書いてみろ!」とか「サーバ構築してみろや!」なんてことは言われません。

専門外の分野を丁度いい具合につまみ食いしながら、
業務で出てきたときにも、ある程度の話が分かるレベルに知識を得ることが出来るのです。

もちろん自分の専門的な分野に関しては、新たな知識を増やすことができるので
さらなるスキルアップも叶えることができますよ!

試験の内容は分かったけど、どのIPA資格を受ければいいの?

IPA資格ではITパスポートをスタート地点として、
【 ITパスポート ➡ 基本情報技術者 ➡ 応用情報技術者 】
と難易度が上がっていくのですが、問われる分野は基本的にすべて同じです。

難易度が上がるたびに変わるのは、問われる「深さ」です。

例えば…
ITパスポートだったら「この技術の名称はなに?」といった具合に留まりますが、
応用情報技術者であれば「この技術はどういう状況の時にどうやって使うの?」まで問われます。

「応用情報技術者」よりさらに上の資格では、ここまで網羅的に出題されていたIT知識を分解し、
より専門的な知識が問われる「高度情報技術者試験」というものが存在します。

マネジメント系をより深く学ぶ「プロジェクトマネージャ試験」や「ITサービスマネージャ試験」、テクノロジ系をより深く学ぶ「データベーススペシャリスト試験」や「ネットワークスペシャリスト試験」など9種類の専門分野が用意されています。

ー 自分はなんのプロフェッショナルになりたいのか?
ー どんな技術者になることが目標なのか?

それを考えていくことで「最終的な目標」「今受けるべきレベルの試験」が自然と決まっていくのではないでしょうか。

詳しくは、IPAが提示している下記の図が分かりやすいのでぜひ参考にしてみてください。

出典元:『独立行政法人情報処理推進機構(IPA) 情報処理技術者試験』(https://www.ipa.go.jp/shiken/kubun/list.html)

資格が仕事に活きた場面

最後に、私がコンサルとして日々業務を行う中で
「資格の勉強がこんなところに役立った!こんなところメリットを感じた!」という点を3つご紹介いたします。

1.先輩やお客さんが使っている言葉が分かる

先輩たちが業務の中で何気なく使っているIT用語や、クライアントさんとのMTG中に飛び交う単語を聞いていると「これITパスポートで出た単語だ!」と進研ゼミ状態になることがあります。

資格の勉強をしていない状態の私だったら分からなかったことも、単語の知識を身につけていたことで「こういう時に使われる言葉なのか!」というように、学んできた知識と実際に使われた場面との点と点が線になる瞬間がたくさんありました。

2.自分の発言に自信がつく

新卒はとにかく経験が足りていないので、
「これって間違ってるのかな?」と思ってもなかなか自信を持って発言できない場面があります。

そんなときにアピリッツの面接でコンサル職種の方に言われたこんな言葉を思い出します。

「仕事において「経験」と「知識」が自分を支えてくれることになるけど、「経験」はすぐに積めるものではないから、今はとにかく沢山勉強して「知識」をつけるといいよ」

この言葉通り経験がまだまだ足りない私にとって、自ら勉強した「知識」たちが自分の発言や仕事の考え方において、いつも後押しになってくれているなと感じます。

3.報奨金が貰える・給料が上がる

アピリッツには資格支援制度があるので、資格に合格することで報奨金がもらえたり、給料が上がったりします!

資格を勉強することで、

知識が身につくだけでなくお金も貰えるなんて願ったり叶ったりですよね:)
勉強を頑張る大きな理由になってます♪

アピリッツでは、IPA試験の他にも様々な資格手当が充実しています!
エンジニア向け資格からマーケター向け資格まで50種類以上の幅広い資格が用意されているので、モチベーションに繋がりますよ♪

「入社前に何を準備したらいいか分からない…」という学生さんがいたらぜひ挑戦してみて欲しいです!

最後に

今回は、私の実体験をもとにIPA資格についてご紹介させていただきました。
ここまで読んでくださりありがとうございます!

少しでも多くの方に、この資格の魅力が伝わっていたら嬉しいです。

私も引き続き勉強を頑張って、次は応用情報技術者への合格を目指します!
(勉強だけでなく経験もたくさん積んで、実力の伴った知識に変えていかなきゃなというのはもちろんですが…!!)

アピリッツはちっちゃなことでも褒めてくれる先輩が沢山いますし、
頑張れば頑張った分だけ認めてもらえる環境です。

アピリッツに少しでも興味を持った方、エントリーお待ちしております!

私の推し活とアピリッツ

0

推し。。それは、生活に欠かせない存在。尊くて、儚い、近いようで遠い存在。
今回はそんな「推し」を推すこと、「推し活」をしている社員をピックアップして推し活とワークライフについてインタビューしてきました!

あなたにとって推しとは。。

生活すべてのモチベーション。推しのために可愛く・綺麗にありたい、推しに恥じない人生を送っていきたい。

推し活プロフィール

推し活歴は?

推し活歴は10年。初めての『推し』は中学生のころ。
今の推しはとあるゲームキャラクターでショーレストランのパフォーマー。

『推し』になったきっかけは?

友人とアニメショップに行った際のこと。CDコーナーで何気なく友人と好きな顔を選んだ時に出会い、そこから忘れられなくなったのだそう。
ここまでお金をかけた推しは初めてだとか(笑)

今の『推し活』をおしえて!

主に、ゲーム、ライブなどの現場、グッズ。
グッズに至っては、痛バを作るために、推しの缶バッヂを100個くらい買うこともあるそう!

推し活とワークライフについて聞いてみた!

――推しがいるといないでは仕事にどんな影響をもたらすと思いますか?

私の場合はモチベーションにだいぶ差が出ると思います。
個人的にはデスク周りも、常に推しのアクスタなど、好きなものに囲まれていたほうがやる気も出ます!
あと、推しは仕事に不真面目であるより真面目な子に好感を持つと思うので、推しに笑顔でお疲れ様を言ってもらえるように真面目に取り組んでいます。また、推しのイベントに行くために、タスクを早め早めに終わらせるようにして、仕事も推し活も両立できるように調整しています。それこそ、アピリッツではフレックスタイム制を取り入れているので、うまく活用していますね!

――デスクまわりにはなにかこだわりがありますか?

そうですね。。好きなものであふれるとごちゃごちゃしがちでもあるので、100均などで売っているクリアケースを用いてなるべく綺麗にディスプレイするようにしていますね。
あとは、推しと目が合うように工夫して置いたりもしています(笑)

アピリッツでの推し活の実態とは。。!

推し活はコミュニケーションツール

――アピリッツには推しがいる社員が多いと感じますか?

ゲームセグメント所属のためか、私の周りはやはり何かしら推しがいる方がたくさんいらっしゃいます。ゲーム・アニメなど二次元コンテンツに限らずアイドルや動物、TRPGなど本当に多岐にわたっています!なので、全体的に推し活などに対して寛容な雰囲気があります。私が日報で推しについて書いてもみんな受け入れてくれていると思います。

ーー他の社員から日報にコメントなどもらったりしますか?

もらったりもしますね!何なら他の社員も推しの現場があることなどを自由に書いていることが多いです!また、私とは推しの界隈が違うことがほとんどなのですが、推しの現場あるあるだったりお互いの推しの好きなところを言い合ったりなど、それぞれの推しを通じたコミュニケーションも私の周りは盛んかなって思います。

推しへのファン感情を仕事に

――推し活とアピリッツでのワークライフバランスを取るうえで一番大切にしていること

やりたいことを我慢しないこと、だと思います。
仕事のために大切な推しを諦めるということはしたくないし、かといって自分の仕事にも手を抜けないので、どちらも全力で取り組むことが大切だと思います。
また、推し活をしている中で感じたファン感情などはゲーム運営でも大切になってくる観点なので、全力で楽しんでいれば趣味も仕事に活用できるようになります。

ーーファン感情が実際仕事に役立った場面はありましたか?

私が担当しているのがゲームのプロモーションということもあり、特にファンの方に寄り添う場面が多いと思います。その時に、自身のファン感情をもとに、ファンが欲しいコンテンツを意識しています。実際に、私が担当したコンテンツの反響をSNSでいただいた時はうれしかったです(笑)
また、入社してすぐに自身が担当するゲーム内で、「推しを作れ。」と言われたのを覚えています。それくらい、運営をするうえでファン感情は重要になると思います。

最後に。。

――あなたにとって推しとはどんな存在ですか?

「生活すべてにおいてのモチベーション」になってくれると思っています。
たとえば、仕事においても推しに課金したい・イベントに行きたいから頑張れるというのが大きな理由の一つでもあります。
推しに恥じない人生を持っていたい、という考えですべて行動できているため、推しのおかげで人間レベルがプラス10くらい上がっていると言っても過言では無いと思います。

推しへの愛が溢れまくってますね。。!

推しにひとことください!!

大人っぽくて鷹揚で、いつも理性的なところが大好きです!
常に私の一番星です。あなたの活躍をこれからも見守らさせてください!
応援してます!!大好きです!

――金澤さん、ご協力いただきありがとうございました!

アピリッツに少しでも興味をもった方!ぜひエントリーお待ちしています。

【アピリッツのお仕事紹介】今年2年目の営業さんにインタビュー

0

アピリッツの営業って一体どんなことをやっているの?
今回は営業としてご活躍されている土屋るりさんにインタビューをし、アピリッツの営業の魅力を聞いてきましたのでどうぞご覧ください。(2024年1月取材)

プロフィール

もともとはエンジニア志望でした

――アピリッツに入社した決め手は何ですか?
オープンな雰囲気と人が良かったので、アピリッツに入ろうと思いました。服装が自由なところも決め手になりました。


――その中で営業を選んだきっかけを教えてください
最初はエンジニアとして応募していました。何度か面接をする中で営業を勧められて、最終的に営業として採用されました。

アピリッツの窓口やってます!

――営業のお仕事は主にどのようなことをしていますか?

私が業務に携わっているソリューションパートナー部では、主に開発案件の営業活動を行っています。営業メンバーは4名のみですが、協力し合い業務を回しています。
基本的には、「こんなシステム・アプリを作りたい」というお客様からの依頼に窓口として対応し、エンジニアやプロジェクトマネージャーの方々と調整してご提案することがメイン業務です。その他にも、既に進行している案件の顧客対応や進行のフォローに入ったり、パートナー企業と打ち合わせをしたり、状況によっては新規顧客の開拓をすることもあります。

――入社してから関わった主な案件を教えてください

「パーソナルデータ活用システムの新規開発」や「SEO分析ツールのPoC開発」などに携わりました。詳しい名前は出せませんが、誰もが知っている会社さんの案件を受注できたので印象に残ってます。

これが私のルーティン!

――1日のスケジュール、仕事のルーティンを教えてください

10:00 出社

朝会 
予算に対する数字や営業状況の確認

事務作業 
打合せ以外の時間で提案書や契約書などの書類作成

お昼休憩
スタバでチル!
昼は外でぼーっとしたくてご飯よりスタバに行きます

お客様や社内での打ち合わせ 
お客様との打ち合わせでは事前に相手の企業のHPをみて、事業内容や売上比率などを調べるようにしています

19:00 退社

アピリッツの営業はスマート!

――アピリッツの営業の特徴を教えてください

「決まった商材を売る」のではなく「お客様の課題を聞いたうえで、弊社からはどういった価値を提供できるのか」というお客様の課題起点の営業なので、ご相談内容や提案の幅が広く、やりがいがあります。
部長層との距離が近く、若手でも目線の高い意見を直接聞くことが出来たり意見交換の場が多いので、個人的には日々学びが多いです。

――一般的な営業はずっと外にいるイメージがあるのですが、みなさんは社内で仕事をすることの方が多いですか?

たまに訪問することもありますが、ほとんどオンラインでの打合せが多いです。
一般的な営業と比べると、社内にいることの方が多いかもしれませんね(笑)

――オンラインでの打合せ、スマートですね!社外との打合せで心がけていることはありますか?

「販売」にならないようにすることを心がけています。相手の課題を聞き出して、どういった背景があってご依頼いただいてるのかを考えながら、相手に寄り添えるようにしていきたいと思っています。

営業メンバーは過保護な親?!

――営業チームの雰囲気を教えてください

人数が少ない分、コミュニケーションは盛んだと思います。
基本的に出社しているメンバーがほとんどなので、質問や詰まっている事があれば気軽に質問や相談できるので仕事が進めやすいです。

――私たちから見ても仲がよさそうですが、仲良しエピソードはありますか?

初めてお客さんから受注してもらえた時に、営業のみなさんが過保護な親のようにお祝いしてくれました。すごい大きい拍手が執務室内に鳴り響いていたので、恥ずかしかったですが嬉しかったです(笑)

日々学び、日々成長!難しいけど面白い!

――土屋さんがお仕事する中で、やりがいを感じる瞬間を教えてください

自分の担当した提案が通り、受注できた時は嬉しかったです。結果が出た時に先輩や上長に直接評価してもらえることもモチベーションに直結しています。
また、相談内容もお客様の業種業態も多種多様なので、日々新しい学びや知識と出会うため、難しい部分も沢山ありますがとても面白いです。

――直接評価してもらえるのは嬉しいですよね!最後に、今後の目標を教えてください!

自分が担当したお客様に、「また依頼したい」と思っていただき、アピリッツが大切にしている「ロイヤリティループ」に繋げていけるような仕事がしたいと思います。
また、お客様とエンジニアの方へよりスムーズな橋渡しができるよう、自分自身の知識ももっとアップデートしていきたいです。

――土屋さん、今回はご協力いただき本当にありがとうございました!

開発時の不安の要因がわかった話

0

今回は、アピリッツの知識共有サイト「ナレッジベース」で公開されている内容をアピスピでも紹介します。
エンジニアとして活躍されている桑添敏生さんの記事です。
是非最後まで読んでください!(初版:2023年2月2日)

経緯・問題点

これはES部だからとか運用・開発だからというのは全く関係なく、
業務をする中で「何このめちゃくちゃなソースコード」という感想を持った方は少なくないと思います。

どうしてソースコードがある程度可読性があって保守しやすい必要があるのか、
なぜ、ソースコードがめちゃくちゃだとネガティブな考えが増えていくのか、
正直経験の浅さやボキャブラリーの少なさから、今までうまく言語化できていませんでした。

もやもやしていることはわかるのに、原因が掴めないことで
さらに焦ったりイライラしたりしてしまうので、しっかり考えてみた過程です。

試したこと

一度内容を整理するために、ゲーム業界で働く友人達に愚痴混じりで、
「ソースがめちゃくちゃで対応コストが高い」的な内容を相談してみました。

友人達もみんな業務内で似たような経験があり、
「その場しのぎ」「悪循環」「開発が進むとモチベーションが下がる」といった、
切り取るとネガティブな言葉ながら楽しんでいる雰囲気もある不思議な反応だったので、
こんなに似たようなワードが出てくるなら、誰かが上手く言語化してまとめているのでは?と思い調べてみました。

問題の解決

いろいろ調べてみた結果、思っていたことを一番言語化できていたスライドをSpeaker Deckにて見つけました。

・技術的負債は開発者体験を悪化させる @mtx2s

引用元:https://speakerdeck.com/mtx2s/technical-debt-and-developer-experience

内容をいくつか引用すると、

Q. ユーザー体験と開発者体験はよく似た特徴を持っている。
そして優れた体験が得られなければどうなるのか?

どちらも最後は離反に至ってしまう、、、

Q. なぜ開発が進むとモチベーション(開発する気)が下がってしまうのか?

・スライド内にはこの様に書かれています。

「レガシーコード」という言葉を聞いて皆さんは何を思い浮かべるでしょうか。
 スパゲッティコードが原因で簡単なはずの機能追加で徹夜作業したことや、
 士気を喪失してしまったこと
チーム全員がコードにうんざりしてどうでもよくなってしまった感覚
 そのコードを改善しようと考える事すら嫌な気持ちになるかもしれません。
 そんな手間をかけるのは無駄に思えるからです。

しかし、

どんなにモチベーションが下がっても結局は真正面から向き合うしかない…
でも、問題点や性質をしっかりと押さえておけば工数の振り方次第で上手く付き合えるかも…?

その点を考慮してスライドを読み進めていくと、

Q. その負荷がかかるコードの特徴はどのような場合なのか?

スライドには以下の特徴が例として記載されていました。

つまり技術的負債が増え続ける開発現場では、
リファクタリング(開発者の負担軽減)を行わずに 振る舞いの価値(新規機能の開発)
優先させてしまっている。

おもむろに「立ち向かうしかない」とか「頑張れ」と言われるよりも具体的な問題が見えてきました。

しかし、開発の現場においては売上が出ないリファクタリングよりも、
新たに売上を生み出す新規開発が優先されるのは納得できます。

Q. なぜ売上(機能開発)優先だけを行うとマズいのか?

・スライドを引用すると、

答えとしては、
無理が積み重なって開発が止まってしまい、一時的な売上しか立たなくなってしまう からです。
そのため、最終的には全員がいい事なく終わってしまう事になります。

Q. さらにこのまま開発が進んだ場合に何が起きるの?

次に発生するのが開発者への負担となり、自分達が「悪循環」と呼んでいたものがこれに当たります。

最初に、
「無謀な開発」 が「技術的負債」を増加させて、
「技術的負債」「開発速度」を低下させて、
「開発速度」「無謀な開発」を頻発させるループが起きます。

さらに上のループがしばらく続くと、
「無謀な開発」「欠陥・障害」を増加させて、
「欠陥・障害」「開発速度」を低下させて、
「開発速度」「無謀な開発」を頻発させるループも起きます。

その結果、全員ボロボロに…

こういった流れが原因で、
最初の画像の通り現場のモチベーションが下がり続けるのだと把握することができました。

結論

ずっと自分が抱えていた要因は「リファクタリング」を軽視した、
基盤が不安定なまま行い続ける開発作業だという事が今回の件でわかりました。

ただ、エンジニア以外の職掌にリファクタリングの重要性や定期的に行う必要があることを伝えて、                          土台を構築するのはものすごく大変でコストが高いです。

しかし、人数は違えど全てのプロジェクトでこの部分を負担している人が必ずいるので、
まずは毎朝業務開始時に1関数を改修するなど、自分ができる範囲から
心理的、技術的な負担を軽減する手伝いをしてみようと思いました。

最後に

今回の話のオチとしては、 結局何を言っても自分自身が問題に向き合う必要がある事です。

スライドの最後の言葉として、

アーキテクチャを後回しにすると、システムの開発コストはますます高くなり、
システムの一部または全部が変更不能になるだろう。そのような状態が許されているなら、
ソフトウェア開発チームが自ら必要とするもののために懸命に闘わなかったという事だ。

案件や状況に文句を言いたくなる時もあるけど、一旦戦ってみようと思います。

____________________________________________

桑添さんありがとうございました!

アピリッツでは自分が得た情報や技術を積極的に共有し、それらを吸収しながら各々のスキルアップを目指しています。
アピリッツに少しでも興味を持った方、エントリーお待ちしております!

エントリーはこちらをチェック→〈https://recruit.appirits.com/

【2023新卒対談】入社の決め手は〇〇!?~就活から入社して約1年経つまで~

0

今回は2023年に新卒としてデジタルビジネス部に入社したWebエンジニアの2名に入社の理由や実際に入ってみてどうだったか、話を聞きました!(2024年1月取材)

――簡単に自己紹介をお願いします!

成田:デジタルビジネス部の成田侑希です。大学時代はデザイン工学の勉強をしていました。現在は新規開発案件のお仕事に携わっています。

佐藤:同じくデジタルビジネス部の佐藤大河と申します。大学時代は文系だったため経済学を学んでいました。成田くんと同じ新規開発案件を一緒にやっています。

アピリッツは自社で完結!フラットな雰囲気に惹かれて・・・

――お二人のアピリッツに入社した経緯や理由を教えてください!

成田:最初の就職活動時に、具体的な進路が見えずに、IT業界だけでなくゲーム業界などさまざまな選択肢を模索していました。実はアピリッツも元々ゲームエンジニア志望で選考に進んでいたんです・・・!

ただ、最終面接の際に社長の和田さんから今後のキャリアについての話やWeb側でも面白い案件があるという事を聞いて、Webのエンジニアとして入社することを決めました。

佐藤:僕は文系でしたが、大学の授業の中でプログラミングの授業があって、そこからIT業界に興味をもったことがキッカケです。その中でもアピリッツに決めた理由は、SES(システムエンジニアリングサービス)のようなクライアント先での常駐ではなく、自社で開発が可能な点や、柔軟で自由な雰囲気が特に魅力的に感じられたからです。

成田:僕も最終的な決め手はやっぱり社内見学で感じた社内の雰囲気です!多くの企業がオンラインでの選考を行う中、アピリッツは対面での面接も可能だったため、面接後に社内見学を実施していただきました。そこで実際に働く社員の雰囲気を感じることができ、アピリッツで働くイメージがつきました

社内見学では細部まで案内してもらいましたが、特に印象的だったのはキッチンスペースです。そこで「ここで社長が時々カレーを作るんですよ」と聞いて驚きました(笑)。社長が身近に感じられるようなアットホームな雰囲気が、魅力的でした。

佐藤:僕も服装が自由であったり、ソファースペースで社員さん同士が集まってミーティングしているのを見て、社員さんの雰囲気もいいな〜と思いました。

部署が変わった同期とも今でも仲良しとのこと!

想像した以上の経験ができた1年。

――実際入社してみて、どうでした??

成田:学生時代は社会人としての不安もありましたが、実際に働いてみると先輩方が優しく、分からないことがあれば聞ける環境でした。いきなり無理難題を押し付けられることもなく、困ったときはいつも誰かが手を差し伸べてくれる。そんなサポートがあるから、社会人生活は思ったよりも素晴らしいものだと感じました(笑)。

あと、内定者顔合わせ会で同期の雰囲気を知ることができたおかげで、実際に入社してからのギャップはあまり感じませんでした。また、入社後の新卒研修を通じて、実務のイメージを具体的に掴むことができました。同期との交流の場もあり、とても楽しい時間でした。(入社後の研修の記事はこちら)

佐藤:就活時に色々な企業を口コミサイトで検索した時、1年目の業務はテストや書類整理が中心だと思っていました。しかし、アピリッツに入社し、研修を終えて6月に本配属されると、1年目とはいえ、新規実装のタスクを担当させてもらったり、予想以上に多岐にわたる業務に関われる機会をいただき様々な経験ができました。

――どんなときに「働いていて楽しい」と感じますか?

成田:新しいことを任せてもらえたり、できることが増えて自分のスキルが成長していく過程が楽しいです!

佐藤:僕も同じで、入社した4月の頃はできなかったことが、今では自然とできるようになってきたことを実感すると、とても嬉しいですね。

後輩が安心して入社できるように次は僕たちが頑張ります!

――最後に今後の目標について教えてください!

成田:より幅広い知識を身につけることを目指しています。同時に、次に入社する後輩たちが頼りにできる先輩になりたいと考えています。

佐藤:僕も、4月に入ってくる後輩に自分が先輩からしてもらったように、困っていたら何か助けになれたり、分からない事を聞かれたら解決に導けるように頑張りたいです!

――お二人ともありがとうございました!

新卒採用サイトはこちら

【クリスタ】個人的役立ちTips

0

今回は、アピリッツの知識共有サイト「ナレッジベース」で公開されている内容をアピスピでも紹介します。
3Dデザイナーとして活躍されている杉山拓海さんの記事です。
是非最後まで読んでください!(初版:2023/12/19)

ES部の杉山です。
今回は、普段から自分が使っているペイントソフト「CLIP STUDIO PAINT(クリスタ)」について自分の中での役立ち機能などを少しまとめてみましたので参考にして頂ければと思います。
ちなみに、自分が使っているのは買い切りの「CLIP STUDIO PAINT Pro Ver.2.0」なので、別のバージョンを使っている方とは部分的に差異があるかもしれませんが、その辺はご了承ください。

■クイックアクセス

クイックアクセスはよく使う機能を登録して、一つのウィンドウ内にまとめておける便利機能です。
ショートカットは設定していないけど、よく使うものはここにまとめておくと都度タブを開いて探す手間が省けるのでおすすめです。

■レイヤー検索

レイヤー検索は、条件を指定することで対象のレイヤーやフォルダをピックアップ表示してくれる機能です。
細かくレイヤーを分ける人は特にですが、毎回編集対象のレイヤーを探すのに時間がかかるといったことも多いと思うので、そんなときはこれを利用すると早く見つけることができるかもしれません。

■レイヤー選択ツール

レイヤー選択ツールは、キャンパス上で指定した選択範囲内にあるレイヤーを自動で選択してくれる超便利ツールです。
デフォルトでショートカット[Ctrl+Shift+左ドラッグ]が設定されているので、いちいちツールを選択せず無意識で利用している人も少なくないかもしれません。

しかしながら、このツールは意図していないレイヤーまで選択してしまうことも多いため、個人的には一度サブツール詳細パレットから選択しないレイヤーを自分好みに設定しておくことをおすすめしたいです。

■複数レイヤーの一括塗りつぶし

普段塗りつぶしといえば、ショートカット[Alt+Del]で設定されている塗りつぶしバケツツールが一般的かもしれませんが、これらの場合複数レイヤーを対象として一括で塗りつぶしを行うことはできません。

しかし、クリスタには編集タブの中に「線の色を描画色に変更」という機能があり、これを使うことで複数レイヤーに対して一括で塗りつぶしを行うことが可能になっています。

■Altキーでのレイヤー複製

レイヤーの複製に関しては、専用の「レイヤーを複製」「コピー&ペースト」などいくつか手段がありますが、個人的には「Altを押しながら対象レイヤーをドラッグ」が一番使い勝手がいいと思っています。

理由としては、一番動作が手軽でしかも好きな階層に直接複製できるというのがメインですが、その他にも同じ手順でマスクだけ他レイヤーに複製できるというのも大きなポイントです。

■マスク操作のあれこれ

知っておくとちょっと便利なマスク関連の操作を簡単にまとめました。

■[Shift+マスク左クリック]でマスク有効/無効の切り替え

■[Alt+マスク左クリック]でマスク範囲の表示/非表示の切り替え

■環境設定でマスク表示の色と不透明度の設定が可能

■マスク範囲の反転は色調補正「階調の反転」で可能

■Altを押しながらマスク作成を行うと選択範囲外がマスク対象になる

■マスクに対してフィルタを適用することができる

■選択範囲の境界線非表示

キャンパス上で選択範囲を取った状態だと、その周囲に点線が表示されると思いますが、表示タブ内の「選択範囲の境界線」をクリックしてチェックを外すと点線が非表示になります。
特に色塗りをしているときは点線が邪魔に感じることも多いので、ショートカット登録しておくと便利な項目だと思います。

■定規ツールの複数同時利用

定規ツールは、設定するとそのガイドに従った線が引ける便利ツールです。
単体で使ことが多いこの機能ですが、実はフォルダでの階層構造を利用してそれぞれに定規を設定することで、複数定規の同時利用が可能です。

これを用いると、より複雑なパターンが簡単に作れるので、特に魔法陣紋章などを描きたい時にはおすすめの技法です。

■ノイズテクスチャの作り方

これはすでに知っている人も多いと思いますが、フィルターの「パーリンノイズ」を利用することで、簡単にノイズテクスチャの素材を作成することができます。
また、自分の場合はさらに上から虹のグラデーションマップを素材に適用して、色の幅もノイズに含ませるようにしています。

■色調補正レイヤー+レイヤー合成モード変更

トーンカーブやカラーバランスなど色調補正レイヤーを利用することは多いと思いますが、おそらく「通常」の状態で利用することがほとんどではないでしょうか?
しかし色調補正レイヤーに関しても「乗算」「スクリーン」といったように、合成モードを変更することは可能で、意図的にトーンカーブをめちゃくちゃな波形にしてから合成モードを変更すことで、色味のムラを付加するといった手法でも使うことができます。

自分の場合は、「彩度」「除算」「色相」「ソフトライト」「カラー」などの合成モードで色調補正レイヤーを使うことも多いです。

■ブラシのカーソル形状変更

ブラシのカーソルは、円形やブラシ素材の形をしていることがほとんどだと思いますが、環境設定から自分好みにブラシカーソルの形状をカスタマイズすることが可能です。

特に、細い線を引く場合カーソルが邪魔で描きにくいといったこともあると思うので、まだ触ったことがないという場合は、一度色々試してみるのもいいと思います。 自分も線画ブラシのカーソルを円形から三角形にしたら凄く描き心地が良くなったので。

■オートアクションへのショートカット設定

クリスタには自分が行った操作を記録して、ワンクリックで実行できるオートアクションという機能がありますが、これに対してもショートカットの割り当てが可能なのでよくやる操作をオートアクションに記録してショートカットを設定するだけで、作業効率が何倍にもなったりします。

「新規レイヤーを作成して下にクリッピング」や「選択範囲を切り取って別レイヤーに分割」など、手数としては多くない、何気ない動作でも何回も繰り返し行うものは特にやっておくと便利です。

■修飾キー設定のカスタマイズ

「spaceを押している間は手のひらツール」「Altを押している間はスポイトツール」など、一時的に修飾キーを押すことで別ツールに切り替わる仕様がデフォルトの状態でもされていると思いますが、これに関しても変更が可能になっています。

ネット上では、この機能に関しても「ショートカット」という単語で一括りにされがちなので、設定項目の存在を知らないという人も自分の周りには少なくないですが、これについてはファイルタブ内の「修飾キー設定」から自分が好きなように変更することができます。
非常に使い勝手がいい機能でもあるので、一度自分好みの設定を作っておくことをおすすめします。

■パターンタイルグリッド

クリスタの機能の一つにパターンのタイリング機能というものがありますが、これを上手く用いることで、絵を描くときの補助グリッドを簡単に作成するというテクニックがあります。
素材さえ用意してしまえば導入も簡単ですし、直感的に操作できるので使い勝手は良いです。

■天球グリッド

クリスタには3D機能が付いていて、3Dの素材を扱う際には背景などを表示するための天球が作成されます。
この手法は、その天球にグリッドの画像テクスチャを貼り付けることで、ぐるぐると動かすことができるグリッド空間を作るというもので、一度設定してしまえば以降の導入もドラッグ&ドロップだけです。

しかも素材に関しても、CLIP STUDIOの公式ページにすでにユーザーから無料提供されているものがあるので、それをダウンロードするだけです。

■ファイルオブジェクトで素材管理

ファイルオブジェクトは、別のファイルデータを参照する形で読み込んで、他の画像素材レイヤーと同じように扱えるといった機能です。

一番の魅力は、読み込んだデータが常に参照元と連動しており、元データを変更保存すれば合わせて読み込んだデータも更新されるという部分ですね。また、同じファイルオブジェクトを複製しても、参照元の更新自体はすべてに適用されるため、同じ形状の素材を一括管理したいという場合には特におすすめの機能です。

ただ、フォルダ移動などで参照元のデータがなくなってしまうと、場合によっては意図しない状態になる可能性もあるので、ファイルオブジェクトは最後必ずラスタライズかレイヤー変換で画像素材レイヤーしておくことをおすすめします。
また、ファイルオブジェクトのレイヤーがロック状態だと更新されないのでそこも注意が必要です。

 

アピリッツでは自分が得た情報や技術を積極的に共有し、それらを吸収しながら各々のスキルアップを目指しています。
アピリッツに少しでも興味を持った方、エントリーお待ちしております!

アピリッツは働く仲間を募集中! 採用ページはこちらです!

新卒のガッツリ飯はこれだ!vol.2

0

食べ物に目がないアピリッツ社員!でも東京の物価は高い!ましてやアピリッツのある明治神宮前・原宿エリアなんてめちゃめちゃ高い。。マジで高い。。
でもうまいものが食べたい。。

前回の「新卒のガッツリ飯はこれだ!」では、ラーメン、カフェ、定食屋、キッチンカーの4ジャンルが紹介されていましたが、今回はガッツリご飯、カフェ、テイクアウトの3ジャンルで紹介させていただきます!

そして第2弾では、23新卒の方々に3ジャンルそれぞれのおすすめとご飯に使う予算について聞いてきました。

ご協力いただきありがとうございました!

そしてこれらをもとに、我々食べ物大好きアピリッツスピリッツ編集部で実際に行ってきたところもあるので、そこも楽しみながら見てください!

ガッツリ飯編

ガッツリ飯と一概に言っても定食やパスタ、餃子やハンバーガーなど種類も様々。

そしてやはり新卒社員。お腹は人一倍空く。。だけどこのエリア、おしゃれなだけあって高い!!

そんなここ、明治神宮前・原宿エリアでどんなお店の、どんなご飯でお腹を満たしているのか。。

お店紹介!!の前に。

番外編

今回はお店紹介のほかにも、ごはん代(コンビニ等除く)の予算も聞いてきました。

やはり高くつくのか、はたまた安く抑えることができているのか・・結果はいかに!

全体的に1,000円以下が多く、比較的にリーズナブルにお腹を満たしているそう!

1. まさや 

このお店は私も大好きなのですが、新卒の皆さんからもやはり大人気。

なんといってもここは、ガッツリ!うまい!そして安い!!

個人的におすすめなのが、この唐揚げ定食(580円)のご飯大盛。

なんといってもこのお値段にこのボリューム。しかも味もめっちゃうまいんですよ。めっちゃ。

でもちょっとボリューミーすぎるな。。と思った方には、刺身定食や漬け丼なども1,000円ほどでいただけるのでかなりおすすめです!

場所は、京セラ原宿ビルを出て原宿方面に向かい、ラフォーレの角を曲がってすぐの「めしと酒」の提灯が目印。(地図下記参照)

お昼休憩に歩いて7分ほどで行けるのも良い!

2. T.G.I FRIDAYS

ここも、まさやに次いで大人気のお店、通称フライデーズ

フライデーズと聞くとアメリカンなご飯でお高いイメージが。。なんですが実は、ランチメニューがあるらしい!

1,000円ほどでクオリティーの高いアメリカンなランチを楽しむことができます。

この日は、鶏むね肉とシュリンプのソテーにピリ辛のトマトソースを合わせたパスタを注文。

お肉とエビがたっぷり入っているので、この一皿で大満足!

お味は思ったよりもさっぱりとしていて、女性でもペロリといけちゃいます!

お店の詳しいメニューなどはこちら

場所も徒歩6分。明治通りを原宿方面に歩き、少入ったところにあるのですぐ行けます!

カフェ編

ちょっと一息つきたい時やリモートワークなど様々な場面で活躍するのがこのカフェ。

スターバックス

もう最強の定番カフェ。値段もリーズナブルでドリンクもフードも種類が豊富。

新卒の方々に聞いても大多数がスタバと答えていました。(さすが)

しかも原宿・表参道・渋谷エリアにはなんと15店舗ほどあり、困ったときにすぐ入れるのが便利ですよね!

京セラ原宿ビルからは、信号わたってすぐ目の前に1店舗あり、私もよくテイクアウトでぱぱっとアイスティーとワッフルを買うことが多いです(笑)

中には、コーヒー片手に散歩して息抜きする社員も。(おしゃれ!スマート!)

テイクアウト編

ぱっと買えてさっと食べれる、スマートなアピリッツ社員にはぴったりなご飯。

でも、テイクアウトだと少し物足りなさそうなイメージもありますよね。。そんな中でアピリッツ新卒社員はどこでご飯を買っているのか!!

神宮前J6Frontビル村

テイクアウトの代表格といえばキッチンカー!

ここでは、日替わりで1週間キッチンカーが来るそうでその種類も様々。

オムライスからタコライス、焼きそばやロコモコなど1週間で食の世界旅行をしている気分にも!

1回1,000円でおいしい世界旅行できるならめちゃめちゃお得ですよね!

workstore tokyo do様ホームページより

新卒の方に圧倒的人気があったのは木曜日のロコモコ。肉を大いに感じれるハンバーグに、野菜も取れて健康的!比較的リーズナブルなのもうれしいですね。

ちなみに、私個人的なおすすめは火曜日のオムライス。テイクアウトとは思えないクオリティで卵もふわっふわ。。

どれもがっつり大盛に変更しても1,000円ほどで、その日のお腹とも相談しながらおいしいテイクアウトを楽しめそうです。

場所は、京セラ原宿ビルから信号を渡り、niko and…の脇道を通るとあります。

信号渡ってすぐのniko and… の白円で囲んだ脇道へ
この道を通ったらあなたの世界旅行の始まり。。!

お店の都合によっては、ラインナップなど変更あるそうなので詳しくはこちら

今回は第2弾と題して、ご飯紹介させていただきましたが、

もし、ほかにおすすめあれば編集部の私たちにこっそり教えてください。(絶対行きます)

それでは!Bon Appetit !

新年のご挨拶

0

新年あけましておめでとうございます。

今年も皆さんに喜んでもらえるようなアピリッツ情報をたくさん発信していきたいと思いますので楽しみにしていてください!

2024年もどうぞよろしくお願いいたします。

アピリッツスピリッツ編集部

プレスリリースはこちら

クリスマスパーティー at アピリッツ

0

1年を通して一番盛り上がるイベントといえば?そう、クリスマス。
オフィスの周りにもあの有名な表参道のイルミネーションがあるなど盛り上がりを見せています。
そんな中、オフィス内でもクリスマスパーティーを行いこの盛り上がりをさらに大きくしてきました!
その様子を今回はお届けしますので最後までどうぞご覧ください!

オフィスでクリスマスパーティー開催!?

クリスマス会を主催してくださった人事部の方々!ありがとうございます!左にいるのはサンタクロース??ばりかわいい

クリスマスといえばクリスマスパーティーですよね。

とはいえ、会社のオフィスで大々的にパーティーを行うのはなかなか難しい。。

でもせっかくだし社員とみんなでクリスマスを祝いたい!

というよりおいしいもの、甘いもの食べたいですよね?

そこで、アピリッツでは毎年ドーナツなどの甘いものを用意し、

社員の皆さんとシェアしてクリスマスの日をお祝い(仮)をしているんです。

なんといってもアピリッツはイベントが大好き!なんでも祝っちゃいます!クリスマス大好き!

さて、今年のクリスマスパーティーはなにが準備されたのでしょうか。。!

ドーナツにシュークリームに左下のはカレーパン!

例年、甘いお菓子を中心に用意していましたが、今年は社員のリクエストにお応えしてカレーパンも用意!甘いもの苦手な私大歓喜!

そして毎年用意させていただいているドーナツをよく見てみると。。めっちゃかわいい!

                   いや、人事の人のほうが全然かわいいです(本気です)

サンタ、トナカイ、スノーマンなどをモチーフにしたドーナツは、
中にチョコやカスタードクリームが入っていたりと、食べてもいっぱいのクリスマスを感じられそう~

めちゃめちゃ余談ですが私個人的なおすすめは星がついているピスタチオのドーナツです(笑)

さあ、クリスマスパーティースタート!

実は。。アピリッツ社員たちって食べ物には目がないので開始アナウンスと同時にサバンナの動物たちのようにめっちゃ来たそうです(怖)

リクエストいただいたカレーパンも大人気!このためにお昼ごはんを持ってきていない社員も中にはいました(さすが!!)

アナウンスと同時に来た社員の皆さん!見るからに大盛況

みなさんはどんなクリスマスを過ごしましたか?2023年も残すとこあと少し。

体調には気を付けて2024年の新たな年を元気な姿で迎えていきましょう!

それでは、

Have a happy holidays and New Year!!

インフレとの上手な付き合い方

0

今回は、アピリッツの知識共有サイト「ナレッジベース」で公開されている内容をアピスピでも紹介します。
ゲームプランナーとして活躍されている岡庭浩司さんの記事です。
是非最後まで読んでください!(初版:2023年5月29日)

皆さんこんにちは、ゲームプランナーの岡庭です。

今回は私が過去に携わったプロジェクトの中で培ってきたインフレとの付き合い方を紹介します。

キャラや武器など、ガチャで売るものはゲームによってまちまちですので、本稿ではガチャを販売するものを“商材”と呼称します。

やっていること

インフレとの向き合い方について以下の4つに分けて紹介します。

  1. 半年先まで販売スケジュール策定
  2. 縦方向のインフレを多用しない
  3. 陳腐化の抑制施策も並行して企画開発
  4. 新規スキルを安易に追加しない

1.半年先まで販売スケジュール策定

商材の販売スケジュールについて常に半年先まで決まった状態を維持しています。
商材自体(モデル、モーション、エフェクト、SE等)の製作期間の確保という面でも必要ですが、インフレ計画を立てる上でも先々までの計画は必要です。

〈決める内容〉
販売スケジュールの時点では主に以下の点までを計画します。

  • 商材名(何を売るか)
  • 売りにするスペック面の特徴(スキルやタイプ等)

スペック面の特徴被りが起きないことを半年前の時点で確認することが重要です。

もしこの時点でスキルの種類が足りない等の商材不足が発覚しても、半年先に向けた新規スキル開発等なので十分間に合わせることができます。

2.縦方向のインフレを多用しない

説明のため、インフレを縦と横の2種類に分類します。

〈縦インフレ〉
性能を単純に上に引き上げるタイプのインフレで、これまでの商材の上位互換の登場等を縦インフレと呼ぶことにします。

  • 新レアリティ追加
  • ステータス上昇
  • スキル性能上昇   等

売上に直結しやすいものの、旧商材の価値が相対的に低下するためリスクが大きい。
比較的小規模な開発で済むケースが多いため、実装スピードは速い。

実装が楽なために検証不十分なまま実装し、想定以上の壊れ性能になってしまう、という事故も過去に経験したことがあります。

〈横インフレ〉
強さの上限を引き上げることなく商材バリエーションを増やすようなものを仮に横インフレと呼称します。

  • 新しいタイプの追加
  • 分岐進化のようなコテ入れ
  • 新しい遊び方ができる商材の追加  等

これらは完全新機能であることが多いので大規模開発になりがちですが、ユーザーの遊びの幅を増やすことになり、デメリットが少ないためできるだけこちらの横インフレを優先しています。

私が過去に携わったあるプロジェクトでは、
1キャラで3キャラ分の性能&コスト&配置スペースを持ったキャラクターを企画しました。
頭数が減るので範囲攻撃に対して有利になる等のコンセプトを打ち出した横インフレを意識して企画しました。

3.陳腐化の抑制施策も並行して企画開発

縦インフレを起こすと旧性能の商材価値が相対的に低下してしまうため、それらの使い道や活躍の場も並行して開発します。
半年後に縦インフレをすることをあらかじめ計画していれば、そこに合わせてこれらの施策を間に合わせることも可能なので後手に回りにくくなります。

売上に直結しにくい開発項目ですが、「ユーザーの所持資産がゴミになった」という気分を緩和し、DAU低下を抑えるのが目的と割り切って開発するのが良いのかなと思います。

〈▽よくある例〉

  • サブデッキとしてメインデッキの補助的に配置できる機能
  • 低コスト縛りの特殊ルールの戦場を用意
  • 旧商材とのシナジーを意識した新スキル開発  等

4.新規スキルを安易に追加しない

マスターの数字をいじるだけだったり既存効果を組み合わせるだけだったりしても、かんたんな仕様書の作成&検討期間をしっかり設けて吟味したうえで実装します。

  • 環境破壊にならないかの数値検証
  • 既存スキルとの組み合わせによる想定外がないか

マスター上で組み合わせられるけれど、開発者はその組み合わせを想定していなかったというようなケースも結構あります。
・・・実際にありました。

PvEのあるゲームの場合だと特に一度ぶっ壊れが出てしまうと下方修正がしにくいので、ルールとして新規スキルは仕様書作成から十分な開発期間を設けるようにしています。

最後に

4点に分けて紹介しましたが、やはり一番重要なのは先々までのスケジュール策定ができていることではないかと思います。

スケジュールを起点にして、問題の早期発見に繋がり、対策が間に合うという運営サイクルにすることが多くの問題を未然に解決していく秘訣のように感じました。

そしてこれがDAUの維持、そして売上の向上に繋がる秘訣でもあると思っています。

ーーーー

岡庭さんありがとうございました!

アピリッツでは自分が得た情報や技術を積極的に共有し、それらを吸収しながら各々のスキルアップを目指しています。
アピリッツに少しでも興味を持った方、エントリーお待ちしております!

エントリーはこちらをチェック→〈https://recruit.appirits.com/mid_career

46名入社予定!2024年 新卒内定者顔合わせ会を実施しました!

0

今年もアピリッツの新卒内定者顔合わせ会を実施しました。内定者アルバイトで既に働き始めている人はオフライン参加、来年4月から一斉にスタートする人や現在遠方に住まわれている人はオンライン参加で分け、同時開催となります。
クイズやゲームなど人事企画部が企画・運営し、盛り上げました。(取材 2023年11月)

安心して入社式に来れるように不安を取り除く

来年4月から新社会人がスタートする新卒内定者の皆さん。
その時期が近付くにつれ、不安もどんどん募ってきてしまいますよね。そんな不安を少しでも払拭できるように、入社がもっと楽しみになるような顔合わせ会を開催しました!

2024年の新卒は現時点で46名が入社予定となっています。

まず最初に、自己紹介!1人15~30秒程の簡単な自己紹介となりますが、
1人でも多く名前と顔を覚えられるように印象に残りやすい「見た目とのギャップ」を一言付け加えてもらいました。

大人しそうに見られがちだけど、アクティブなことが好き!

クールだと思われるけど、全然そんなことなくて話すの大好きなので話しかけてほしい!

韓国が好きそうとよく言われるけど、ドイツやスウェーデンが好きで先日旅行にも行きました!

こんな感じで各々意外な一面を付け加えて自己紹介してくれました!

毎年恒例、アピリッツクイズ

続いては、AかBの2択を選んで答えるAorBクイズ

採用担当からランダムで名前を呼ばれた人が答えていく形式。もちろんネットで検索するのはNG!

AかBを選んでもらう2択式!アピリッツにまつわる最新情報もクイズに出題!

全問正解者は0人でした・・・!残念・・・
ちょっと難しい問題もありましたね。

グループに分かれて協力型ゲーム

お次は顔合わせ会の目玉。1グループ9人のグループを5つ作ってゲームを実施しました。

今回のゲームは・・・「アピリッツしりとり」です!
その名の通り、全員が知っているといっても過言ではないあのしりとりです!

ただ、普通のしりとりではなく、アピリッツしりとり。
アピリッツのHPに載っている用語のみを繋げて一番長くしりとりを続けられたチームが勝利となります。

大まかなルールはこんな感じ

その他細かいルールはありますが、とにかくひたすら用語を見つけて繋いでいくシンプルなゲームです!
以下の5つの用語から好きなものを選んで、そこからスタート。

①セカイ
②原宿
③AWS
④ゴエクロ
⑤大規模サイト

さぁ、一体どのチームが一番長くしりとりを繋げられるのか・・・!

栄えある1位はCチーム!なんと56個の用語を繋いでしりとりを完成させていました!素晴らしい。全員から賞賛の拍手が贈られました!

他のチームも時間ギリギリまで取り組み、採用担当が想像していたよりも遥かに長くしりとりを繋いでいました。

あっという間の2時間

ゲームで盛り上がったあとは、オンラインでオフィス見学を実施。
採用担当が京セラ原宿ビルの5階と2階、MSビルをカメラ中継で案内しました。お仕事中にもかかわらず、笑顔でカメラに手を振ってくれた社員の皆さん、ありがとうございました!まだオフィスに来たことがない方々に少しでも社内の雰囲気が伝わっていたら嬉しいです。

オフィス見学後は、今後のお話(提出物や入社式までに準備しておいてほしいこと等)と寮についての詳しい説明。すでに入寮を考えているという方もちらほら見受けられました!
社会人を機に上京する方も多いと思うので、是非アピリッツの社員寮を活用してくれればと思います。

▼過去の記事でもアピリッツの寮について取り上げていますのでご参考までに!※少し前の記事なので、また更新したいと思います!

住み心地はどう?アピリッツ社員寮「アピトリー」、入居者インタビュー・男性編

住み心地はどう?アピリッツ社員寮「アピトリー」、入居者インタビュー・女性編

最後、人事企画部部長の川口さんより締めのお言葉もいただきました。「入社までの期間、遊びでも勉強でも必ず皆さんの経験になる」「社員一同皆さんの入社を楽しみにしているので、健康でいてください」とエールが送られました。

来年4月、皆さんとお会いできることを楽しみにしています!!

アピリッツでは毎年、新卒採用を積極的に行っております。
24卒継続中25卒の早期選考が開始となりました!詳しくはコチラ

『けものフレンズ3』運営主体変更当時の思い出インタビュー!②〜シナリオライター・プランナー編〜

こんにちは!ゲームセグメント情報発信チームです。

当社のオンラインゲーム事業には、複数の運営移管プロジェクトが存在しているのはご存知ですか?

その実態について、今回もインタビューして参りました!

今回の記事は、『けものフレンズ3』運営主体変更当時についてのインタビュー第2弾。
前回の「デザイナー編」に続き……「シナリオライター・プランナー編」でお送りします。


『けものフレンズ3』とは

メディアミックスプロジェクト「けものフレンズ」のゲームタイトル。

2021年8月1日付で、株式会社セガ様から当社に運営主体が変更されました。

当社は、オンラインゲームの受託開発および自社ゲームの企画運用における10年以上の実績を活かし、運営移管(セカンダリサービス)の事業を展開しています。


インタビューしたのはこの3名!

(シナリオ班より)S.Yさん、K.Yさん

(バトル班より)I.Sさん ※後半から参加

インタビューに応じてくださった3名(写真左がS.Yさん、中央がK.Yさん、右がI.Sさん)

まずはシナリオ班のお二人にインタビュー!

——どのようなことを担当していましたか?

台詞の台本などを書いていました。シナリオも少しやらせていただきました。

シナリオ全般のディレクションと執筆を担当しています。
当時はメインストーリーのお手伝いなどさせていただきました。

——プロジェクトに参加したのはいつ頃ですか?

2021年の2月ですよね。

そうでしたね。テレビ放映時に「けものフレンズ」を観ていた話を上長にしたことで、このプロジェクトに参加することが決まりました。

私は入社自体が2月でした。入社直後に書籍やアニメをどっさり用意されて、まず作品の勉強から入りました。

——シナリオ班の引き継ぎはどんな感じなんでしょう?

アニメ等を観て物語とキャラの理解を深めていった後、
キャラシート(キャラの設定等)→台本(キャラの台詞等)→フレンズストーリー(短めのキャラ個別ストーリー)、といった感じで、段階を上げて着手しました。

最初に本格的にキャラシートを作ったのは4月ごろでしたよね。


多くの学びを経て、キャラクター設定を引き継ぎ!

——キャラシートとはどのようなものですか?

キャラの設定やバトルモーションなどを決めるもので、ライター陣が作っています!
けものフレンズプロジェクト側からいただいた数行のフレーバーテキストを資料に、設定を膨らませていきます。

セガさんと毎週、キャラシート確認会をしていました。
設定が問題ないかや、各モーションはそのキャラクターらしいか見栄えがよいかを確認します。

——引き継ぎはスムーズに進みましたか?

どうですかね……?たくさん指摘をいただきました。

これは私だけなのですが、動物が大好きなのが高じて、かなり野性味の強い動きを提案してみたことがあります。
すると確認会で、「これ、フレンズがそのままやると、あまり可愛くないですね」と言われてしまい……その通りだなと思いました。
動物らしい野性味も大切な要素ではありますが、魅力を損ねないようにする重要性を学びました。

まず第一に、フレンズとしての魅力を引き出すことが外せない
あとは、けものフレンズ特有の、あの世界観を崩さないこと。
そのあたりは特に気を配ることとして受け止めました。

——キャラシートでは、モーションの指定も行っているのですね。

エフェクトやモーションをシナリオ班で決めています。

他のプロジェクトでは経験したことがなかったので、セガさんが作られたキャラシートを何度も見て取り組みました。
もともと、自分の脳内でキャラクターを作って遊んでいるような人間なので、アイデアに困ることはありませんでした
ただ、仕事となるとクオリティを保っていく必要があります。
「この子がどういう子なのか」、ユーザーさんに伝わるように頑張っていました。


「けものフレンズ」として大切なことを胸に刻んで……

——シナリオを書く上で感じていたことを教えてください。

他のプロジェクトと一番違うのは、この作品に登場する子たちには、人間が気にしている決まりやしがらみがないこと。
あの子たちにあるのは、誰かを思う優しさとか、自分のやりたいことをやる楽しさとか、そういう自由な世界。
まず、自分の思考をけものフレンズ化させていくところから始まりました。

——メインストーリーを実際書いてみてどうですか?

お手伝いを経て、現在進行中のメインストーリー シーズン3では本格的に執筆を担当するようになりました。
プレッシャーもすごく感じていますが、同時にすごく楽しいですね。

「けもフレ3」は、「けものフレンズ」の歴史の一部分。これまで色々な媒体で紡がれてきたお話と矛盾してはいけません
地続きの物語をしっかりと広げていくために、前任のシナリオライターさんから知識やアドバイスをたくさんいただきました。

——Sさんは台本を書いてみてどうですか?

動物の習性や特徴を台本に入れ込もうとした時、フレンズ目線の台詞を考えるのが難しかったです。

例えばですけど、コアラは22時間も寝ます。
それをフレンズから見た時、寝ている本人は睡眠時間が分からないですよね。また、時間という概念も持たせるべきではない。なので、「起きた時とお日様の位置が変わらなかった」と表現する、といった感じです。
ただ、ユーザーさんに伝わるかな、ということにはとても気を配っていました。大変ですが楽しかったです!

動物については、間違った情報を出すわけにはいかないのでとことん調べていますね。

論文を読んだり、最新の研究機関に連絡してみたりもしています。

メインストーリー シーズン3の一節(中央が新たな登場人物「ヒカリ」)

様々なフレンズ、様々な展開で世界を広げる!

——「けもフレ3」では、架空の存在をもとにしたキャラクターも登場しますよね。

架空の存在であっても、伝承はたくさんあります。
また、伝承にも、悪い存在として扱われているものもあれば、すごく良い存在として扱われているものもあります。
どこか一面だけに偏らないようにいろいろな文献を読み、この子たちの要素にしています。

神話上のイメージと結構ギャップがある子もいますよね。
例えばツクヨミノシンシちゃんは、神の使いですがギャルなんです。
その面白さをしっかり生かしつつ、伝承もそのキャラクターに合わせて解釈できないかなと考えていっています。

——絶滅動物の扱い方も気になります。

絶滅動物といっても、その絶滅の原因は様々です。
いずれの場合も、フレンズたちの明るい世界観は崩さずに、物悲しさをシリアスになりすぎない程度に表現し、「かつてこういう動物がたしかに地球で暮らしていた」というメッセージになればいいなと思っています。
そういったメッセージ的側面は、「けものフレンズ」というIPそのものの考え方と繋がっています。

——IPや動物そのものとの関わり方の話を聞けて、とても興味深かったです

ーー最後に言っておきたいことがあればどうぞ!

メインストーリーでは、新しい人間のキャラクター「ヒカリちゃん」を登場させて、新たな風を吹かせてみました。
待望のゲストを迎えたジャパリパークがこれからどのように賑わっていくのか、楽しんでいただけますと幸いです。

また、「けものフレンズ」では、「けもV(けものフレンズVぷろじぇくと)」も進行しています。
そういった、今起きていることを取り入れたストーリーも展開できたらいいなと思っています。

「けものフレンズ」コンセプトデザインを手掛ける、吉崎観音先生がすごく協力してくださっているということもお話ししたいです。
あるコラボイベントのストーリーを書くのに難航していた時、先生よりご提案をいただきました。
「けもフレ3」の根幹に関わる情報を絡めることで、コラボイベントも「けものフレンズ」の一部のストーリーになるというご提案でした。
そのおかげでストーリーを作り上げることができたので、本当に色々なところで助けていただいています。

水族館コラボでは、魚類や軟体生物のフレンズを出すという我々の新しい提案にも快諾いただきましたね。
ただ出すのではなく、「きちんとフレンズになる理由があるからこそ出す」、と許可をいただき本当にありがたいです。

ツクヨミノシンシの加入シーン

バトルを手掛けたプランナーさんにもインタビュー!

ーーチームに入った当時のことを教えてください!

本格的に参画したのは2021年4月ですね。
運営としては、毎週のアップデートに関わる割合が徐々に増えていきました。
そして、データや仕様書作成についてのノウハウを伺ったり、作成物へのフィードバックをいただきながら運営に参加していました!

——シナリオ班では動物について学んだ話もありました。バトル班ではいかがでしたか?

データ作成をひたすら覚えていった、という印象が強いです。
セガさんの開発環境を理解して、データ更新に間に合うよう、急いで作業内容を覚える必要がありました。
もちろん、キャラクターを覚えるというのも別の軸としてありましたね。

——引き継ぎの中でやりがいがあったことを教えてください!

バトル周りのノウハウは、初めは難しかったです。
セガさんの環境は、スキルのパラメーター設定方法が自分にとって新しいものでした。ですが覚えたら非常にやりやすくて!
学びが多くて面白かったですね。

他には、キャラの調整のニュアンスを掴むのには時間を要しました。
スキル性能のバランスをどう取ればよいか、「分かってきたぞ」という実感を覚えたのは、9月ぐらいだったと思います。

——キャラの調整作業では、シナリオ班との連携はあるのでしょうか?

シナリオ班からいただくキャラクターの設定を俯瞰してみて、パラメーターに反映していくのが私の仕事です。

まずシナリオ班で、「けものミラクル」(各キャラクターの大技)の性質を偏らないように決めています。攻撃系なのか、バフ系なのかなど……
そこからバトル班に全体的な性能の組み立てをしてもらっています。

「全体攻撃のミラクルが少ないんでちょっと増やしてください」というような要望はたまに出していました

テングコウモリのステータス画面

——キャラクター性能はインフレのおそれもありますよね。シビアな印象があります。

状態異常がバトルの軸になっている「けもフレ3」は、インフレがしづらいバトル環境だと思います。
その軸足を捉えてさえいれば、設定はしやすかったです。
なので、「フレンズの個性をバトルに如何に反映させるか」ということに焦点を当てることもできました。
素晴らしい環境だなと思っています。

——最後に、アピールしたいことがあればお願いします!

最近、動物園などともコラボしていますよね。
アピリッツは結構フットワークが軽い会社。
アピリッツだからできること「けものフレンズ」というIPでしかできないことなど、ちょっと斜め上の面白いことを期待してください!

ーーお三方とも、本日はありがとうございました!


あとがき

シナリオやバトルは、ゲームを楽しむための最重要要素。

引き継いだマインドと、メンバー自身の持つマインド――それらが合わさり、思いの詰まったものを提供しているんだなと感じました!

「けもフレ3」をはじめ、これからも当社は、多くの方々に楽しんでいただけるゲーム運営をしてまいります。


お読みいただきありがとうございました。

当社へのゲーム運営移管のご相談は下記URLから!

https://appirits.com/inquiry/


「アップデートし続けるアピリッツらしさ」新卒採用フォーム改修チームインタビュー

0

アピリッツでは現在2025新卒の早期選考を開始しております。
早期選考に伴い、これまで運用していた新卒の採用フォームを大きく改修しました。今回エンジニアの浅田、デザイナーの永山、古川、山岡の4名に協力を依頼したので、改修作業での裏話や新たな気付きについて聞きました(取材2023年11月)

中途入社メンバーから見た新卒の選考フロー

ーー今回社内の人事採用チームからの依頼で、新卒採用フォームを改修するといった内容を知った時、率直にどう思いましたか?

(浅田)自分が中途入社というのもあって、新卒の方々がどのようなフローで選考を進めていくのか認識がありませんでした。今回、改修作業の話を聞いた時、採用チーム側で色々と工夫されているんだなと率直に感じました。
提出が必須な職種別のアンケートは、結構難しい内容もあって自分がもし新卒だったら大変そうだなと思いました。

(山岡)私も同じく中途で入社しているので、初めて選考の流れを聞いた時は、新卒の皆さんはこんなにやることがあるんだなというのは最初に思いました。同時に、それを改修する機会がチームに降りてきたのはすごく有難いなとも思いましたね。

ーー今回のように社内で何か案件が動いてその依頼が来る、といった事は割合として少ないのでしょうか?

(山岡)そうですね。私も初めてだったので、社内案件のコミュニケーションの取り方や進め方といったところは今回のプロジェクトを通して学ぶことが出来ました。

ーー初めてだったんですね!永山さん、古川さんはいかがですか?

(永山)私は今年の新卒で入社したため、新卒採用については記憶に新しいのですが、まず自分の時とは選考フローが大きく変わっていることに驚きました。毎年アップデートしてより良いものを作ろうとしているのはアピリッツらしくていいな〜と感じました。

(古川)一番最初は自分が担当すると思っていなかったので、情報量が多そうで大変そうだな〜と他人事のように思っていました。

ーー実際自分に担当が割り振られたときはどうでした?まさか自分が担当するとはという感じでしたか?

(古川)そうですね、自分が担当するとは思わなかったのですが、作業中は自分の就活時代を思い出す場面もありました。

 

逆の視点に驚きました

ーー次にフォーム全体のデザインについて、デザイナーの観点からは「見やすく、丁寧なUIデザインを考えたい」でしたが、採用チームからは「学生の皆さんには自力で進めてほしい思いがあるから丁寧すぎる案内は無しで」との要望があり、デザイン周りでの意見の違いが発生しました。そのギャップについてはどう思いましたか?

(古川)一番最初のミーティングでデザインの構成等すり合わせをしたときに、採用チームから真逆の要望を言われたのは正直戸惑いましたね。
今まで内部向け、お客様向けのものは作ったことがありましたが、学生はそのどちらでもないということでその部分は非常に難しかったです。
作業している最中も本当にこれで大丈夫かな・・・と不安に思う事が多くありました。

(永山)私はそれこそ直近で携わった案件がユーザー中心で誰でも使えるようにというのを重視していたものだったというのもあり、逆の視点だったので驚きました。

(山岡)今回の改修作業にあたっての目標が自分の想像していなかったところだなと思ったので、最終的にどういうデザインが出来上がるのか逆に想像できなくて面白いなと思いました。そのすり合わせをした最初のミーティングが一番重要だったので、それを早々に設定してくれた永山さんには感謝です。

ーーミーティングは何回くらい実施したのでしょうか?

(山岡)一番最初の一度だけで、あとの細かい部分の確認はSlackでのやり取りでした。

デザイナーの3名(左から古川さん、永山さん、山岡さん)

ーー普段はお客さんとのやり取りがメインだと思いますが、今回社内の案件だった事もあり、社内の人間だからこそ進めやすかった点、やりづらかった点があれば教えてください。

(浅田)普段会社間で進めていると、どうしてもコミュニケーションコストが発生することで段取りが付きにくかったり、余計に時間がかかるみたいなところがあるのですが、社内で完結しているので、作る方に全力で集中できたのかなという風に思っています。

ーーデザイナーの窓口を担当していたのは永山さんだと思いますが、そのあたりはいかがだったでしょうか?

(永山)そうですね。今回窓口対応に入ったのが初めてだったので、いきなり外部のお客さんではなく、社内で良かったなって思いました。
練習ではないですけど、良い勉強になったなと思っています。社内だとコミュニケーションもとても取りやすく、レスポンスも早いのでスムーズに進めることが出来ました。初心者にも易しい案件で、窓口を任せていただけて良かったです。

 

全員が常に前倒しで進めていく事を意識していました

ーー 早期選考の兼ね合いもあり採用チームから進行スケジュールは早め早めでお願いしていたと思います。催促なども多かったと思いますが、そのあたりはいかがでしたでしょうか?

(浅田)普段もなるべく早めに、できるなら前倒しして進めるというのは意識しているので、今回も問題なく終えることができたと思っています。
デザイナーチームが早めに連携してくれたのも大きかったです。

ーー実際に他の案件でスケジュールが押してしまう事は多いのでしょうか?

(浅田)それでいうと、結構あるかなと思います。機能を実装しようとしたら少しつまずいてしまったり、デザイン側が押してしまった影響で実装する時間が押してしまうというのはありますね。早め早めにを心掛けていました。

ーーデザイン側で作業を進めていく上で何か工夫した点とかありましたか?

(永山)最初のミーティングから早めに進めてほしいという要望は聞いていたので、大体決まっている工数や時間は考慮しつつ、省ける作業をなるべく省いて進めました。巻けるところで巻いてしまえば後々楽にもなってきますので。
工数の部分はまだまだ未熟で分からないことも多かったので、都度山岡さんに聞いたり、古川さんに実際この感じでいけますか?と確認を取ったりして動いていました。

 

ChatGPT様様ですね

ーー今回、バックエンド側は浅田さんお一人にお任せする形となってしまいましたが、大変だった事、楽しかった事を具体的に教えてください。

(浅田)直近はインフラメインの作業が多かったということもあり、アプリ開発自体が久しぶりで率直に面白かったというのがありますね。
使うライブラリも普段は他の人が使っている言語やスキルに合わせたり、お客さんから指定された言語を使用したりというのが基本なんですが、今回は自分の判断のみで決めることができました。
ただ、今まで触れたことの無いものにも挑戦してしまったので、つまずいてしまった部分もあるのですが、それも含め楽しかったです。

ーーつまずいてしまった時はどう解決されていましたか?

(浅田)基本的にいろいろなドキュメントを見たり、ChatGPTに聞いたりして解決していました。

ーーやはりChatGPTは活用されたんですね。

(浅田)活用しなかったらもう少し遅れてしまっていた可能性もあるかなと。

ーーさすがChatGPTですね!

エンジニアの浅田さん

 

入力時のミスを減らしたい

ーー画面作成をメインで作業いただいたのは古川さんだと思いますが、デザインで工夫された点はありますか?

(古川)1ページの情報量が非常に多いので、自分が今どこを回答しているのか見失わないような工夫をしたり、情報のまとまりをはっきりさせてなるべく整って見えるようにしました。
それと、スクロールが長すぎてしまうと、たまにページが戻って全て消えてしまうことがあるなと思ったのでそういったスクロールミスを減らせるような工夫も考えました。

ーーたしかに頑張って入力したのに急に戻っちゃって最初からみたいな悲劇はあります。

(古川)絶望ですよね。あと全体の色味も新卒の皆さんが見るアピリッツの動画に寄せてポップな感じにしました。見た目の印象も大事なのでそこもよく考えました。

実際のフォーム画面はこんな感じになりました

 

学びと気付きの連続

ーー最後に今回の新卒採用フォームの改修を終えていかがですか?

(浅田)個人的に触ってみたいと思っていたライブラリなどにも挑戦でき、学びも多くありました。
さらにこれからアピリッツの仲間になる可能性がある人たちに向けて貢献するという経験もできて良かったと思います。

(山岡)今回私はサポートする立場だったので、他の皆さんが迅速に動いてくれたおかげでかなりスムーズに進めることができたと思っています。
私自身、社内案件が初めてだったので、コミュニケーションの取り方などすごく勉強になった良い機会でした。

(永山)今回の改修でエントリーまでの流れがだいぶ分かりやすくなったんじゃないかなと思うので、選考人数が増えると良いなと思っています。
また、今回初ディレクションを任せていただき、自分の中では反省点も多くあったので今後携わる案件にも活かしていきたいと思います。

(古川)最初のミーティングの時点で、人事側から今回の改修を経て、どう使いたいのか、どう管理していきたいかという細かい部分まで共有してくれたので想像していたより大変じゃなかったです。
たまにお客さんの案件で目的がざっくりしていてなかなか仕様が定まらない事もあったりするので、それに比べたらとても進めやすかったです。

ーー皆さん、今回はご協力いただき本当にありがとうございました!

今回新しく生まれ変わった採用フォームで皆さまのエントリーをお待ちしております!

【健康促進】バランスボールはじめました

0

アピリッツでは社員の声を大事にし、より良いオフィスライフを過ごせるよう日々取り組んでいます。その一環として、最近バランスボールを導入してみました。デスクチェアの代わりにいつでも使用できるよう各フロアに数個設置したり、希望する社員には自分専用のバランスボールを渡すなど、仕事をしながら健康を意識できる取り組みを行っています。

バランスボールを取り入れてみよう!

とある社員が仕事をする上で腰痛を訴えてきました。

デスクワークをする上で腰痛は一番の敵。そこで、デスクチェアの代わりにバランスボールを取り入れてみることにしました。

実際にバランスボールに座りながら作業するとこんな感じ!

バランスボールにはどんな効果が?

そもそも、バランスボールに座ることでどんな効果が期待できるのかご紹介していきたいと思います!

1.腰痛改善と予防

不安定なバランスボールに座ることで、姿勢や骨盤、筋肉が正しい位置で使用され、長時間のデスクワークで起きがちな姿勢の乱れなどからくる腰痛の予防や改善が期待できます。

2.集中力の持続

バランスキープの為、常に筋肉を使っている状況なので仕事中に襲ってくる眠気を感じることやボーっとする時間が減ります。

3.運動不足の解消

座りながらコンスタントに動いたり、軽くエクササイズができるので日々のデスクワークでの運動不足解消にも期待できます。

【座りながらできるエクササイズ2選】

1.姿勢をキープで腹筋トレーニング

バランスボールの上で背筋を伸ばし、姿勢を保つことで腹筋が鍛えられます。

2. 腰の前後左右運動で体幹トレーニング

座った状態で腰を上下左右にひねる運動をすることで体幹が鍛えられます。

実際に使っている社員に聞いてみた

では、実際にバランスボールを使用している社員に実際使ってみた感想を聞いてきましたのでご紹介させていただきます。

仕事のリフレッシュにもなる

・座っているだけで体を動かせるので、考え事の合間のリフレッシュになり、仕事中のプチ休憩にもなってます。他にも、軽い運動になるし、椅子とは違って背もたれに寄りかからないので、眠くなりにくいです!何よりもぽよんぽよんしてて楽しい。
・バランスボールに乗っている状態で猫背だと視点が低くなり作業に集中できなくなるので、正しい姿勢を意識するようになりました。

他の方々にも是非ともおすすめしたい

眠さ改善や体を動かすことでのリフレッシュになるのでおすすめです。(地面から足を離せば激ムズモードも堪能できます)
・集中力が切れたとき、手短に運動ができるバランスボールがあればすぐ作業に戻ることもできるのでいろんな人におすすめしたいです。ネットでもインナーマッスルに効くと聞いたので。
・業務をしながらエクササイズをできるので体にも良いしおすすめなんですけど、前の椅子も恋しくなったりするので時間や日で交互に使ったりするのも個人的におすすめです!

百聞は一見に如かず

・もともと使用していたオフィスチェアと比べて仕事しているときの姿勢が良くなった感じがするのと、長時間座っていてもお尻が痛くならないのはありがたいです。
・ただ、身体の大きさやデスク、モニターの高さによっておすすめできるか変わってくると思うので、使ったことが無い人は一度試しに座ってみるのもアリだと思います。

さすがアピリッツ!と言わんばかりにアピリッツでは社員の一言を大切にし、まずは試しに取り入れてみようという動きが活発です。
今後も会社全体で健康を意識できるような取り組みを行っていきます!

他にもアピリッツでは様々な社内制度や福利厚生が充実しています。
アピスピでもアピリッツの良さをどんどん紹介していきたいと思っています!

GA4でIPアドレス除外を設定する方法

0

はじめまして、新卒のTです。現在Googleアナリティクス4(以下GA4)導入・活用支援を主とした、データマーケティング支援に携わっております。

GA4は非常に優秀な解析ツールではありますが、追加設定をしないと取得したデータの精度が下がってしまい、分析を見誤ってしまう可能性があります。
その代表的な例として、IPアドレス除外設定があります。

一般ユーザーの行動と関係者(社内保守運用、営業など)の行動は異なると思われます。関係者のアクセスはGA4でIPアドレス除外を行なうためには大きく2つの設定をする必要があります。
Google社が提供しているデモアカウントを用いて、手順に沿って丁寧に説明していきますので、ぜひGA4の設定にご活用ください!

GA4 データフィルタの設定方法

まずはじめにデータがレポートに表示されないようにフィルタリングする設定をします。

Googleアカウントにログイン後、Googleアナリティクスアカウント(https://analytics.google.com/analytics/web)にアクセスし、GA4プロパティを開きます。そして、画面左下の歯車アイコンをクリックしてプロパティの管理画面へと進みます。

GA4 管理画面への入り方

管理画面を開き、プロパティの項目のデータ設定配下にある【データフィルタ】を選択します。

データ設定 作成方法

次に表示された画面で各項目を入力していきます。

データフィルタ 作成画面

データフィルタ名の空欄に任意の名称を入力します。

フィルタオペレーションを【除外】、パラメータ値を任意の名称、今回はデフォルトの【internal】とすることで、パラメータの値【internal】と一致するデータをフィルタリングします。このパラメータ値はあとで使用するので覚えておいてください。

そして最後にフィルタの状態を選択します。
フィルタの種類は【有効】【無効】【テスト】の3種類があります。

【有効】 …データに対しフィルタが適応され、計測がされなくなります。
【無効】 …フィルタを無効にします。使わなくなったデータフィルタを削除せず無効化できます。
【テスト】…データフィルタが適用され、一致するデータのフィルタリングが行なわれます。

一度フィルタを有効にすると、除外されたデータは恒久的に処理対象から外れてアナリティクスで確認できなくなります。これを避けるために、フィルタの状態を【テスト】に設定することで、IP除外が正しくされているかのテスト状態にできます。

言い換えると、特定のIPアドレスからのアクセスデータが不要で完全に除外して良い場合は【有効】、除外予定のIPアドレスからのアクセスも見る可能性がある場合は【テスト】と使い分けることができます。

フィルタの除外の設定が完了したら、右上の作成ボタンをクリックするとデータフィルタが完成です。

ここで作ったデータフィルタにより、指定した内容を基にデータを除外する設定が出来ました。
次の章では内部トラフィック定義にて実際に除外するIPアドレスのルールを決めます。

GA4 内部トラフィック定義の設定方法

ここからは前章で作成したデータフィルタに適応するデータを定義づけするため、内部トラフィックの定義を設定します。

データフィルタの作成時と同様に、GA4プロパティの管理画面を開き、項目より【データストリーム】を選択します。
サイトの計測をしているデータストリームを開き、任意のストリームを選択してください。

GA4 データストリーム選択

ここで注意点として、アプリのデータストリームは内部トラフィック定義の設定はできません。

選択したデータストリーム内にて、Googleタグにある【タグ設定を行う】を選択します。

タグ設定を行う

次に【すべて表示】をクリックし【内部トラフィックの定義】を選択します。
(英語表記で【Show more】となっている場合もございます)

内部トラフィック定義 作成方法

内部トラフィックルールの作成を行います。

内部トラフィック定義 作成画面

内部トラフィックルールとして、まず作成する任意のルール名を入力します。
次に、前章で決めたデータフィルタのパラメータの値を【traffic_type の値】の欄に入力します。例ではinternalとしていました。

そして最後に除外したいIPアドレスとその一致条件としてマッチタイプを入力します。
入力するIPアドレスは IPv4 でも IPv6 でもかまいませんが、IPv4とIPv6両方の可能性がある場合は「条件を追加」から、両方を設定する必要があります。
自身のIPアドレスが不明な場合は【IPアドレスを確認】をクリックして、接続しているIPアドレスを確認してください。

全て入力を終えたら右上の作成をクリックし、内部トラフィックの定義を作成します。

以上で任意のIPアドレスを除外する設定は完了です。
次にデータが正しく除外されているかの確認方法について、解説します。

データが正しく除外されているか確認する方法

設定したデータフィルタですが、テスト状態にすることで指定した IP アドレスからのトラフィックが除外されているかを確認できます。
正しく除外されているかを確認する方法としてはGA4のレポートの一つ【探索】を使用します。

探索レポート 作成方法

まずはじめに、GA4プロパティの左メニューにある【探索】でレポートを作成します。【空白】を選ぶと余計なディメンションや指標がセットされないのでスムーズです。

ディメンションより【テストデータのフィルタ名】を、指標より【イベント数】をインポートし、インポートしたディメンション、指標を以下の通り設定します。

行:テストデータのフィルタ名
値:表示回数
フィルタ:【テストデータのフィルタ名】にてデータフィルタの名前【internal】
期間:操作した期間を含め設定してください

探索レポートでの確認方法

画像と同様のレポートを作成し、フィルタを適応させます。

データフィルタに設定した名称を使用し、データの除外が正しく行われているか確認します。
設定したフィルタの種類によって表示されるデータは異なります。

なお、データフィルタの適用には 1,2日かかることもあります。上手く表示されない状態でしたら、しばらくしてからもう一度ご確認いただくと改善されるかもしれません。

GA4をもっともっと活用されたい方へ

今回はIPアドレスを基にデータを除外する方法を解説しました。
とても基本的な内容ではありますが、データの精度を高める上で重要な設定です。必ず設定しましょう。

現在アピリッツでは、GA4に不慣れの方向けのセミナー開催や、GA4に関する相談や設定支援を承るサポートデスクサービスを展開しております。もしご興味ありましたらお気軽にご相談ください。

最近人気な記事