SlideShare une entreprise Scribd logo
1  sur  117
© historia Inc. #ue4fest
少人数開発でもクオリティを諦めない
- エンジニア視点から見る少人数開発の極意 -
historia Inc.
原 龍
© historia Inc. #ue4fest
登壇者紹介
 Airtone(AMG GAMES 様)
– Lead Engineer
 過去作
– アーガイルシフト(バンダイナムコエンターテインメント 様)
 Lead Engineer
– ランページ ランド ランカーズ(スクウェア・エニックス 様)
 Lead Server Engineer
 Client Engineer
 コミュニティ活動
– NekoNekoOnline プラグインの WebApi 機能における設計思想 & 実装Tips
 http://hogetatu.hatenablog.com/entry/2016/12/01/000000
– GameplayDebugger をプロジェクト用にカスタマイズして利用する
 http://hogetatu.hatenablog.com/entry/2016/12/03/002946
© historia Inc. #ue4fest
今回ご紹介するもの
© historia Inc. #ue4fest
弊社で開発中の “Airtone” を実例に挙げ
少人数開発における開発の流れ
効率化のために実装した機能
をご紹介します
© historia Inc. #ue4fest
アジェンダ
 Airtone のご紹介
 少人数開発で必要なもの
 Airtone で実装した機能やツール
© historia Inc. #ue4fest
まずは “Airtone” のご紹介
© historia Inc. #ue4fest
AIRTONE VR Gameplay Movie
I promise you Yasushi Asada feat Mary
https://youtu.be/jShjM3ivg7Y
© historia Inc. #ue4fest
ジャンル エアーリズムアクション(VR)
ハードウェア / プラットフォーム
• Oculus Rift / Oculus Store
• Vive / Steam
エンジン / ミドルウェア
• Unreal Engine 4(UE 4.12 → 4.14)
• Wwise
開発期間 約10ヵ月
開発体制(ピーク時)
• プロデューサー & ディレクター × 1
• ゲームデザイナー × 2
• エンジニア × 4
• アーティスト × 3
• UIデザイナー × 1
• サウンド & チャートデザイナー × 3 (社外)
© historia Inc. #ue4fest
0
2
4
6
8
10
12
14
16
7月 8月 9月 10月 11月 12月 1月 2月 3月
人月
ディレクター ゲームデザイナー エンジニア アーティスト UIデザイナー サウンド
 7月
– プロジェクト発足
– プロトタイプ量産
 8月
– 1曲通しプロトタイプ完成
 11月
– α 版完成
 2月
– β 版完成
© historia Inc. #ue4fest
Airtone は 10時間以上遊べるボリュームのVRリズムゲーム です
それを 4人 から始め、最終的に 14人 で 10ヶ月 という期間で作ってます
(控えめに言っても少人数だったなと思います)
© historia Inc. #ue4fest
今回はこのような少人数開発を
どのように実現したかについてご紹介します
© historia Inc. #ue4fest
少人数開発で必要なもの
© historia Inc. #ue4fest
常に "最適な完成度" を目指すこと
© historia Inc. #ue4fest
一例としてツール制作について掘り下げてみます
© historia Inc. #ue4fest
ツール制作における工数と効果の関係
工数
効果
© historia Inc. #ue4fest
ツール制作における工数と効果の関係
工数
効果
ツールとして実運用に耐えうる
ツールとして機能し始める
ぼくがつくったさいきょうのツール
© historia Inc. #ue4fest
ツール制作における工数と効果の関係
工数
効果
ツールとして実運用に耐えうる
ツールとして機能し始める
ぼくがつくったさいきょうのツール
それともこの辺でも大丈夫?
今回必要なのはこの辺?
© historia Inc. #ue4fest
クオリティはできるだけ上げたい
でも工数は無限ではない
↓
作るものに応じた “最適な完成度” を目指す
© historia Inc. #ue4fest
"最適な完成度" を導き出すために
© historia Inc. #ue4fest
何が必要とされているのかを明確にする
© historia Inc. #ue4fest
要件定義は大事
 何が求められているのか、実際にそれを必要としている人に直接確認する
 この相談は十分に時間をとる。考えうる可能性の話もする。想像力は大事
 その上で 「やらなければいけないこと」 と 「できると良いこと」 を決める
© historia Inc. #ue4fest
完成形のイメージが固まらない場合は、とりあえず “雑に作ってみる”
 完成形を正確にイメージでき、それを言語化できる人はあまりいない
 何かそれっぽいものを作って出してみると話し合いが短くて済む
 複数人で 「誰もよくわかっていない何か」 を机上で考えている時間は無駄
© historia Inc. #ue4fest
“雑に作ってみる” 時にこそ、UE4の真価を発揮できる
とにかく速く、それっぽく、プロトタイプが作れる
© historia Inc. #ue4fest
ただし、これは高確率で地雷を踏みます
© historia Inc. #ue4fest
地雷の要因
 雑に作ったことが忘れ去られる
– 「完成している」 と思っていた機能がプロトタイプコードで、
実は見た目だけだったという事がプロジェクト後半に発覚するのは割とよくある話
– プロジェクト後半でバグが出たり、機能拡張時の対応コストが高くなって辛いやつ
 “とりあえず” で使いまわしたアセットが残り続けて想定外の依存関係を生む
– プロジェクト後半に最適化等を行うためにアセットを整理しようとした時に、
様々なところに依存が発生していて手が付けられない状態になっていたり…
© historia Inc. #ue4fest
“雑に作ってみる” を 皆が理解する 事が大事
© historia Inc. #ue4fest
“雑に作ってみる” ということ(エンジニア / アーティスト編)
 「雑でもいいから見せる事の重要性」 を理解する
– 全てを言語化するのは難しいし、言語化してもわかりにくいものは可視化するしかない
– 相手が自分の感覚を正確に理解してくれるという考えは幻想。諦めて手を動かそう
– だからと言って作り込み過ぎると、ボツになった時に工数的にも精神的にも辛いから雑で良い
– 確認が済んだら、相応のコストを払って作り込む期間を作るのは必須
© historia Inc. #ue4fest
“雑に作ってみる” ということ(ディレクター / ゲームデザイナー編)
 「雑に作られていること」 を理解する
– 目の前にあるものは完成されたものではない。あくまで 「形にしてみた」 だけ
– 作り込むことで良くなっていく部分がある。その辺りは想像力で補う必要あり。
– しっかり作るとコストがかかるのは当たり前。作業者が必要と言ったコストはもちろん必要
– ここを無視して 「ガンガンいこうぜ」 をやり過ぎると、プロジェクト後半に身動きが取れなくなる
– 確認が済んで問題なければ必ずGOサインを出すこと。
あやふやなままだと作り込みに入れない
© historia Inc. #ue4fest
Airtone では初期にプロトタイプを量産し
早い段階でゲームデザインを確立させています
© historia Inc. #ue4fest
Airtone プロトタイプ制作過程
https://youtu.be/WswQn7mT7yc
© historia Inc. #ue4fest
ここまでのまとめ
 限られた工数の中でクオリティを高めるために、"最適な完成度" を目指す
