SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
「さくらのINFRAWARS」
で利用されている技術
2018.06.29
自己紹介
さくらインターネット(2008年入社)
技術本部アプリケーショングループ 古川健太郎
@townewgokgok
好きなゲーム
PENGO
GALAGA
MARIOBROS.
BOMBJACK
FANTASYZONE etc.
さくらでのフロントエンド経験
2010年レンタルサーバ新ウェブメール・新ファイルマネージャ
さくらでのフロントエンド経験
2013年さくらのクラウドマップ機能
今はクラウドのバックエンドやってます(2011年~)
さくらのインフラウォーズ
私のゲーム開発経験
au向けケータイゲーム開発(2004~2008、C++/BREW)
音楽・効果音制作(主にFM音源)
ドット絵は枠線引いてた程度
私が今回やったこと
ブラウザゲーム開発(初挑戦)
ドット絵全般(タイトルロゴを除く)
レベルデザイン
さくらのINFRAWARSで利用されている技術
描画エンジン
スプライト
タイルマップ
フォント
シェーダ
サウンド
入力
暗号化セーブデータ
スクショ付きシェア機能
乱数
ジェネレータ
描画エンジン
PixiJS
公式http://www.pixijs.com/
「ゲーム開発フレームワーク」ではない
ただの描画エンジンなので習得・導入が楽
シェーダも書ける
PixiJSSoundみたいな描画以外のプラグインもある
RPGツクールMVhttp://tkool.jp/mv/でも使用されているとのこと
PixiJSの主な仕事
生で触ると面倒なWebGLやCanvasを簡単に扱えるAPIを提供
const app = new PIXI.Application(256, 224)
document.body.appendChild(app.view)
const sprite = PIXI.Sprite.fromImage('aichan.png')
sprite.x = app.screen.width / 2
sprite.y = app.screen.height / 2
app.stage.addChild(sprite)
WebGLが無効な環境ではCanvasにフォールバック
スプライト画像等のアセット管理 etc.
生Canvasの場合
function init() {
キャラクタなどの初期状態を設定
// 画面描画に関してやることはない
}
function tick() {
入力処理など
キャラクタの状態や座標を再計算
}
function repaint() {
Canvas全体をクリア
背景を描く
キャラクタを現在の座標に描く
スコアを描く
}
生Canvasとの違い
PixiJSの場合
function init() {
キャラクタなどの初期状態を設定
描画オブジェクトの階層構造を設定
}
function tick() {
入力処理など
キャラクタの状態や座標を再計算
}
function repaint() {
// 通常やることはない
// 描画はPixiJSがやってくれる
}
昔のFlashみたいなもの(普通のDOM操作に近い)
今回は生Canvasで書かれたコードをPixiJS仕様に書き換えた
スプライト
スプライトエディタ
Aseprite
公式https://www.aseprite.org/
読み方は /eɪs-praɪt/
オープンソース
Steamで購入→¥1,480安い!
個人利用・貢献目的で自前ビルド→¥0
操作系統がAdobeっぽくて分かりやすい
アニメーション作りやすい
マップチップ作成には向いてない
CLIからバッチ機能利用可(スライス出力等)
https://www.aseprite.org/docs/cli/
aseprite -b sprites.ase --save-as {layer}-{slice}-{frame}.png
spritesheet‑js
npmhttps://www.npmjs.com/package/spritesheet‑js
複数画像を1枚に結合、PixiJSアセットローダ用のJSONを同時出力
JSON中にオリジナルのファイル名をキーとする座標の辞書
→テクスチャの呼び出し部が透過的に書ける
PIXI.loader.add('aichan.png') // バラでロード
PIXI.loader.add('boss.png')
// ...
const texture = PIXI.utils.TextureCache['aichan.png']
const sprite = PIXI.Sprite(texture)
↓
PIXI.loader.add('spritesheet.json') // シートとしてロード
// ...
const texture = PIXI.utils.TextureCache['aichan.png'] // 元の名前で参照
const sprite = PIXI.Sprite(texture)
仕組み
sprites.json :
{
"meta": {
"image": "sprites.png", // ...
},
"frames": {
"sprites-ai_guard-1.png": // 元画像の名前
{
"frame": {"x":415,"y":69,"w":16,"h":24}, // それが含まれている位置
// ...
},
// ...
sprites.png :
1つのスプライトシートにまとめるメリット
読み込みファイル数の削減
→ ロード待ち時間の削減
GPU処理の速度最適化
(異なるテクスチャをなるべく参照しない方が速い)
タイルマップ
一般的なタイルマップの例(www.cavestory.orgより)
Tileset画像を格子状に刻み、並べ替えて敷き詰める(赤丸に注目)
RPG等、広いマップを移動するタイプのゲームで使用するもの
PixiJS公式タイルマッププラグインpixi‑tilemap
https://github.com/pixijs/pixi‑tilemap
タイルマップ専用のシェーダで描画
ポリゴン数(=座標を転送すべき点の数)が大幅に削減される
格子の境界での補間処理で隣のタイルが混じる問題も防止
ただし「さくらのINFRAWARS」では、
背景は固定なのでマップには使用しない
ビットマップフォントのために利用した
シェーダを改造して着色機能を追加
フォント
PixiJSのTrueTypeフォント描画機能
let text = new PIXI.Text(
'This is a PixiJS text',
{
fontFamily: 'Arial',
fontSize: 24,
fill: 0xff1010,
align: 'center'
}
);
は、以下の理由で今回は使用していない
ビットマップ風フォントをDotByDotで描画するのが難しい
複数の等幅フォントを組み合わせたい
気軽に外字を作りたい
使用フォント
PressStart2P
・SILOpenFontLicense1.1
・8×8ドットのビットマップに
変換して使用
https://fonts.google.com/specimen/Press+Start+2P
使用フォント
美咲ゴシック
・8×8ドット
・かな・カナのみ利用
これらのフォントはフリー(自由
な)ソフトウエアです。
あらゆる改変の有無に関わらず、ま
た商業的な利用であっても、自由に
ご利用、複製、再配布することがで
きますが、全て無保証とさせていた
だきます。
http://www.geocities.jp/littlimi/misaki.htm
、。,.・:;?!゛゜´`^ ̄_〃〇ー―‐/\~|…‘
'“”()〔〕[]{}〈〉「」+-±×÷=≠<>≦≧∞°
′″¥$%#&*@♥♡★○●◎◇◆□■△▲▽▼※〒→←↑
↓⇒⇔≡≒♯♪◯©0123456789ABCDEFGHI
JKLMNOPQRSTUVWXYZabcdefghijk
lmnopqrstuvwxyzぁあぃいぅうぇえぉおかがき
ぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとど
なにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅ
ゆょよらりるれろゎわをんァアィイゥウェエォオカガキギクグ
ケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌ
ネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨ
ラリルレロワヲンヴαβ─│┌┐┘└├┬┤┴┼ΑΒΓΔΕΖ
上下左右空白鍵改停止十二珈
描画したい文字を上のテキストから検索し、下の画像中での座標を特定
シェーダ
ブラウン管フィルタ(シェーダ)が書きたかった
主にこのためにPixiJSを導入
PixiJSに任せておけばWebGLの低レイヤな処理は知らなくてOK
フィルタはGLSL(GPU上で動くプログラミング言語)で書く
GPUは何をしてくれるのか:座標変換
CPU側ではオブジェクトを青字の3D座標空間に配置・座標計算
その頂点座標群をGPUに転送するたびに赤字の平面座標に変換して
くれるようなプログラムをあらかじめGPUに登録しておく
2Dシーンの場合はカメラを無限遠に置いて平行投影
GPUは何をしてくれるのか:ピクセル色の決定
実画面上の1ピクセルごとに「ここに映るのはどの平面か」「どの
テクスチャ上のどの座標か」が分かるので、それに対応する「色」
を計算するようなプログラムをあらかじめGPUに登録しておく
3Dでは例えば「平面の向きに応じて明るさを変化させる」など
PixiJSのフィルタ
通常はバッファの内容がそのまま実画面に表示されるが、シェーダ
を書けば色の変更・画像の合成・歪み・ぼかし等の加工ができる
ブラウン管フィルタでは、画面上の1ピクセルに置く色のソースと
するバッファ上の座標をずらして歪ませている
GLSLでフィルタを書く
void main(void) {
vec2 pos = mapCoord(vTextureCoord) - offset; // 実画面XY座標
vec2 coord = pos / size * 2.0 - 1.0; // 実画面UV座標 [-1, 1]
coord /= 1.0 - curve * coord.yx * coord.yx; // 歪んだ実画面UV座標 [-1, 1]
vec2 coord2 = (coord * .5 + .5) * scale; // 歪んだ仮想画面UV座標 [0, 1]
vec2 pos2 = coord2 * size; // 歪んだ仮想画面XY座標
pos2.x += cos(pos2.y * M_PI * 1.0) * .125; // 左右に波打たせる
vec2 maskCoord = pos2 * vec2(1.5, 1.0); // マスク画像UV座標
vec2 pos2nn = floor(pos2) + vec2(.5,.5); // NearestNeighborなXY座標
pos2 = pos2 * (1.0 - CLEARNESS) + pos2nn * CLEARNESS;
// NearestNeighbor座標を混ぜる
gl_FragColor = texture2D(uSampler, unmapCoord(pos2)) // バッファ上のソース座標の色
* texture2D(mask, maskCoord); // マスク画像上の色
}
GLSL=ほぼC言語+ベクトル操作の独特な表記法( .xy 等)
GLSLをコンパイルしてGPUに送る関数がPixiJSに備わっている
vTextureCoord に実画面の座標が渡ってくるので、
そこに打つドットの色を gl_FragColor に代入する
ちなみに、MacのOpenGL廃止に関して
Wikipedia「WebGL」より
WebGL1.0を利用するには、グラフィックスハードウェア(GPU)がWebGL1.0
(OpenGLES2.0相当の機能)をサポートしている必要があるが、後述するよう
に、バックエンドにハードウェアベンダーが提供するOpenGL/OpenGLESレイヤ
ーを利用するかどうかは問わない。WebGLは実装形態を問わないAPI規格にすぎ
ないからである。
WebGLはどうなるのか?
→ブラウザベンダー次第 と思われます(今後も使えるはず・使えるといいな)
サウンド
モバイル環境だと発音タイミングに制限があり、通常は
<audio> では「タップした瞬間」に決まった音を出せるだけ
WebAudioAPIの音声ストリーム利用がほぼ必須
最初のタップを契機として音声ストリームを開始
以降そのストリームにバイト列で音声データ転送(めんどくs)
PixiJSSoundhttps://github.com/pixijs/pixi‑soundを使うと超簡単
PIXI.sound.add('bird', 'resources/bird.mp3');
PIXI.sound.play('bird');
SOUNDONまたはゲームスタートのために画面をタップした
時点から音声が出る→タイトル画面ではBGMを流さない前提
入力
キーボード入力はふつうのWeb開発と同じ
PixiJSにはインタラクティブ機能もあるが、今回は未使用
別途GamepadAPIに対応
const pad = navigator.getGamepads()[0]
const button = pad.buttons[0] // boolean|number
const dx = pad.axes[0] // number
各社、ボタンIDや軸IDが異なることに注意
ハットスイッチはボタンの場合と軸の場合がある
今回は使用ボタン数が少ないのでさほど困らなかった
暗号化セーブデータ
一般論として、チートを完全に防ぐには
ゲームロジックをすべてサーバ側で計算するしかない
チート対策は困難→ランキング機能は早々に却下
今回はブラウザローカルなハイスコアだけ対応
RC4Ahttps://www.npmjs.com/package/rc4aで
簡単に暗号化してlocalStorageに保存
(ソースを覗けばハイスコアの書き換えは容易)
スクショ付きシェア機能
画像共有サーバPictShareのDockerイメージを改造
https://github.com/chrisiaut/pictshare
乱数
一見ランダムな順番で出現する敵も、実は固定順
運ゲーにはしたくなかった
その分覚えゲーになるので、その前提でレベルデザイン
Math.random() ではシードを固定できない
生成済み乱数をデータとして持つのは管理が面倒
xorshift.jsを利用
https://www.npmjs.com/package/xorshift.js
「 n 周目の面データ」の乱数シードに n を混ぜる
→似ているようで異なる面を無限に作れる
アニメーションの実装
やめようswitch地獄
function tick () {
switch (state) {
case 'stay':
if (0 < --frame) break
player.src = 'ai_jump.png'
frame = 15; state = 'up'
break
case 'up':
y--
if (0 < --frame) break
frame = 15; state = 'down'
break
case 'down':
y++
if (0 < --frame) break
player.src = 'ai_stay.png'
frame = 15; state = 'stay'
break
}
player.style.top = `${y}px`
requestAnimationFrame(tick)
}
ジェネレータですっきり
function* anime () {
while (true) {
player.style.top = `${y0}px`
player.src = 'ai_stay.png'
yield* wait(15)
player.src = 'ai_jump.png'
for (let y = 1; y < 16; y++) {
player.style.top = `${y0 - y}px`
yield
}
for (let y = 16; 0 < y; y--) {
player.style.top = `${y0 - y}px`
yield
}
}
}
const iter = anime()
function tick () {
iter.next()
requestAnimationFrame(tick)
}
ジェネレータについてもっと詳しく
フロントエンド開発に役立つデモも含むQiita記事を公開中
https://qiita.com/townewgokgok/items/925b7024ff6dd204c770
ライブラリ公開
luacoro‑js buildbuild passingpassing npm packagenpm package 2.2.12.2.1 dependenciesdependencies nonenone LicenseLicense MITMIT
https://www.npmjs.com/package/luacoro
Lua‑likepseudo‑coroutineforJavaScript/TypeScriptusing
generator.
pixi‑tube‑filter npm packagenpm package 1.0.31.0.3 dependenciesdependencies nonenone LicenseLicense MITMIT
https://www.npmjs.com/package/pixi‑tube‑filter
Tube(CRT)filterforPixiJS.
ご清聴ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

簡単!OpenGL ES 2.0フラグメントシェーダー
簡単!OpenGL ES 2.0フラグメントシェーダー簡単!OpenGL ES 2.0フラグメントシェーダー
簡単!OpenGL ES 2.0フラグメントシェーダーEiji Kamiya
 
Ogre3d 基礎
Ogre3d 基礎Ogre3d 基礎
Ogre3d 基礎kw
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例tecopark
 
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化UnityTechnologiesJapan002
 
Unity C#3からC#6に向けて
Unity C#3からC#6に向けてUnity C#3からC#6に向けて
Unity C#3からC#6に向けてonotchi_
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成Hiroshi Yamaguchi
 
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Yamato Honda
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Yoshifumi Kawai
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningMiyoshi Kosuke
 
Unityで通信してみよう!
Unityで通信してみよう!Unityで通信してみよう!
Unityで通信してみよう!koppepan
 

Was ist angesagt? (12)

簡単!OpenGL ES 2.0フラグメントシェーダー
簡単!OpenGL ES 2.0フラグメントシェーダー簡単!OpenGL ES 2.0フラグメントシェーダー
簡単!OpenGL ES 2.0フラグメントシェーダー
 
Ogre3d 基礎
Ogre3d 基礎Ogre3d 基礎
Ogre3d 基礎
 
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
 
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
【Unite Tokyo 2019】【あら簡単】インテルのGPAを使ってあなたのUnityタイトルを高速化
 
Unity C#3からC#6に向けて
Unity C#3からC#6に向けてUnity C#3からC#6に向けて
Unity C#3からC#6に向けて
 
夏前ゼミ
夏前ゼミ夏前ゼミ
夏前ゼミ
 
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
 
Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!Unityのポストエフェクトで遊ぶ!
Unityのポストエフェクトで遊ぶ!
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearning
 
Android gameprogramming
Android gameprogrammingAndroid gameprogramming
Android gameprogramming
 
Unityで通信してみよう!
Unityで通信してみよう!Unityで通信してみよう!
Unityで通信してみよう!
 

Ähnlich wie 「さくらのINFRA WARS」で 利用されている技術

『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウGameCreators,CyberAgent
 
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題IGDA Japan
 
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーションNHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーションnhn_hangame
 
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCineSoft
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...Web Technology Corp.
 
DoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングDoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングK Moneto
 
Unity 名古屋セミナー [Sprite Studio]
Unity 名古屋セミナー [Sprite Studio]Unity 名古屋セミナー [Sprite Studio]
Unity 名古屋セミナー [Sprite Studio]MakotoItoh
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangYoshiki Shibukawa
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~decode2016
 
Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1Michael Tedder
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summaryTakuya Minagawa
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!KAIKenzo
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス5mingame2
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめDaisuke Nikura
 
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところXNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところIGDA Japan
 
World Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったWorld Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったTakahiro Miyaura
 
GREE Tech Conf 2022 GREE VR Studio Laboratory - UXDev R&D Summary 2022 #GREETC
GREE Tech Conf 2022 GREE VR Studio Laboratory  - UXDev R&D Summary 2022 #GREETCGREE Tech Conf 2022 GREE VR Studio Laboratory  - UXDev R&D Summary 2022 #GREETC
GREE Tech Conf 2022 GREE VR Studio Laboratory - UXDev R&D Summary 2022 #GREETCGREE VR Studio Lab
 

Ähnlich wie 「さくらのINFRA WARS」で 利用されている技術 (20)

『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
『ポコロンダンジョンズ』エフェクトや演出制作ノウハウ
 
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
Xbox LIVEインディーズゲーム「ピアレビュー攻略」のためのXNAにおける開発のコツと特有の課題
 
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーションNHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーション
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
Cerebro for VFX / Animation Japan
Cerebro for VFX / Animation JapanCerebro for VFX / Animation Japan
Cerebro for VFX / Animation Japan
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
 
DoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリングDoGA-L3でお手軽モデリング
DoGA-L3でお手軽モデリング
 
Unity 名古屋セミナー [Sprite Studio]
Unity 名古屋セミナー [Sprite Studio]Unity 名古屋セミナー [Sprite Studio]
Unity 名古屋セミナー [Sprite Studio]
 
CEDEC2014 SpriteStudio
CEDEC2014 SpriteStudioCEDEC2014 SpriteStudio
CEDEC2014 SpriteStudio
 
FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1Game Development and Automation @ Agile Sapporo 2018 #1
Game Development and Automation @ Agile Sapporo 2018 #1
 
20190307 visualslam summary
20190307 visualslam summary20190307 visualslam summary
20190307 visualslam summary
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
DXライブラリのすゝめ
DXライブラリのすゝめDXライブラリのすゝめ
DXライブラリのすゝめ
 
XNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところXNAとはなにか?XNAうれしいところ、うれしくないところ
XNAとはなにか?XNAうれしいところ、うれしくないところ
 
2012 ce116 crowbar_snct_shirai
2012 ce116 crowbar_snct_shirai2012 ce116 crowbar_snct_shirai
2012 ce116 crowbar_snct_shirai
 
World Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになったWorld Locking Tools でAzure Spatial Anchorsが使えるようになった
World Locking Tools でAzure Spatial Anchorsが使えるようになった
 
GREE Tech Conf 2022 GREE VR Studio Laboratory - UXDev R&D Summary 2022 #GREETC
GREE Tech Conf 2022 GREE VR Studio Laboratory  - UXDev R&D Summary 2022 #GREETCGREE Tech Conf 2022 GREE VR Studio Laboratory  - UXDev R&D Summary 2022 #GREETC
GREE Tech Conf 2022 GREE VR Studio Laboratory - UXDev R&D Summary 2022 #GREETC
 

Kürzlich hochgeladen

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 

Kürzlich hochgeladen (11)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

「さくらのINFRA WARS」で 利用されている技術