2015年4月24日

4月入社の新人ITエンジニアがGWに読んでおくとよさげな良書11選

アイズ・ヴァレンシュタインさんがすきです。「無表情キャラ」として描かれますが、「無感情キャラではない」あたりがとても大好きです。

パク(ごめんなさいごめんなさい
・youtenはアニメ化された際に原作を全部読んでアニメを見ない、みたいなことをよくやります。
・とりあえず全部買ってみました。荒削りで方向性が揺れている印象ですが面白かったです。
・注意事項として、外伝となっているソード・オラトリオは、実は時系列がほぼ同一で、ロキ・ファミリアメンバの視点で書かれたもののため、同時に読んだ方が本編が面白いです。書籍としての発売日順が妥当と思われます。
・4月に本編7巻、5月に外伝4巻、6月に本編8巻と高密度で予定されているので今買うのはオススメです。
・下記リンクは未発売の外伝4巻だけ書籍で、他Kindleです

2015年4月20日

Cardboard SDK for UnityをMoverio BT-200にあわせてみる

cardboard-lat-bt200.png

Cardboard SDKの樽型歪み補正はoffできますので、BT-200に使えないかどうかいじってみました。
OMAP4じゃ流石にパワーの観点からもつらそうなのですが、FOVやアスペクト比判定まわりにまだまだ改善(というかバグとりのレベル)の余地がありそうです。

・Native Distortion Correction(樽型歪み補正)を外す。
・Build SettingsのDevelopment Buildチェックは逆に不要な模様なので外す。
・Plugins/Android/AndroidManifest.xmlのminSdkVersionを16(4.1)から15(4.0.3)に変更。
・FOVは60から30ぐらいにする。でもなんかおかしいのでもっと低い?
・CardboardEye.csの以下の箇所を変更する。でもまだ下端に余計な黒帯が出てるので改造が足りてません。

// float aspectFix = camera.rect.height / camera.rect.width / 2;
float aspectFix = camera.rect.height / camera.rect.width / 4;

// dir = dir.normalized * ipdScale;
dir = dir.normalized * 0.1f; // set fixed ipdScale

3Dモードには手動で切り替えてください。ちなみにDemoSceneはこんな感じになります。
cardboard-sdk-bt200.png

誰か続きをたのむ(投

2015年4月18日

【スマホVR】Unity 5 PersonalとCardboard SDKで嫁をAndroidに召喚する【MMD】 #JAGVR

vr-ss-04.png

スマホ向け双眼3D VRゴーグル、Google Cardboard(タオバイザー/ハコスコ DX等のCardboard互換ゴーグル含む)向けにUnityで3D VRアプリを作るマニュアルを、Android SDKインストールからがっつりフルで書いてみました。Unity 5 Personalの登場で開発環境が無料で済むようになりましたので、よかったら皆様もお手持ちのスマホに嫁を召喚してみませんか。

vr-mokuji.png

◯目次

0. はじめに
1. Android開発環境の構築(JDK)
2. Android開発環境の構築(Android SDK)
3. Unity5のインストールとプロジェクトの作成
4. Cardboard SDKの導入
5. MMD4Mecanimの導入

続きを読む "【スマホVR】Unity 5 PersonalとCardboard SDKで嫁をAndroidに召喚する【MMD】 #JAGVR"

2015年3月29日

(2015.03版)Ingressチュートリアル攻略

ingress-lv8.jpg

○はじめに

本エントリは、Google Ninantic Labs製位置ゲーであるIngressを、2013春に登録したっきり「最寄り駅で自軍が強すぎる」ことが原因で何度も脱落し、2月末までLv2だった私が、3/4のグリフハックでの獲得AP仕様変更をトリガにやっとチュートリアルを終わらせることができたことをベースに攻略情報っぽいものを記載したものです。

Ingressでは(それなりに大変なのですが)「Lv8までがチュートリアル」という表現がよくされます。ちなみにLv8になった今「FF7でミッドガル出た直後」の気分です。

以下、つらつらと。

続きを読む "(2015.03版)Ingressチュートリアル攻略"

2015年3月16日

Nexus 6を買った

Nexus 6を買いました。メインにするにはさすがにデカすぎてSIMを移し変えるのをためらっています。N5いい子すぎるんや...。

続きを読む "Nexus 6を買った"

2015年3月 7日

Unity 5が出たのでUnity 5 Personal(無料版)でCardboard SDKとDive Pluginを試す

u5-12.png

Cardboard/タオバイザー他スマホ向け双眼HMDのアプリ作成をUnity 5で試してみた話です。

○先に結論

・Cardboard SDK for Unityは少しおかしいケースがあるが、GUI offとDevelopement BuildフラグONで回避可能
・Dive pluginならUnity 4 Free/5 Personal共に動作
・他Unity 5ならではの話はさっぱり試してません

続きを読む "Unity 5が出たのでUnity 5 Personal(無料版)でCardboard SDKとDive Pluginを試す"

2015年3月 4日

#リトルノア レビューのようなメモのようなもの

littlenoah01.png

竹達彩奈がフレーフレーしてくれるクラクラ、リトルノアを無課金でそれなりにやったので、iOS版が出るこの本日にレビューのようなメモのようなものを残しておきます。

公式
https://littlenoah.jp/

ユーザーIDは216956、ギルドはアンドロイダーな感じのまったり少人数な「あんよよいよ」というところで暮らしてます。良かったら一緒に遊んでやってください。

続きを読む "#リトルノア レビューのようなメモのようなもの"

2015年3月 2日

#Android温泉 10th 河口湖

2015.02.28(土)03.01(日)でAndroid温泉でした。

#Android温泉 10th in 河口湖
https://atnd.org/events/60629

以下、日記。

続きを読む "#Android温泉 10th 河口湖"

2015年2月26日

最近のソシャゲ(?)メモ

youtenがゲームを始めるトリガは「話題になった基本無料ゲームは基本的にチュートリアルまでは楽しい」という原則で、課金条件は技術・ゲームシステム・ゲームデザイン的に新しい点があるか、という比重が大きいです。

ビジネス観点では払える大人が払わないのは申し訳ない気分もあるのですが、課金は課金なりの楽しさと無課金は無課金なりの楽しさが両立している基本無料ゲーが多く、別に払わないでいいかな、というのが多いと昨今は感じます。

# ちょっと前の例だとスクストとかUIのカラーリングめっちゃ好みでないしシステムはガチャ+カードバトルでオリジナリティのカケラもないけどローポリアニメの仕組みと電池消費がマジで低いのは感動したので払いました


○タイトル
1. どのぐらいやったか
2. よいところ
3. わるいところ(やめた・飽きた理由)
4. 課金状況

○テラバトル
1. 17章、メインPTがLv40-50
2. 音楽・グラフィック・はさみ将棋パズルの戦闘システム
3. ストーリーが暗い・イミフ
4. 数千円ぐらい

○白猫プロジェクト
1. Lv100キャラ1名、4島クリア
2. キャラ・操作性・きちんとネトゲ
3. インフレ課金ゲー・きちんとネトゲ
4. 2万行ってないぐらい

○刀剣乱舞
1. 5-4クリア済み、メインPTがLv50-60
2. MMDたのしい(
3. 艦これクローン、システム面は微改善、他概ね劣化
4. 1000円した気がする

○リトルノア
1. Lv20ぐらい、クエストは砂漠ラスト。
2. グラフィック
3. CoCパクりすぎ?(詳しくは知らない)
4. 未。必要性を感じないのとCoCをどんだけパクってるかで決めたい

リトルノアはフルカウントSRアーチェのヘソを拝むまでは続けようと思っています。

2015年2月11日

IoTゲームの難易度雑感

あなたのIoTはどこから?

おそらく来年度にダンサーの一人になる予定ですが、あまり自信のないIoTダンサーの方々は「現在ハードがあって」「既にインターネットと仲が良いもの」に舞台を絞った方が多分いいんじゃないかな、という話。

すでにインターネットと仲良くしているデバイスがあって、そのデバイス上で新しいことができるならそれは(煽り文句にIoTが入っていたとしても)IoTではないと思うし、インターネットと仲良くするのが現時点で難しい(具体的には、hop数がやたらと多いとか、人手が必要とか。)のならば、それもIoTというくくりでは難しいなじゃないかな、と思っています。

続きを読む "IoTゲームの難易度雑感"

竜泉寺の湯の靴箱の番号は4(死)と9(苦)が使われていない

スーパー銭湯の竜泉寺の湯というものがありますが、ここの横浜鶴ヶ峰店(他の店舗はどうなってるか知らない)の靴箱は、4(死)と9(苦)が使われておらず、1, 2, 3, 5, 6, 7, 8, 10, 11, ...みたいになっています。

じゃあ実際2308って何個靴箱あるんだろう?と計算してみたところ

/**
 * 4(死)と9(苦)を除いた10進数で、2308が何にあたるのか
 * @author youten
 */
public class Exclude49 {
    public static void main(String[] args) {
        int n = 0;
        String nStr;
        for (int i = 1; i <= 10000; i++) {
            do {
                n++;
                nStr = Integer.toString(n);
            } while ((nStr.indexOf('4') != -1) || (nStr.indexOf('9') != -1));
            if (n >= 2308) {
                System.out.println("exclude49(" + i + ") = " + n);
                break;
            }
        }
    }
}
exclude49(1223) = 2308

1223個も靴箱あるらしい。この建物1000人とか入れるんか...。
ゴルフとまでは言わないけどこういうコードJavaだと変に長くなって書きづらいな?

2015年1月30日

UIモックは「後で捨てるから見た目さえ守ればつくりはどうなっててもいいプログラム」ではない

UIモックを後輩が作っててイマイチだったので、その際のレビューで説明したことのメモ。

【※2015.01.31追記 UIモックについて】
「UIモック」というと、デザインカンプの画像に画面遷移だけをつけたものや、手書きでUI構造を書いたものを複数パターン用意するペーパープロトタイピング時に作成するものを差す方が普通と思われますが、本エントリでのUIモックは、ウォーターフォール的な開発行程の中で、「完成系のイメージを早めに顧客合意をとり、後ろでひっくり返されないこと避ける」ために作るUI・UX設計の上流行程の成果物としてのUIモックのつもりで書いております。紛らわしくてすいません。
# 紙芝居を見せて「できてるじゃん」系カンチガイの方とは相性が悪いのですが、僕はダサダサ見た目の機能プロトを作ってからデザインを刷新するよりは勝率が良いと思っています。とくにOSの仕組みと相性が悪い「見た目だけ華やかなクソデザイン案」が顧客から提示されてしまっている際に重要度が上がる認識です。


1. システムバー/ナビバー/アクションバーやドロワー/ダイアログなどOS標準にそぐわないデザイン案がベースの際には最初にひっくり返しましょう

システム・OS側UI要素や、iOS←→Android等のOS超え知識が不十分な人が書いたデザイン案は必ずこのあたりにムリがあります。最初にひっくり返しましょう。
最近は減りましたが右上に×ボタンとかちょっと前まではよく見ました。

デザイン案をもらったその日に「その絵を書いた人がOS毎のユーザーガイドラインを意識しているかどうか」を判定し、「モックではOS別のガイドラインにあわせた形のものをご用意させていただきます」あたりは先に言っておきましょう。


2. アプリ名・パッケージ・ランチャーアイコンは最初に時間を割きましょう

「(顧客名)試作」とか「通信アプリ」とか「com.(会社名ドメイン).sample」みたいなのにすると後で泣きます。ドロイド君ランチャーアイコンで開発を始めるのは自殺行為です。

今把握している限りのイメージを詰め込んで、アイコンはLauncher Icon Generatorで真剣に10分悩んで、テーマカラーも決めておくべきです。

Launcher Icon Generator
http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html


3. テーマカラーとカラーチャートは最初に起こしましょう

Material Designを意識したものでなくとも、Colorだけはここから選んでおきましょう
http://www.google.com/design/spec/style/color.html

color.xmlでのカラー定義は"orange500"や"blue300"の様な物理(?)名と"color_main_bar", "color_accent_font"の様な論理(?)名を両方書いて二段参照にするのが望ましいです。

後者がstyleに綺麗に追い出せているのであればcolorは物理名だけで済みます。


4. UIリソースは構造を設計するつもりで最初から正式名をつけましょう

icon1.png icon2.png photo1.jpgの様な仮リソース名は避けましょう。

「どの部分が画像でどの部分がxmlなのか」とか「このアイコンはPNG画像としては64x64でmarginに12dpを入れる」というレイアウト構造は最初から設計しておきましょう。

すぐれたxml drawableは開発量を大幅に削減します。つくらないが一番。

リソースリスト(pxサイズ、xml-drawableなのか9patchなのか等)は起こしながら、できれば正式なファイル名のダミー画像を全て用意してしまいましょう。


5. Activity/Fragmentの名前は必死に考えましょう

最初に間違うとコードリーディングコストが上がってじわじわボディブローの様に効いてきます。

また、"開発対象のシステム用語"と"Android用語"の混在に注意しましょう。例えば、機能名が「イベント通知一覧」だからと言って"EventNotificationFragment"の様な名前を採用するとAndroidのNotificationと混ざって首が絞まります。

追加メンバが特にやられます。HogeBackgroundService extends Threadみたいなclassができると面白い様にみんな同じところで死にます。


6. ActivityやインスタンスがユニークなFragment/Service/BroadcastReceiverはクラスヘッダを書き、歴史的経緯とUI仕様の参照元など、根拠インプットをコメントで必ず書いておきましょう。

名前やJavadocの概要で示せるのは「現在の実装に関する正確なコメント」です。開発序盤での検討経緯や、意図を残しておくと、開発中盤で「作っているものは変えられないけどサービスの方向性は結構変わってしまった」場合などになぜそんなことになったのか合点がいきます。同時に、捨ててもいいものなのかどうかの判定が容易になります。


7. Activity/Fragment構成はその時点での最終系にしておきましょう

よっぽど特殊なUIを採用しない限りたいていの「どこかで見たことがある」ユースケースの画面構成は既存のフレームワークでサポートされています。よって見た目が決まった時点で適切なActivity/Fragment構成は決めることができます。

2015年1月 4日

クソゲーつくったよー^o^

shoot3.png

だいぶUnityに関するぐぐり力が上がってきた気がするのでチュートリアルのブロック崩しとUNIDRA本のアクションゲー以来、初めてシューティングゲームというものを作ってみた。ほどよく詰め込んでなかなかのクソゲー味が出せたと思うので次回またがんばりたいです。

Shooting1.zip(12.0MB)

2015年1月 3日

あいえるたんサマソ2

samaso2.png
samaso1.png

以前書いたエントリでUnity FreeとProのパフォーマンス差が疑わしかったのですが、新しくUnity4.6で作り直してみたところ、MMD4Mecanimの物理演算をオフにするとFreeビルドとProビルドでパフォーマンス差がないことが確認できました。

prosamaso.png

ビルドしたexeは以下のリンクからダウンロード可能です。

あいえるたんサマソ2
AielSamaso2.zip(20.4MBぐらい)

【開発環境】Unity Pro 4.6.0p1+Oculus SDK 0.4.4
【モデル】あいえるたん
【モーション】【第12回MMD杯EX】反動三段蹴り&サマーソルトキック・モーション配布(一部改造)

物理演算をオンにするとFreeだと2,3体、Proでも4,5体からfpsを維持できなくなるのでこのあたりはFreeとProのマルチスレッドのなんたらには関係がありそうです。Join Local Worldのチェックのオンオフで良くなったりもするみたいですがイマイチこちらは傾向がまだつかめてません(MMD4Mecanimのバージョンにも依存しそうですが...)

2015年1月 2日

uGUIでOculus Rift向けに大きな文字を表示する

ugui-text05.png

僕だけかもしれませんがUnity4.6でuGUIになって3D TextがCanvas+TextになったらOculus Riftで良い感じに大きめのTextを表示するのにやたらと苦戦したのでメモっておきます。

<結局のところ注意すべき罠は以下の2点>
1. uGUIのCanvasサイズは実際のpixel数ぐらいにすべし、と400x400ぐらいにするとでかすぎてまったく見えなくなってしまう罠は、Scaleを0.005とかに大胆に縮める必要があること。
2. フォントサイズ20程度じゃVRは厳しいので64とかにするとまったく表示されなくなってしまう罠は、デフォルトがTruncateなので表示範囲が足りてないだけということ。これデフォルトOverflowで良かったと思うんですよ...

続きを読む "uGUIでOculus Rift向けに大きな文字を表示する"

Archives(記事一覧はこちら)