– 最適な完成度を導くために、要件定義を密に行う
 要件が定まらない場合はイメージを共有するために雑に作ってみる
– ただし “雑に作ってみる” という事について皆が理解する
© historia Inc. #ue4fest
少人数UE4開発における共通の悩み
© historia Inc. #ue4fest
カスタムビルドエンジンにする?
(エンジン改造する?)
© historia Inc. #ue4fest
カスタムビルドエンジンにおけるメリットとデメリット
 メリット
– プロジェクト固有の改造ができる(どうしてもやりたい場面は出てくる)
– バグがあったら自分たちで修正できる(報告してからの修正対応を待てない)
– 必要なログを入れたり、深い部分のデバッグがやりやすくなる
 デメリット
– プロジェクト全体の動きが遅くなる(エンジンがバージョン管理され、手軽さが無くなってくる)
– エンジン更新に対するマージコストが大きい
– 自分たちが入れた改造によるエンバグの可能性
© historia Inc. #ue4fest
Airtone に求められる品質をクリアするためには
カスタムビルドエンジンにしないという選択肢は難しい
© historia Inc. #ue4fest
ただし Airtone のエンジニアは 4人 のみ
© historia Inc. #ue4fest
Airtone におけるエンジニアの大まかな分担
原
スケジュール管理 / ツール全般 / システム
プラットフォーム対応 / 最適化
N さん システム / 演出 / シェーダー
K くん UI全般 / SE組み込み / Jenkins管理
E くん ヘルプ対応 / チャートデザイン兼任
少人数だからこそ、それぞれにかかる負担は大きい…
© historia Inc. #ue4fest
開発期間全体を通して、エンジンの保守に
工数を割ける程の余裕はない
↓
できるだけ移行時期を後ろに持っていきたい
© historia Inc. #ue4fest
カスタムビルドエンジンへの移行を遅らせるために
 カスタムビルドエンジンへの移行予定日を決める
– Airtone の場合は規模感を考慮し、オールインの2ヶ月前を目安に予定を立てた
 マージコストを極力減らせるように進める
– カスタムビルドエンジンに移行した後は、基本的にエンジンのバージョンアップは行わない
– どうしても必要なパッチは随時当てる
 プレビュー版で公開された新機能の検証は捨てブランチで
– 捨てブランチで効果を確認し、結果次第で移行予定日を調整する
© historia Inc. #ue4fest
カスタムビルドエンジンへの移行を遅らせるために
諦めなければいけない部分もある
(絵作りにおける抜本的な改修はできないとか…)
↓
これもチームで検討して "最適な完成度" を目指す
© historia Inc. #ue4fest
ここまでのまとめ
 カスタムビルドエンジンを使うメリット / デメリットを理解する
 少人数開発で保守コストを払えないなら、できるだけ移行時期を遅らせる
– マージコストを極力減らす運用を心掛ける
 それによってできない部分は諦める
– 諦めて良い部分かどうかはチームと相談
© historia Inc. #ue4fest
ここからは、もう少し具体的な事例として
Airtoneで実装した機能やツールをご紹介します
© historia Inc. #ue4fest
ここでも重要なのは
"最適な完成度" を目指す
ということ
© historia Inc. #ue4fest
なるべく工数を減らしつつ
作品としてのクオリティを出したい
↓
ツール整備
プロシージャル生成
© historia Inc. #ue4fest
チャートエディタ
© historia Inc. #ue4fest
Airtone におけるチャートデザイン作業
© historia Inc. #ue4fest
1.複数種類のノーツを配置(ここだけは普通のリズムゲームと同じ)
© historia Inc. #ue4fest
2.ジェットコースターのように、コース自体が3D空間上で曲がる
© historia Inc. #ue4fest
3.コース上には5本のレーンが存在し、それぞれが円周上で移動する
© historia Inc. #ue4fest
4.トンネルに入ると、レーンが円周上ではなく自由に動く
© historia Inc. #ue4fest
5.コース周辺に曲のリズムに合わせたエフェクトを発生させる
© historia Inc. #ue4fest
普通のリズムゲームよりも明らかに作業量が多い
© historia Inc. #ue4fest
専用のチャートエディタを作って
開発効率を上げよう
© historia Inc. #ue4fest
要件定義
 チャートデザイナーからの要望
– タイムライン上にキーを打ち、ノーツのタイミング調整や演出を入れていきたい
– できれば MIDI エディタのようなインターフェースでコピペ等は使えるようにしたい
– 作業内容は即時画面上に反映され、簡単にビジュアル面のプレビューをしたい
– プレビューで確認した後、実際にプレイ確認するまでのフローを確立したい
– 演出は同じIDで指定するが、ステージを変えた時にステージに合った演出が出てほしい
© historia Inc. #ue4fest
要件定義
 アーティストからの要望
– コースの周りやステージ全体に発生する演出はアーティストが実装するが、
タイミングはチャートによって変わるのでチャートデザイナーに任せたい
– チャートが調整された後に、アーティストが調整をかけなければいけないフローだと辛い
© historia Inc. #ue4fest
Airtone チャートエディタ
https://youtu.be/3kZvOnLJfi8
© historia Inc. #ue4fest
実装内容
 シーケンサーを専用チャートエディタとして改造
– キーのコピペやスナップ等、シーケンサーの標準機能はほぼ使える
– MIDIエディタのように、目盛のハイライトやキーボードでの打ち込みに対応
– シーケンサーの関連モジュールをそのままプロジェクト側にコピーすることで、
エンジン改造を回避(シーケンサーとしてのバージョンアップは必要無いと判断)
© historia Inc. #ue4fest
実装内容
 タイムライン上に構築された内容はViewport上にリアルタイム反映
– スプラインとノーツのメッシュを用いた最低限のプレビュー機能を提供
– Viewportで使っているカメラを乗っ取り、実際の見た目に近付ける
 演出トリガー用にアセット指定のイベントトラックを新規に実装
– トリガーの配置はチャートデザイナー、トリガーの内容はアーティストが担当
© historia Inc. #ue4fest
これを使って Airtone では 約100チャート を実装
(チャートデザイナーの皆さん、お疲れ様でした)
© historia Inc. #ue4fest
チャートエディタ完成までの道のりを
もう少し掘り下げてみます
© historia Inc. #ue4fest
チャートエディタ完成までの流れ
7月
• プロジェクト発足
• プロトタイプを量産しつつ、ゲームデザインを模索
8月
• 1曲通して遊べるプロトタイプの完成
• Excel / MIDI からチャートを作る簡易的な仕組みの構築
9月
• ノーツ全種実装
• チャートツール仕様策定
10月 • チャートツール制作開始
11月 • チャートツールを使ったチャート制作開始
12月 • チャートツールを使ったチャート制作に完全移行
© historia Inc. #ue4fest
8月にはもうプロトタイプが動作している必要がある
↓
そこまでにチャートエディタが完成するはずもないので
“とりあえず打ち込むことはできる” レベルの簡易ツールを用意
© historia Inc. #ue4fest
ゲームデザインが定まらないまま
豪華なツールを作るのはリスクが高い
簡易的なツールでお茶を濁すのは大事
© historia Inc. #ue4fest
工数と効果が見合わなかったため、諦めた部分
 エディット時の完璧な安定性
