目標: 2016
スローガン
- 気力とアクティビティを高いまま維持する
- 生活習慣をガラリと変えたい
体
- ランニング 40km / 月. 週2ペースで走る
- 腹筋 20回 / 日 を継続 (少しづつ増やす)
- 腕立て 20回 / 日 を継続 (少しづつ増やす)
- 年末までに体脂肪率10%, 55k
英語
- rarejob初めてみる.
- 週1ペースでつづける
- 楽しく会話できるくらいにしたい
習慣
- 原則9時以降は食事しない. お菓子禁止
- 10時以降は刺激物禁止. (ゲーム, アニメ, プログラミング...)
- 読書のみ許す
- 刺激物をやりたければ、朝するようにする
本
- 読書記録をとる
- 漫画、小説、真面目本問わず
リリース
- 月1ペースを目指す
- ゲーム, ライブラリ, アプリ, ... 問わず
- その時に興味のあるものを
金
- +5万 / 月
ふりかえり
- 各項目で記録する
- 月1ペースでブログに残す
エンジニアでも作曲したい
前置き
ゲームジャムでゲームを作るときに作曲できると便利。 面倒な著作権問題やら回避できて、自由にアレンジや改変もし放題。
lycoris102さんと ayaki さんにいろいろ教えてもらって作曲はじめた。 自分で作った曲はいろいろとおかしいのだけど(自覚している)、まあ最近始めた初心者なので許してという感じ。
ツール
作曲に利用したツール。 DAW (Digital Audio Workstation) というらしい。
FL Studio
定番ソフトらしい。mac版はbetaでリリースされていて、プロジェクトの読み出しができないもののちょっとした曲を作る分には十分。 こんな曲をつくった。
GarageBand
Mac標準の作曲ツール。 いままではなんか邪魔なアプリが入ってるなー程度の認識だったのだけど、使ってみるとDAWとして初心者には十分な機能が入っている。 ドラムも良い感じに自動で鳴らしてくれるのですごい便利。 チュートリアルも充実してて、そもそも作曲とは?コードとは?みたいな人にもオススメ。
CMD + クリックでピアノロールに追加できるってことだけわかりにくいが、あとはなんとなく慣れでいける。 追加DLが多いのがたまにキズ。
これで作った曲。
GarageBand (iPhone)
モバイルでも作曲できるのだ。 しかもちょっとした打ち込みならこっちのほうがやりやすいくらい。 デフォルトのオートプレイや、スマートドラムもかなり便利。
少しわかりにくいのだけど、AirDrop やら Dropbox経由でPCに .bandファイルをシェアできる。
試しに作った曲。(ただのオートプレイの組合せ)
勉強したサイト
ドラムロールは適当に打ち込んでもリズムになりやすいのだけど、 ピアノロールには打ち込んでも、それっぽい曲に一向にならない。 ので少し勉強した。
YAMAHA コードについて学ぶ
コードについて学ぶ - 音楽について勉強しよう - ヤマハ株式会社
和音の作り方、7th chordあたりが勉強になる。
サビ、メロについて
そもそもサビの意味すらしらなかった・・・
Timさんの音楽教室
GarageBandを開くと標準でついてくるレッスン。 コードの基礎的な説明や楽器の使い方など、誰でもわかるようにかなり丁寧に説明している。 当たり前だけど楽器に会う演奏スタイルやコード進行があって、基礎を学ぶとそういうことを気づかせてくれる。
作曲の難しさ
いまは作れる曲を作るという場当たり的適当さで作っている。 狙った曲でその雰囲気を表現するのはやっぱり難しい。
副作用
自分で作曲をしてみると、世に流れている曲でどんな楽器で演奏しているのか? どんなコード進行をつかってるのか?だいたいドラムロールつかってるなーとか、雰囲気だけをだすなら複雑なメロディはいらないなーとか。 今まで見過ごしていたものへの気付きがある。
当たり前だけど世の中には曲があふれていて、何気ないアニメの一シーン (終物語やらごちうさの劇中歌とか、SEとか)にも耳が反応するようになった。 このパターンを蓄積して、どんな楽器をつかえばいい?こんなパターンがあるんだってのを積み上げてみんなうまくなるんだろうなーと (小並感
2015年においては、ツールも豊富で無料で作曲をはじめられるので良い時代だ。 曲作りは楽しいし、1日くらいで1曲できる手軽さなのでゲームジャムエンジニアにはおすすめです。
GameJam#6での学び
WIP. 社内でゲームジャムをやっていた時の学びメモ
Resources.Load()
digit.sprite = Resources.Load<Sprite("Sprites/digit/" + value);
みたいなのよくやる. as Spriteとか前はやってた。
ReactiveProperty
public LongReactiveProperty score = new LongReactiveProperty(); void Start() { score.subscribe(value => { SetScore(value); }); }
みたいな感じで値監視がすごい便利。スコアとかこれだけで出来る。
ProjectのBootstrap
毎回同じセットアップとか、同じロジックを書いてる気がする。 コーディングの半分くらいは無駄にしている感。 小分けにして、Utilityとしてまとめたい。UnityのBootstrapつくりたい。
Fabric
FabricBetaでデータを共有したかったが、Unityから書き出すと毎回データが書き換わる。 しかもFabricは導入がたるい。DeployGateのようにアップロード機能だけ切り出して欲しい。 Fabricの導入対応を血迷って初めにやってしまったのはミス。4時間くらい不毛に潰してしまった。
書き出し
Unityの書き出しはちょくちょくミスる。 これで作業時間がその都度15分くらい消耗されるのはツライ。 jenkinsとかで裏で書き出す仕組みが欲しいところ。 UnityのCloud Build試してみたい
またiOSのビルドもかなり待つ。
gh-pages
GithubPagesはゲームを手軽に共有するのに便利だ。 ただブランチ切り替えの前にきちんと物理コピーを取ることをおすすめする。 マックのクリップボードコピーは参照先だけ保持しているので、ブランチ切り替えでデータが消えて時間を浪費する。
機能をすてるということ
たとえば、ステージをロードするということはそれなりにロードする仕組みが必要だ。 現状の手持ちで間に合うかどうか、どのくらい時間がかかるか。それによってどのような影響があるか。 きちんと考えて必要な物を絞るのは大事だ。
Kotlin メモ1
open
継承元のクラスに引数を渡すとき、classにopen annotationをつける。
constructorの引数
public class Entity(name : String)
と
public class Entity(val name: String)
の違い。
valがつくと継承元のClassに引き渡せない。 valをつけると自動でクラス内のpropertyとしてmappingしてくれる。
returns label
foreachなどでreturnsするときに、ラベルをつかうみたい。
potatotips #19 いってきた
ただのメモ
Potatochips #19
@gfx
- RxAndroidの先行きが不透明
- RxJavaユーティリティを突っ込みたい
AndroidSchedulers
- RxAndroidと同じ
Schedulers
- ベストプラクティスあんまりわかんない
- とりあえずthread2つでよさそう
AndroidCompositeSubscription
- 同じinstanceをfinalで持ってる. 再利用可能
OperatorFilterLite
- もうすこし軽く. objectを作り過ぎないようにしたい
RxAndroid/RxBindingの動向をみまもりたい
@yuseinishiyama
静的にもっと書きたい話
UIViewController
- 例えばStoryboardとのヒモ付け、同じ情報を何箇所にも書かないといけない
- 1Storyboard / 1ViewControllerがオススメ
- global funcでstoryboard instantiateする関数
型名の抽出
- 一般的な方法、nest classには使えない
- mirror typeつかう
- swift 2.0では selfのdescritionでおk
IndexPath
UITableCell
- class name == nib == class identifier
@futaboo
push通知周り
GCM
- registoration idを保存
- 送信
注意
- 再起動するとregistration idが変わることがある
RECEIVE_BOOT_COMPLETED
- GooglePlayの自動アップデートが効かなくなるのが問題
GCM診断
- idを入力すると過去に届いたかどうか、その一覧がでる
問題
- Dozeモード
- 省電力
@kitasuke
- fastlane meetupにいったよ
- 日本語ガイドに紹介されてうれしい
- Clipper = suika
- Meetupいくといいよ
メソッドを外部から叩く技
- c88 tech boosterに寄稿したよ
- Method Http Exporter: つくったよ
- 開発用のバックドア
仕組み
- アノテーションを付けておく
- aptで解析
デバック
- センサ系の操作に便利ですよ
Core Graphics
- @shu22
watchOS2
- 線、UIBezierPath、円、gradationのかける
- 手書きできない
JS native間のmessage
htlm5 web messaging
- 送信用ポート、受信用ポート
mWebView.postMessage()
html5標準なのでよさそう
- いまはpreview 段階. M Preview
New Library for CoreData
- Hiroshi Kimura
新しいデータストアライブラリつくってる
- CoreStore
よいところ
- swift
- thread管理
- mainthreadはread only / 書き込みはbackground
- sqlite fileが複数使用可能. configでわけられる
- sqlが結構シンプルに書ける
- fetchの記述がシンプル
- VCとの連携が簡単
- migrationが充実
swift2.0対応中
はじめよう Data Binding
- @sys1yagi
Android開発の課題
- View周りが煩雑
View Binding
- RoboGuice / ButterKnife
- 助かるんだけど、全然足りない
Google IO Data Binding Library
- com.android.databinding:dataBinder:1.0-rc0
- minSdkVersion 2.1-
Layout XMLの記法を拡張してくれる
- root要素にlayout書くだけ
- compileの時にコードを吐いてくれる
- view with idsでview holder
- automatic setter
- observable...
View With IDs
ViewHolderいらずに・・・
layout書くとViewHolderが出来上がる
実際に試すと超楽しい
- ViewHolderの代わりにくらいからやると良さそう
夏コミ
- c88でデータバインディングライブラリについて結構書いてる
Cookpadではすでにリリース済み
iOSの画面遷移と私
@tokorom
紀元前: Storyboard登場まえ
- 紀元後: Storyboard登場
self.presentViewControllerでやる
storyboard時代の遷移
- prepareForSegue
- 超嫌だ
watch kitの contextがよい
- 疎結合 anyobject
- 遷移後・遷移前で依存関係ができてない
- interfaceで何でも渡せる
ライブラリつくった
- SegueContext
NavigationController/TabController挟んでもへっちゃら
Breaking changes for Foundation API in iOS9
- @kishikawa
- Relm
- meetup T-shirtくばるよ
NSMutableDictionary
- (void)setObject:(nullable ObjetType)obj forKeyedSubscript:(KeyType <NSCopying>)key
破壊的な変更なので要注意
- nilを渡すと要素が削除される => xcode7
- xcode6.x時代は NSInvalidArgumentException
GCM Topic Message
- @mochicon
- KAYAC inc
- Lobi
- C88 東A-39a
GCM Topic Messagin
- グループユーザに送信
- Topicに登録した100万件までに送信
- ニュース配信とかに使える
GCMのGoogle APIsの利用方法が変わった
新しい方式
- app/直下にconfigファイルをおいておくと、勝手にpluginがidを生成してくれる
UTI
- hatena
extension / mime / uti
UTI
- Uniform Type Identifier
mime type -> extensionを作れる
- ライブラリある
UTI(mimetype: "image/jpeg").extension
DeepLinkDispatch
- wasabeef
- CA
- ameba tv
DeepLinkDispatch
- airbnb
- deeplink schema 起動が楽
- simple
- anotation base
Activity
@DeepLinks({"wasabeef://deeplink/{id}"})
public class MainActivity extends Activity {}
- Bundleにidが入ってる
Method Annotationも使える
- static, returnでintent
ApplicationにDeepLinkCallbackをimplementするとエラーがくる
Test
adb shell am start -W -a android.intent.action.View -d "wasabeef://"
iPad Multi Tasking
- @mpon
- 参加レポートを1日づつかいた
Picture in Picture
- 動画を再生しつつ操作できる
- Youtubeとか
Slide Drawer
- 引っ張ってくとSplitViewになる
- Device Orientationを全部対応すればできる
iPadアプリ
Flow, Mortar, Dagger2 Tips
- @tai2
Fragmentのライフライクル問題
- IllegalStateException
Flow
- View主体の画面遷移、データはコンストラクタに渡して遷移すればOK
Mortar
- getSystemServiceを拡張
- Viewの永続化がBundleでできる
Dagger2
画面ごとにObjectGraphを作る
- @WithComponent、画面に対応するobject graphを指定する
サンプル作った
- github.com/tai2/flowmortardagger2demo
CookPadはRoboGuice使ってる
Teitenってアプリをつくった
- @nakajijapan
- pepabo
- NKJxxx をたくさん作ってるよ
teiten
- 自分を10秒毎に撮り続けるアプリ
- osxあぷり
previewをdrag&drop -> LGTMできるようにしたい
- NSTableView -> drag&dropに必要
- NSDragOperation
- NSPasteboardWriting
github / qiitaでclipboardにcopy&pasteできるのいいよね
APT
- @izumin5210
Annotation Processing Tool
- aptはjava7でdeprecated
- もとはコマンド
- Pluggable Annotaion Processing API
構成
javacのための入り口
- autoservice
あがめよう
- JavaPoetで生成するとよい
- testはGoogleのCompile Testingをつかうとよい
小並感
- cookpad 良いオフィスだ
- dataBinderおもしろそう、導入しようか
- DeepLinkDispatchもよさそう
kotlinことはじめ
kotlinでアプリを書き出すようになったので、勉強がてらメモ。
static method
基本staticは無いらしい。class objectで記述するみたい。
いつものアレをconvertしたらこうなった
public class SomeFragment : Fragment() { companion object { public fun getInstance(): Fragment { return Fragment() } } }
val var
swiftのletにvalが相当する。変更不可能な値。 varは変更可能な値。
getBytes()
Stringに生えているgetBytes()はdeprecatedになっていた。 代わりにtoByteArray()をつかえとのこと
ByteArray
Basic types - Kotlin - Confluence
Arrayで配列を表現するみたい。 primitive型も対応する型が用意されているみたい。
Test
src/test/kotlin/PKG/HogeTest.kt
package hoge import kotlin.test.assertTrue import org.junit.Test public class HogeTest { Test fun hoge() { assertTrue(true) } }
Annotationは@を外してつかうっぽい
butterknife
kotterknifeがあるっぽい
repositories { maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } dependencies { compile 'com.jakewharton:kotterknife:0.1.0-SNAPSHOT' }
import butterknife.bindView public class MapFragment : Fragment() { val mMapView: MapView by bindView(R.id.map) }
Parameter specified as non-null is null
Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
というエラーがちょくちょく発生する。コレはoverrideしたjavaの関数にて、optionalを気にせずoverrideしてると呼び出し元の関数からnullが渡ってきてエラーが起きる。 java関数をoverride するときには、optionalかどうかを厳密に考えよう・・・。
traitはdeprecated
かわりにinterfaceをつかう。
data class
data public class Hoge(val name: String, val createdAt: String)
みたいな感じでデータ宣言できる。
Signleton
object Singleton { fun hello() { println("Hello") } }
object declarationで簡単にかけるっぽい。
Game Graphics Groove #3 いってきたメモ
『パズクエにおけるUXテストとその結果&対応』
- 細川奈々恵
UX Testの実施について
- 9回くらいリリースまでに実施している
3つ決める
- テスト目的 : 理解できるか?面白いか? 操作しやすいか?
- テストスコープ: 初回起動、プレイ時間
- 被験者要件: 誰にやってもらうか?
社内UXテストで観察した例
- バトル画面 / フィーバー画面にすんなり入れるか?
- 非開発系の部署 3人 (1人課金層, 2人無課金層)
- ダメポイントがたくさんあった
発生頻度高い&重要
- 召喚方法、フィーバータイムの条件、..
- 負けた理由がわからない
観察
- 敗北して初めてルールを考えだす
- 負けたときにやり方を教えるのが有効っぽい
チュートリアルの分割
- 必要なときに必要な要素を表示する
- 敵の弱点など考えなくても進めてられるように
まとめ
- testerは少なくてもいい
- test目的が大事
ちょっと早口でわかりずらかったかも...
『Spineメッシュアニメーション応用編』
- 二宮大輔
Spine
- Cocos2d / Unityに対応してる Boneアニメーションツール
- Meshアニメーションもできる
- 動作が意外に軽い
不満点
- パースごとのループができない
- マスクが未対応
- Scriptが打てない
うねる柔らかさ
- Meshいいかんじだ
- 先端から末端に伝わるときに遅延させるとよい
3Dっぽいこと
- 3dの各頂点に対応するMeshポイントを中につくる.
- 鍵マークをつけると移動できる
丸くても揺れるよ
まとめ
- 柔らかさの表現できるよ
- 3Dの表現も出来るよ
- Live2Dを越える表現も
『ハコスコとUIとご飯』
- 鈴木 匠太
- 矢羽田 和徳
VR市場は1500億ドル?
バーチャルボーイうれなかった
- ハードウェア価格高い
- 一人でしか遊べなかった
- コンテンツでない
VRの問題..
- エロで攻めすぎ
ハコスコのいいところ
- 安い
- ケーブル不要でどこでも
- いろんなスマホサイズに対応
- デザイン自由。ファッションにできる
- 開発難易度が下がった VRはUnityで開発できる
- ARも可能
- 普及している
未来
- 女子高生 「今日スコッとく?」
個人的にはCardboard派だ...
操作
- 首振る
- 視点移動
- 上下にふることで歩く操作
- ponと叩いて写真を撮る
- Vufolia SDKでARで撫でる、触る
新しい操作方法が必要
- チャンスかも知れない
SPAJAM
- 寂しい食卓: 幻想飯
- ご飯を容易
- ARカード (和、洋、中、...)
- ちゃんと画面が曇る、かなり豪華感ある演出
- みんなVR発表してた。EpicはLoad of the Ringとか?
- 期待感ある
『乖離したことから始まった、本質への回帰』
- 窪 洋一
パネルディスカッション
UIデザイナについて
- アニメーションはあんまりつくってない.
- 内製のエフェクトツール使うことが多い.
企画ってどうやって決めてる?
- 企画コンペやってるよ. 出した人がオーナーになる (クロスサマナー)
- プロデューサーが何つくろっかーって決める
- IPものは天上人が多い
クリエイティブ周りの決定権、誰が持っている?
- プロデューサー.
- ...
作りたいもの作れてる?
- motionがきれいな格闘ゲームつくりたい