– UE4.13時点でのシーケンサーに潜在するバグらしき挙動には目をつむった
– ランタイムでの安定性が高ければ問題無し
 演出(エフェクト)のリアルタイムプレビュー
– そもそもスプライン自体が簡易的な表示だったため、
エフェクトを含めた演出の完全なプレビューは意味が無いと判断
 各レーンの曲線が歪なところが散見される
– 計算でやる以上、思い描く完璧な曲がり方にはならない(ある程度でOK)
© historia Inc. #ue4fest
作品の根幹部分であるため
色々あったけど概ね良かった
© historia Inc. #ue4fest
今だから思う、「もっと良く出来たのでは?」
 サブトラック機能(パターンのプリセット化)
– 同じ曲ではチャートレベルが変わってもノーツ配置、演出が共通なことが多い
– サブトラックを作れるようにしてプリセット化できたらもっと効率化できたかも
 評価基準の可視化
– 複数人で作業する上で、クオリティの統一が大きなコストとなった
– 出来上がったチャートの良し悪し確認コストを減らすために、
評価の手助けとなる評価基準を収集できる仕組みを検討した方が良かったかも
(ノーツ密度、コースの曲げ具合、エフェクトとノーツの重なり、etc…)
© historia Inc. #ue4fest
プロシージャルメッシュの活用
※画像貼る
プロシージャルメッシュの活用
© historia Inc. #ue4fest
Airtone では、いくつかの演出を
プロシージャルメッシュ で作っています
© historia Inc. #ue4fest
© historia Inc. #ue4fest
各種レーンに関してはもちろんですが
その他にもあるので一例をご紹介
© historia Inc. #ue4fest
アーティスト要望
正三角形だけで作られた球が、特定の位置から
徐々に三角形が縮んで壊れていく演出を入れたい
© historia Inc. #ue4fest
Airtone プロシージャルメッシュ活用事例
https://youtu.be/icNy8c9FcKU
© historia Inc. #ue4fest
プロシージャルメッシュで 正20面体(Geodesic Dome)を生成
更に、任意の数で三角形を分割できるように対応
(ConstructionScript でプレビュー可能)
分割
© historia Inc. #ue4fest
三角形が縮む演出は 頂点アニメーション で対応
基準位置や移動方向、移動量は
Normal や VertexColor をバッファとして使用
© historia Inc. #ue4fest
プロシージャルメッシュを活用することの利点
 アーティストが用意するには手間暇がかかる演出の工数を削減できる
 ConstructionScript と連携することで柔軟に形状を変化させることが可能
 VertexColor 等をバッファ代わりにして任意のパラメータをマテリアルで使用できる
© historia Inc. #ue4fest
音と演出の同期
音と演出の同期
© historia Inc. #ue4fest
リズムゲームの醍醐味
音に合わせた背景演出
Airtone 音と演出の同期
https://youtu.be/Wtjdd5LmF6A
© historia Inc. #ue4fest
音と同期して背景が動いているだけでも
それっぽく見える
© historia Inc. #ue4fest
Airtone で使われている、音と同期した演出
1. 1拍 / 2拍 / 4拍 毎に背景がリズム良く上下に動く
– ほとんどの背景がこれで頂点アニメーションしている
2. 各種アニメーションやモーショングラフィックスの速度がBPMに合わせて変動する
– リズムに合わせて動くと気持ち良い
3. 音の周波数からアニメーションを生成する
– スペクトラムアナライザを Wwise プラグインとして用意
– 音のアタックを取ってエフェクトを出したり
© historia Inc. #ue4fest
音に関するパラメータを受け取りたい
↓
Wwise からコールバックで受け取る
Wwise プラグインを作る
© historia Inc. #ue4fest
音のパラメータに合わせて世界全体を動かしたい
↓
マテリアルパラメータコレクションが大活躍
(プロパティを設定する場所が集約される)
© historia Inc. #ue4fest
Wwise
音のパラメータをコールバック通知
マテリアルパラメータコレクション
背景マテリアルA
各種マテリアル
背景マテリアルB 背景マテリアルC
背景マテリアルD 背景マテリアルE 背景マテリアルF
© historia Inc. #ue4fest
リップシンク
© historia Inc. #ue4fest
Airtone のヒロイン “ネオン” は
フルボイス & リップアニメーション 対応
© historia Inc. #ue4fest
リップアニメーションは手付け?
© historia Inc. #ue4fest
アーティストが死んじゃう
(ヾノ・∀・`)ムリムリ
© historia Inc. #ue4fest
フェイシャルキャプチャー?
© historia Inc. #ue4fest
機材を持ってません
(ヾノ・∀・`)ムリムリ
© historia Inc. #ue4fest
母音推定?
© historia Inc. #ue4fest
音声ファイルを解析したら母音を推定できそう
© historia Inc. #ue4fest
http://tips.hecomi.com/entry/20131110/1384096497
みんな大好き “凹みTips”
© historia Inc. #ue4fest
記事より引用
1. 微小時間音声データ取り込み(WAV ファイル or Mic)
2. ハミング窓を掛けて周期波形にする(周波数高域ノイズ低減)
3. レビンソン・ダービン法で LPC(線形予測分析)係数を得る
4. 得られた係数を元にしたデジタルフィルタの周波数応答を得る
5. これが LPC スペクトル包絡線
6. 包絡線の山から1番目と2番目のフォルマント( F1、F2 )を特定
7. F1、F2 の分布から母音特定
© historia Inc. #ue4fest
要約すると、音声ファイルを解析する事で
微小区間毎に以下の情報が得られます
時間, 第1フォルマント, 第2フォルマント, ボリューム
© historia Inc. #ue4fest
解析された情報の使い方
 第1フォルマント、第2フォルマントの値から母音の推定が可能
– 第1フォルマントが 600 ~ 1400 かつ、
第2フォルマントが 900 ~ 2000 ならば 「あ」 と推定など
– これらの値は人によって変わってしまうので、論文等に載っている
サンプリング情報を参考にしつつ、ネオンの声優さんに合わせて細かく調整
 ボリュームカーブを元に、リップアニメーションのブレンドタイミングを調整
– ある程度のボリュームが無ければ口を開けない
© historia Inc. #ue4fest
Wavファイル Lipファイル
Voice2Lip コンバータ
LipCurveアセット
LipPlayerコンポーネント
インポート
ネオンアニメーションBP
LipCurve指定で再生
コールバックでフォルマント、ボリュームを通知して加算するリップアニメを指定
ネオンBP
UE4
© historia Inc. #ue4fest
これにより、ほとんどのケースで上手くアニメーションされた
更なるクオリティ向上のためには閾値の調整が必要
↓
解析された情報を可視化する仕組みを作る
© historia Inc. #ue4fest
Airtone リップシンク調整ツール
https://youtu.be/5fcxb2x5cVk
© historia Inc. #ue4fest
アーティストが閾値やアニメーションのブレンドタイミングを調整
調整
© historia Inc. #ue4fest
可視化はとても大事
© historia Inc. #ue4fest
工数と効果が見合わなかったため、諦めた部分
 完璧なリップシンク
– あくまで “推定” なので、完璧なリップシンクを目指すと調整にコストがかかる
– アニメ調なのが幸いして、完璧じゃなくても割と良く見える
 Voice2LipコンバータをUE4に組み込む(全てをUE4内で完結させる)
– 解析に使っている外部ライブラリが64bit対応されていなかった
– そもそもwavファイル用のインポーターは既にUE4にあり、
一つの拡張子に対して複数のインポーターを作るのは現状だと不可能
© historia Inc. #ue4fest
フォルマント解析に関する詳細はこちらから
 フォルマントから母音推定してリップシンクを目指してみる - 凹みTips
– http://tips.hecomi.com/entry/20131110/1384096497
 線形予測分析(LPC)-人工知能に関する断創録
– http://aidiary.hatenablog.com/entry/20120415/1334458954
© historia Inc. #ue4fest
デバッグツール
© historia Inc. #ue4fest
RHI のメモリダンプをグラフ表示
© historia Inc. #ue4fest
© historia Inc. #ue4fest
1フレーム内での SpawnActor 回数を可視化
© historia Inc. #ue4fest
© historia Inc. #ue4fest
Mip バイアス調整用テクスチャジェネレータ
© historia Inc. #ue4fest
解像度を指定しつつ、
Mip レベルによって色が違う
単色テクスチャを生成
© historia Inc. #ue4fest
© historia Inc. #ue4fest
特に VR コンテンツでは、エディタ上のプレビューと
実機で表示される Mip レベルに違いが出るので注意
© historia Inc. #ue4fest
手にアタッチされたデバッグメニュー
© historia Inc. #ue4fest
目線追従メニューだと邪魔
Vive のメニューを参考にした
© historia Inc. #ue4fest
まとめ
© historia Inc. #ue4fest
まとめ
 限られた工数の中でクオリティを高めるために、"最適な完成度" を目指す
 要件が定まらない場合はイメージを共有するために “雑に作ってみる”
 カスタムビルドエンジンを使うメリット / デメリットを理解する
 少人数開発で保守コストを払えないなら、できるだけ移行時期を遅らせる
 ツール整備、プロシージャル生成で全体のコストを削減する
© historia Inc. #ue4fest
Airtone は 2017年春 発売予定!
© historia Inc. #ue4fest
ご清聴ありがとうございました

Contenu connexe

Tendances

Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。IndieusGames
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!com044
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...エピック・ゲームズ・ジャパン Epic Games Japan
 
UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎com044
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -historia_Inc
 

Tendances (20)

カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引きカリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
 
Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。Editor Utility Widgetで色々便利にしてみた。
Editor Utility Widgetで色々便利にしてみた。
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
 
猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版猫でも分かる Control Rig UE4.25 版
猫でも分かる Control Rig UE4.25 版
 
UE4とUnrealC++について
UE4とUnrealC++についてUE4とUnrealC++について
UE4とUnrealC++について
 
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem 猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
 
UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
もっとNiagaraを楽しもう!~UE4.25での作例と解説~ (UE4 VFX Art Dive)
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
 
UE4モバイルブートキャンプ
UE4モバイルブートキャンプUE4モバイルブートキャンプ
UE4モバイルブートキャンプ
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎UE4勉強会 in 大阪 - アニメーション基礎
UE4勉強会 in 大阪 - アニメーション基礎
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介
 

En vedette

HDR Theory and practicce (JP)
HDR Theory and practicce (JP)HDR Theory and practicce (JP)
HDR Theory and practicce (JP)Hajime Uchimura
 
リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現kurosaurus
 
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」BACKBONE-studio
 
3DCGMeetup08_MayaRigSystem_mGear
3DCGMeetup08_MayaRigSystem_mGear3DCGMeetup08_MayaRigSystem_mGear
3DCGMeetup08_MayaRigSystem_mGearue_ta
 
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なことhistoria_Inc
 
第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナーMasahiko Nakamura
 
Substance勉強会 in Osaka
Substance勉強会 in OsakaSubstance勉強会 in Osaka
Substance勉強会 in OsakaAiko Shinohara
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDエピック・ゲームズ・ジャパン Epic Games Japan
 

En vedette (8)

HDR Theory and practicce (JP)
HDR Theory and practicce (JP)HDR Theory and practicce (JP)
HDR Theory and practicce (JP)
 
リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現リアルタイムレンダリングでのNPR表現
リアルタイムレンダリングでのNPR表現
 
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
CGWORLD Creative Conference 2017 「アセットの共有を円滑にするリグの作法」
 
3DCGMeetup08_MayaRigSystem_mGear
3DCGMeetup08_MayaRigSystem_mGear3DCGMeetup08_MayaRigSystem_mGear
3DCGMeetup08_MayaRigSystem_mGear
 
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
 
第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー第5回ue4ハンズオンセミナー
第5回ue4ハンズオンセミナー
 
Substance勉強会 in Osaka
Substance勉強会 in OsakaSubstance勉強会 in Osaka
Substance勉強会 in Osaka
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
 

Similaire à 少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -

Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Manato KAMEYA
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサーKaoru NAKAMURA
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会Yusuke Naka
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability SeminarVisso株式会社
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール WeinerをつかってみたMasakazu Muraoka
 
20140315 JAWS Days OpsWorks
20140315 JAWS Days OpsWorks20140315 JAWS Days OpsWorks
20140315 JAWS Days OpsWorksTeruo Adachi
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)Toru Yamaguchi
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方dena_study
 
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-Mizushima Kazuhiro
 
グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編Mitsuhiro Tanda
 
Shaping up ATOK to fit to your iPhone / iPad
Shaping up ATOK to fit to your iPhone / iPadShaping up ATOK to fit to your iPhone / iPad
Shaping up ATOK to fit to your iPhone / iPadJustSystems Corporation
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
【いまこそ】エンジニアとデザイナー【立ち上がれ】
【いまこそ】エンジニアとデザイナー【立ち上がれ】	【いまこそ】エンジニアとデザイナー【立ち上がれ】
【いまこそ】エンジニアとデザイナー【立ち上がれ】 Yuki Kuroki
 
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介![CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!エピック・ゲームズ・ジャパン Epic Games Japan
 
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦historia_Inc
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!CData Software Japan
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 

Similaire à 少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 - (20)

Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
 
内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー内蔵化、モバイル化に向かうDepthセンサー
内蔵化、モバイル化に向かうDepthセンサー
 
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
20101127 Android Usability Seminar
20101127 Android Usability Seminar20101127 Android Usability Seminar
20101127 Android Usability Seminar
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
リモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみたリモートデバッグツール Weinerをつかってみた
リモートデバッグツール Weinerをつかってみた
 
20140315 JAWS Days OpsWorks
20140315 JAWS Days OpsWorks20140315 JAWS Days OpsWorks
20140315 JAWS Days OpsWorks
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
 
DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方DeNA流cocos2d xとの付き合い方
DeNA流cocos2d xとの付き合い方
 
ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-ニコニコ超デザイン-Metro考察編-
ニコニコ超デザイン-Metro考察編-
 
グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編グリーにおけるスマホアプリ開発~HTML5編
グリーにおけるスマホアプリ開発~HTML5編
 
Shaping up ATOK to fit to your iPhone / iPad
Shaping up ATOK to fit to your iPhone / iPadShaping up ATOK to fit to your iPhone / iPad
Shaping up ATOK to fit to your iPhone / iPad
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
【いまこそ】エンジニアとデザイナー【立ち上がれ】
【いまこそ】エンジニアとデザイナー【立ち上がれ】	【いまこそ】エンジニアとデザイナー【立ち上がれ】
【いまこそ】エンジニアとデザイナー【立ち上がれ】
 
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介![CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
[CEDEC2017] 最新モバイルゲームの実例からみるUE4のモバイル向け機能・Tipsを全部まるっとご紹介!
 
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
[UNREAL FEST EAST 2017] VRゲームairtone制作事例 - VRを活かす3つのゲームデザイン的挑戦
 
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
Angular でもっとAPIファースト・もっとモダンデザインなWebアプリケーションを作ろう!
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 

Plus de historia_Inc

電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論historia_Inc
 
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~historia_Inc
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~historia_Inc
 
実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!historia_Inc
 
コンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagaraコンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagarahistoria_Inc
 
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~historia_Inc
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法historia_Inc
 
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見historia_Inc
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントhistoria_Inc
 
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』historia_Inc
 
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!historia_Inc
 
映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作historia_Inc
 
【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには? 【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには? historia_Inc
 
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルトhistoria_Inc
 
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチhistoria_Inc
 
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーションhistoria_Inc
 
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?historia_Inc
 
【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtone【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtonehistoria_Inc
 
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツhistoria_Inc
 
VR音ゲー最前線! WwiseとUE4で実現Airtone
VR音ゲー最前線! WwiseとUE4で実現AirtoneVR音ゲー最前線! WwiseとUE4で実現Airtone
VR音ゲー最前線! WwiseとUE4で実現Airtonehistoria_Inc
 

Plus de historia_Inc (20)

電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論電撃! ゲリラ的ゲームプロデュース論
電撃! ゲリラ的ゲームプロデュース論
 
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
Caligula2 フィールド開発事例 ~遊びの設計から、ゲームの世界の完成まで~
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
 
実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!実戦投入事例! Niagaraで地球の風をビジュアライズ!
実戦投入事例! Niagaraで地球の風をビジュアライズ!
 
コンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagaraコンテンツサンプルを楽しむ"超"初心者の為のNiagara
コンテンツサンプルを楽しむ"超"初心者の為のNiagara
 
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
Megascansを使った効率化と楽しい絵作り ~Cutting-Edge Test Drive制作事例~
 
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
ゲーム開発を乗りこなせ! ヒストリア流ゲーム開発マネジメント手法
 
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
【出張ヒストリア2019】Oculus Quest フリーロームVRを実現するための技術的知見
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
 
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
【出張ヒストリア2019】COLORSプロジェクトフォトグラメトリに挑戦してみた!
 
映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作映像屋さんのためのリアルタイムBG制作
映像屋さんのためのリアルタイムBG制作
 
【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには? 【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
【出張ヒストリア2018】モーションキャプチャーを取り入れるには?
 
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
【出張ヒストリア2018】Caligula Overdose 開発ワークフロー アラカルト
 
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
【出張ヒストリア2018】Caligula OverdoseでのUIデザインアプローチ
 
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
【出張ヒストリア2017】 建てる前に体験する時代到来! Enlightenを使用した建築ビジュアライゼーション
 
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
 
【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtone【出張ヒストリア2017】 Art of airtone
【出張ヒストリア2017】 Art of airtone
 
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
【出張ヒストリア2017】 想像と違ってた! VRUI作りのコツ
 
VR音ゲー最前線! WwiseとUE4で実現Airtone
VR音ゲー最前線! WwiseとUE4で実現AirtoneVR音ゲー最前線! WwiseとUE4で実現Airtone
VR音ゲー最前線! WwiseとUE4で実現Airtone
 

少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 -

  • 1. © historia Inc. #ue4fest 少人数開発でもクオリティを諦めない - エンジニア視点から見る少人数開発の極意 - historia Inc. 原 龍
  • 2. © historia Inc. #ue4fest 登壇者紹介  Airtone(AMG GAMES 様) – Lead Engineer  過去作 – アーガイルシフト(バンダイナムコエンターテインメント 様)  Lead Engineer – ランページ ランド ランカーズ(スクウェア・エニックス 様)  Lead Server Engineer  Client Engineer  コミュニティ活動 – NekoNekoOnline プラグインの WebApi 機能における設計思想 & 実装Tips  http://hogetatu.hatenablog.com/entry/2016/12/01/000000 – GameplayDebugger をプロジェクト用にカスタマイズして利用する  http://hogetatu.hatenablog.com/entry/2016/12/03/002946
  • 3. © historia Inc. #ue4fest 今回ご紹介するもの
  • 4. © historia Inc. #ue4fest 弊社で開発中の “Airtone” を実例に挙げ 少人数開発における開発の流れ 効率化のために実装した機能 をご紹介します
  • 5. © historia Inc. #ue4fest アジェンダ  Airtone のご紹介  少人数開発で必要なもの  Airtone で実装した機能やツール
  • 6. © historia Inc. #ue4fest まずは “Airtone” のご紹介
  • 7. © historia Inc. #ue4fest AIRTONE VR Gameplay Movie I promise you Yasushi Asada feat Mary https://youtu.be/jShjM3ivg7Y
  • 8. © historia Inc. #ue4fest ジャンル エアーリズムアクション(VR) ハードウェア / プラットフォーム • Oculus Rift / Oculus Store • Vive / Steam エンジン / ミドルウェア • Unreal Engine 4(UE 4.12 → 4.14) • Wwise 開発期間 約10ヵ月 開発体制(ピーク時) • プロデューサー & ディレクター × 1 • ゲームデザイナー × 2 • エンジニア × 4 • アーティスト × 3 • UIデザイナー × 1 • サウンド & チャートデザイナー × 3 (社外)
  • 9. © historia Inc. #ue4fest 0 2 4 6 8 10 12 14 16 7月 8月 9月 10月 11月 12月 1月 2月 3月 人月 ディレクター ゲームデザイナー エンジニア アーティスト UIデザイナー サウンド  7月 – プロジェクト発足 – プロトタイプ量産  8月 – 1曲通しプロトタイプ完成  11月 – α 版完成  2月 – β 版完成
  • 10. © historia Inc. #ue4fest Airtone は 10時間以上遊べるボリュームのVRリズムゲーム です それを 4人 から始め、最終的に 14人 で 10ヶ月 という期間で作ってます (控えめに言っても少人数だったなと思います)
  • 11. © historia Inc. #ue4fest 今回はこのような少人数開発を どのように実現したかについてご紹介します
  • 12. © historia Inc. #ue4fest 少人数開発で必要なもの
  • 13. © historia Inc. #ue4fest 常に "最適な完成度" を目指すこと
  • 14. © historia Inc. #ue4fest 一例としてツール制作について掘り下げてみます
  • 15. © historia Inc. #ue4fest ツール制作における工数と効果の関係 工数 効果
  • 16. © historia Inc. #ue4fest ツール制作における工数と効果の関係 工数 効果 ツールとして実運用に耐えうる ツールとして機能し始める ぼくがつくったさいきょうのツール
  • 17. © historia Inc. #ue4fest ツール制作における工数と効果の関係 工数 効果 ツールとして実運用に耐えうる ツールとして機能し始める ぼくがつくったさいきょうのツール それともこの辺でも大丈夫? 今回必要なのはこの辺?
  • 18. © historia Inc. #ue4fest クオリティはできるだけ上げたい でも工数は無限ではない ↓ 作るものに応じた “最適な完成度” を目指す
  • 19. © historia Inc. #ue4fest "最適な完成度" を導き出すために
  • 20. © historia Inc. #ue4fest 何が必要とされているのかを明確にする
  • 21. © historia Inc. #ue4fest 要件定義は大事  何が求められているのか、実際にそれを必要としている人に直接確認する  この相談は十分に時間をとる。考えうる可能性の話もする。想像力は大事  その上で 「やらなければいけないこと」 と 「できると良いこと」 を決める
  • 22. © historia Inc. #ue4fest 完成形のイメージが固まらない場合は、とりあえず “雑に作ってみる”  完成形を正確にイメージでき、それを言語化できる人はあまりいない  何かそれっぽいものを作って出してみると話し合いが短くて済む  複数人で 「誰もよくわかっていない何か」 を机上で考えている時間は無駄
  • 23. © historia Inc. #ue4fest “雑に作ってみる” 時にこそ、UE4の真価を発揮できる とにかく速く、それっぽく、プロトタイプが作れる
  • 24. © historia Inc. #ue4fest ただし、これは高確率で地雷を踏みます
  • 25. © historia Inc. #ue4fest 地雷の要因  雑に作ったことが忘れ去られる – 「完成している」 と思っていた機能がプロトタイプコードで、 実は見た目だけだったという事がプロジェクト後半に発覚するのは割とよくある話 – プロジェクト後半でバグが出たり、機能拡張時の対応コストが高くなって辛いやつ  “とりあえず” で使いまわしたアセットが残り続けて想定外の依存関係を生む – プロジェクト後半に最適化等を行うためにアセットを整理しようとした時に、 様々なところに依存が発生していて手が付けられない状態になっていたり…
  • 26. © historia Inc. #ue4fest “雑に作ってみる” を 皆が理解する 事が大事
  • 27. © historia Inc. #ue4fest “雑に作ってみる” ということ(エンジニア / アーティスト編)  「雑でもいいから見せる事の重要性」 を理解する – 全てを言語化するのは難しいし、言語化してもわかりにくいものは可視化するしかない – 相手が自分の感覚を正確に理解してくれるという考えは幻想。諦めて手を動かそう – だからと言って作り込み過ぎると、ボツになった時に工数的にも精神的にも辛いから雑で良い – 確認が済んだら、相応のコストを払って作り込む期間を作るのは必須
  • 28. © historia Inc. #ue4fest “雑に作ってみる” ということ(ディレクター / ゲームデザイナー編)  「雑に作られていること」 を理解する – 目の前にあるものは完成されたものではない。あくまで 「形にしてみた」 だけ – 作り込むことで良くなっていく部分がある。その辺りは想像力で補う必要あり。 – しっかり作るとコストがかかるのは当たり前。作業者が必要と言ったコストはもちろん必要 – ここを無視して 「ガンガンいこうぜ」 をやり過ぎると、プロジェクト後半に身動きが取れなくなる – 確認が済んで問題なければ必ずGOサインを出すこと。 あやふやなままだと作り込みに入れない
  • 29. © historia Inc. #ue4fest Airtone では初期にプロトタイプを量産し 早い段階でゲームデザインを確立させています
  • 30. © historia Inc. #ue4fest Airtone プロトタイプ制作過程 https://youtu.be/WswQn7mT7yc
  • 31. © historia Inc. #ue4fest ここまでのまとめ  限られた工数の中でクオリティを高めるために、"最適な完成度" を目指す – 最適な完成度を導くために、要件定義を密に行う  要件が定まらない場合はイメージを共有するために雑に作ってみる – ただし “雑に作ってみる” という事について皆が理解する
  • 32. © historia Inc. #ue4fest 少人数UE4開発における共通の悩み
  • 33. © historia Inc. #ue4fest カスタムビルドエンジンにする? (エンジン改造する?)
  • 34. © historia Inc. #ue4fest カスタムビルドエンジンにおけるメリットとデメリット  メリット – プロジェクト固有の改造ができる(どうしてもやりたい場面は出てくる) – バグがあったら自分たちで修正できる(報告してからの修正対応を待てない) – 必要なログを入れたり、深い部分のデバッグがやりやすくなる  デメリット – プロジェクト全体の動きが遅くなる(エンジンがバージョン管理され、手軽さが無くなってくる) – エンジン更新に対するマージコストが大きい – 自分たちが入れた改造によるエンバグの可能性
  • 35. © historia Inc. #ue4fest Airtone に求められる品質をクリアするためには カスタムビルドエンジンにしないという選択肢は難しい
  • 36. © historia Inc. #ue4fest ただし Airtone のエンジニアは 4人 のみ
  • 37. © historia Inc. #ue4fest Airtone におけるエンジニアの大まかな分担 原 スケジュール管理 / ツール全般 / システム プラットフォーム対応 / 最適化 N さん システム / 演出 / シェーダー K くん UI全般 / SE組み込み / Jenkins管理 E くん ヘルプ対応 / チャートデザイン兼任 少人数だからこそ、それぞれにかかる負担は大きい…
  • 38. © historia Inc. #ue4fest 開発期間全体を通して、エンジンの保守に 工数を割ける程の余裕はない ↓ できるだけ移行時期を後ろに持っていきたい
  • 39. © historia Inc. #ue4fest カスタムビルドエンジンへの移行を遅らせるために  カスタムビルドエンジンへの移行予定日を決める – Airtone の場合は規模感を考慮し、オールインの2ヶ月前を目安に予定を立てた  マージコストを極力減らせるように進める – カスタムビルドエンジンに移行した後は、基本的にエンジンのバージョンアップは行わない – どうしても必要なパッチは随時当てる  プレビュー版で公開された新機能の検証は捨てブランチで – 捨てブランチで効果を確認し、結果次第で移行予定日を調整する
  • 40. © historia Inc. #ue4fest カスタムビルドエンジンへの移行を遅らせるために 諦めなければいけない部分もある (絵作りにおける抜本的な改修はできないとか…) ↓ これもチームで検討して "最適な完成度" を目指す
  • 41. © historia Inc. #ue4fest ここまでのまとめ  カスタムビルドエンジンを使うメリット / デメリットを理解する  少人数開発で保守コストを払えないなら、できるだけ移行時期を遅らせる – マージコストを極力減らす運用を心掛ける  それによってできない部分は諦める – 諦めて良い部分かどうかはチームと相談
  • 42. © historia Inc. #ue4fest ここからは、もう少し具体的な事例として Airtoneで実装した機能やツールをご紹介します
  • 43. © historia Inc. #ue4fest ここでも重要なのは "最適な完成度" を目指す ということ
  • 44. © historia Inc. #ue4fest なるべく工数を減らしつつ 作品としてのクオリティを出したい ↓ ツール整備 プロシージャル生成
  • 45. © historia Inc. #ue4fest チャートエディタ
  • 46. © historia Inc. #ue4fest Airtone におけるチャートデザイン作業
  • 47. © historia Inc. #ue4fest 1.複数種類のノーツを配置(ここだけは普通のリズムゲームと同じ)
  • 48. © historia Inc. #ue4fest 2.ジェットコースターのように、コース自体が3D空間上で曲がる
  • 49. © historia Inc. #ue4fest 3.コース上には5本のレーンが存在し、それぞれが円周上で移動する
  • 50. © historia Inc. #ue4fest 4.トンネルに入ると、レーンが円周上ではなく自由に動く
  • 51. © historia Inc. #ue4fest 5.コース周辺に曲のリズムに合わせたエフェクトを発生させる
  • 52. © historia Inc. #ue4fest 普通のリズムゲームよりも明らかに作業量が多い
  • 53. © historia Inc. #ue4fest 専用のチャートエディタを作って 開発効率を上げよう
  • 54. © historia Inc. #ue4fest 要件定義  チャートデザイナーからの要望 – タイムライン上にキーを打ち、ノーツのタイミング調整や演出を入れていきたい – できれば MIDI エディタのようなインターフェースでコピペ等は使えるようにしたい – 作業内容は即時画面上に反映され、簡単にビジュアル面のプレビューをしたい – プレビューで確認した後、実際にプレイ確認するまでのフローを確立したい – 演出は同じIDで指定するが、ステージを変えた時にステージに合った演出が出てほしい
  • 55. © historia Inc. #ue4fest 要件定義  アーティストからの要望 – コースの周りやステージ全体に発生する演出はアーティストが実装するが、 タイミングはチャートによって変わるのでチャートデザイナーに任せたい – チャートが調整された後に、アーティストが調整をかけなければいけないフローだと辛い
  • 56. © historia Inc. #ue4fest Airtone チャートエディタ https://youtu.be/3kZvOnLJfi8
  • 57. © historia Inc. #ue4fest 実装内容  シーケンサーを専用チャートエディタとして改造 – キーのコピペやスナップ等、シーケンサーの標準機能はほぼ使える – MIDIエディタのように、目盛のハイライトやキーボードでの打ち込みに対応 – シーケンサーの関連モジュールをそのままプロジェクト側にコピーすることで、 エンジン改造を回避(シーケンサーとしてのバージョンアップは必要無いと判断)
  • 58. © historia Inc. #ue4fest 実装内容  タイムライン上に構築された内容はViewport上にリアルタイム反映 – スプラインとノーツのメッシュを用いた最低限のプレビュー機能を提供 – Viewportで使っているカメラを乗っ取り、実際の見た目に近付ける  演出トリガー用にアセット指定のイベントトラックを新規に実装 – トリガーの配置はチャートデザイナー、トリガーの内容はアーティストが担当
  • 59. © historia Inc. #ue4fest これを使って Airtone では 約100チャート を実装 (チャートデザイナーの皆さん、お疲れ様でした)
  • 60. © historia Inc. #ue4fest チャートエディタ完成までの道のりを もう少し掘り下げてみます
  • 61. © historia Inc. #ue4fest チャートエディタ完成までの流れ 7月 • プロジェクト発足 • プロトタイプを量産しつつ、ゲームデザインを模索 8月 • 1曲通して遊べるプロトタイプの完成 • Excel / MIDI からチャートを作る簡易的な仕組みの構築 9月 • ノーツ全種実装 • チャートツール仕様策定 10月 • チャートツール制作開始 11月 • チャートツールを使ったチャート制作開始 12月 • チャートツールを使ったチャート制作に完全移行
  • 62. © historia Inc. #ue4fest 8月にはもうプロトタイプが動作している必要がある ↓ そこまでにチャートエディタが完成するはずもないので “とりあえず打ち込むことはできる” レベルの簡易ツールを用意
  • 63. © historia Inc. #ue4fest ゲームデザインが定まらないまま 豪華なツールを作るのはリスクが高い 簡易的なツールでお茶を濁すのは大事
  • 64. © historia Inc. #ue4fest 工数と効果が見合わなかったため、諦めた部分  エディット時の完璧な安定性 – UE4.13時点でのシーケンサーに潜在するバグらしき挙動には目をつむった – ランタイムでの安定性が高ければ問題無し  演出(エフェクト)のリアルタイムプレビュー – そもそもスプライン自体が簡易的な表示だったため、 エフェクトを含めた演出の完全なプレビューは意味が無いと判断  各レーンの曲線が歪なところが散見される – 計算でやる以上、思い描く完璧な曲がり方にはならない(ある程度でOK)
  • 65. © historia Inc. #ue4fest 作品の根幹部分であるため 色々あったけど概ね良かった
  • 66. © historia Inc. #ue4fest 今だから思う、「もっと良く出来たのでは?」  サブトラック機能(パターンのプリセット化) – 同じ曲ではチャートレベルが変わってもノーツ配置、演出が共通なことが多い – サブトラックを作れるようにしてプリセット化できたらもっと効率化できたかも  評価基準の可視化 – 複数人で作業する上で、クオリティの統一が大きなコストとなった – 出来上がったチャートの良し悪し確認コストを減らすために、 評価の手助けとなる評価基準を収集できる仕組みを検討した方が良かったかも (ノーツ密度、コースの曲げ具合、エフェクトとノーツの重なり、etc…)
  • 67. © historia Inc. #ue4fest プロシージャルメッシュの活用 ※画像貼る プロシージャルメッシュの活用
  • 68. © historia Inc. #ue4fest Airtone では、いくつかの演出を プロシージャルメッシュ で作っています
  • 69. © historia Inc. #ue4fest
  • 70. © historia Inc. #ue4fest 各種レーンに関してはもちろんですが その他にもあるので一例をご紹介
  • 71. © historia Inc. #ue4fest アーティスト要望 正三角形だけで作られた球が、特定の位置から 徐々に三角形が縮んで壊れていく演出を入れたい
  • 72. © historia Inc. #ue4fest Airtone プロシージャルメッシュ活用事例 https://youtu.be/icNy8c9FcKU
  • 73. © historia Inc. #ue4fest プロシージャルメッシュで 正20面体(Geodesic Dome)を生成 更に、任意の数で三角形を分割できるように対応 (ConstructionScript でプレビュー可能) 分割
  • 74. © historia Inc. #ue4fest 三角形が縮む演出は 頂点アニメーション で対応 基準位置や移動方向、移動量は Normal や VertexColor をバッファとして使用
  • 75. © historia Inc. #ue4fest プロシージャルメッシュを活用することの利点  アーティストが用意するには手間暇がかかる演出の工数を削減できる  ConstructionScript と連携することで柔軟に形状を変化させることが可能  VertexColor 等をバッファ代わりにして任意のパラメータをマテリアルで使用できる
  • 76. © historia Inc. #ue4fest 音と演出の同期 音と演出の同期
  • 77. © historia Inc. #ue4fest リズムゲームの醍醐味 音に合わせた背景演出
  • 79. © historia Inc. #ue4fest 音と同期して背景が動いているだけでも それっぽく見える
  • 80. © historia Inc. #ue4fest Airtone で使われている、音と同期した演出 1. 1拍 / 2拍 / 4拍 毎に背景がリズム良く上下に動く – ほとんどの背景がこれで頂点アニメーションしている 2. 各種アニメーションやモーショングラフィックスの速度がBPMに合わせて変動する – リズムに合わせて動くと気持ち良い 3. 音の周波数からアニメーションを生成する – スペクトラムアナライザを Wwise プラグインとして用意 – 音のアタックを取ってエフェクトを出したり
  • 81. © historia Inc. #ue4fest 音に関するパラメータを受け取りたい ↓ Wwise からコールバックで受け取る Wwise プラグインを作る
  • 82. © historia Inc. #ue4fest 音のパラメータに合わせて世界全体を動かしたい ↓ マテリアルパラメータコレクションが大活躍 (プロパティを設定する場所が集約される)
  • 83. © historia Inc. #ue4fest Wwise 音のパラメータをコールバック通知 マテリアルパラメータコレクション 背景マテリアルA 各種マテリアル 背景マテリアルB 背景マテリアルC 背景マテリアルD 背景マテリアルE 背景マテリアルF
  • 84. © historia Inc. #ue4fest リップシンク
  • 85. © historia Inc. #ue4fest Airtone のヒロイン “ネオン” は フルボイス & リップアニメーション 対応
  • 86. © historia Inc. #ue4fest リップアニメーションは手付け?
  • 87. © historia Inc. #ue4fest アーティストが死んじゃう (ヾノ・∀・`)ムリムリ
  • 88. © historia Inc. #ue4fest フェイシャルキャプチャー?
  • 89. © historia Inc. #ue4fest 機材を持ってません (ヾノ・∀・`)ムリムリ
  • 90. © historia Inc. #ue4fest 母音推定?
  • 91. © historia Inc. #ue4fest 音声ファイルを解析したら母音を推定できそう
  • 92. © historia Inc. #ue4fest http://tips.hecomi.com/entry/20131110/1384096497 みんな大好き “凹みTips”
  • 93. © historia Inc. #ue4fest 記事より引用 1. 微小時間音声データ取り込み(WAV ファイル or Mic) 2. ハミング窓を掛けて周期波形にする(周波数高域ノイズ低減) 3. レビンソン・ダービン法で LPC(線形予測分析)係数を得る 4. 得られた係数を元にしたデジタルフィルタの周波数応答を得る 5. これが LPC スペクトル包絡線 6. 包絡線の山から1番目と2番目のフォルマント( F1、F2 )を特定 7. F1、F2 の分布から母音特定
  • 94. © historia Inc. #ue4fest 要約すると、音声ファイルを解析する事で 微小区間毎に以下の情報が得られます 時間, 第1フォルマント, 第2フォルマント, ボリューム
  • 95. © historia Inc. #ue4fest 解析された情報の使い方  第1フォルマント、第2フォルマントの値から母音の推定が可能 – 第1フォルマントが 600 ~ 1400 かつ、 第2フォルマントが 900 ~ 2000 ならば 「あ」 と推定など – これらの値は人によって変わってしまうので、論文等に載っている サンプリング情報を参考にしつつ、ネオンの声優さんに合わせて細かく調整  ボリュームカーブを元に、リップアニメーションのブレンドタイミングを調整 – ある程度のボリュームが無ければ口を開けない
  • 96. © historia Inc. #ue4fest Wavファイル Lipファイル Voice2Lip コンバータ LipCurveアセット LipPlayerコンポーネント インポート ネオンアニメーションBP LipCurve指定で再生 コールバックでフォルマント、ボリュームを通知して加算するリップアニメを指定 ネオンBP UE4
  • 97. © historia Inc. #ue4fest これにより、ほとんどのケースで上手くアニメーションされた 更なるクオリティ向上のためには閾値の調整が必要 ↓ 解析された情報を可視化する仕組みを作る
  • 98. © historia Inc. #ue4fest Airtone リップシンク調整ツール https://youtu.be/5fcxb2x5cVk
  • 99. © historia Inc. #ue4fest アーティストが閾値やアニメーションのブレンドタイミングを調整 調整
  • 100. © historia Inc. #ue4fest 可視化はとても大事
  • 101. © historia Inc. #ue4fest 工数と効果が見合わなかったため、諦めた部分  完璧なリップシンク – あくまで “推定” なので、完璧なリップシンクを目指すと調整にコストがかかる – アニメ調なのが幸いして、完璧じゃなくても割と良く見える  Voice2LipコンバータをUE4に組み込む(全てをUE4内で完結させる) – 解析に使っている外部ライブラリが64bit対応されていなかった – そもそもwavファイル用のインポーターは既にUE4にあり、 一つの拡張子に対して複数のインポーターを作るのは現状だと不可能
  • 102. © historia Inc. #ue4fest フォルマント解析に関する詳細はこちらから  フォルマントから母音推定してリップシンクを目指してみる - 凹みTips – http://tips.hecomi.com/entry/20131110/1384096497  線形予測分析(LPC)-人工知能に関する断創録 – http://aidiary.hatenablog.com/entry/20120415/1334458954
  • 103. © historia Inc. #ue4fest デバッグツール
  • 104. © historia Inc. #ue4fest RHI のメモリダンプをグラフ表示
  • 105. © historia Inc. #ue4fest
  • 106. © historia Inc. #ue4fest 1フレーム内での SpawnActor 回数を可視化
  • 107. © historia Inc. #ue4fest
  • 108. © historia Inc. #ue4fest Mip バイアス調整用テクスチャジェネレータ
  • 109. © historia Inc. #ue4fest 解像度を指定しつつ、 Mip レベルによって色が違う 単色テクスチャを生成
  • 110. © historia Inc. #ue4fest
  • 111. © historia Inc. #ue4fest 特に VR コンテンツでは、エディタ上のプレビューと 実機で表示される Mip レベルに違いが出るので注意
  • 112. © historia Inc. #ue4fest 手にアタッチされたデバッグメニュー
  • 113. © historia Inc. #ue4fest 目線追従メニューだと邪魔 Vive のメニューを参考にした
  • 114. © historia Inc. #ue4fest まとめ
  • 115. © historia Inc. #ue4fest まとめ  限られた工数の中でクオリティを高めるために、"最適な完成度" を目指す  要件が定まらない場合はイメージを共有するために “雑に作ってみる”  カスタムビルドエンジンを使うメリット / デメリットを理解する  少人数開発で保守コストを払えないなら、できるだけ移行時期を遅らせる  ツール整備、プロシージャル生成で全体のコストを削減する
  • 116. © historia Inc. #ue4fest Airtone は 2017年春 発売予定!
  • 117. © historia Inc. #ue4fest ご清聴ありがとうございました