2015年3月22日日曜日

3/21「UnityのためのC#勉強会」に参加してきました。

いいかげん年功序列的にUnity中級者に押し上げられてしまった身としては、C#の文法でスクリプトを書けることについて改めて見つめなおす必要があるだろう、とは常に思っていまして。そんなところに今回の勉強会でして、これは他の用事をおしても行かねば!と気合い入れて参加してきました。

日本Androidの会Unity部の皆様ありがとうございます!

資料、口頭、ライブコーディングから見て気がついたところなど色々と。
(個人的な気付きが中心なので、そこ違う!というツッコミは随時お願いします。)

「Unityでもう少しc#を書きたい人のためのLINQ入門」

@moririring さん (関西から参戦!) 資料

■LINQの利用について
・ふつうのfor文は「手続き的な書き方」。Linqは「宣言的な書き方」。
・あたりまえだが、複雑なワンライナーがいいわけではない。
・LINQの書き方はQuery Syntax と Method Syntaxの二種類。
・有名な話、UnityではiOSでAOT関連でのトラップがあるので注意。

・LINQはループを隠蔽している。ループ数を少しでも減らそう。メソッドの順番が重要。宣言した順(左から右へ)処理が進むので、Whereとか数を絞るフィルタリング系を先に書く。

・遅延実行を意識する。LINQはデータを加工する段で実体化される。実際に値を入れる瞬間など。LINQ書いた箇所では処理されない。ブレークポイント貼るとわかる。LINQで宣言された値が利用されるところではじめて実体化される。

・むだな処理に気をつける。たとえば、CountとAnyは内部のループ回数がぜんぜん違う。

■Visual Studio関連
・Unity 5 Import Packageからメニューから無くなってる。Unity VSがインストールしているフォルダの中にパッケージあり。
(これはPCに複数バージョンのUnityを入れている場合も同様っぽい)

・Macの場合は同等のインテリセンス機能が使えるOmniSharpがいいよ。

・リファクター機能
選択部分を切り出して関数化する。メソッドの抽出。

・Unity VSの機能
右クリックからオーバーライド関数の宣言を生成できる機能。
ブレークポイントを貼った実行で、Unity側からプレイスタートしたい場合は
VSでAttach to Unityを押してからUnity EditorでPlayを押す。

・(VSの話ではないが)積極的にvarを使おう
型推論してくれる。右辺値が参照型でnewとかしている長い関数の場合はおすすめ。

■感想:
自分の周囲にはLinq推しに恵まれているので、プロジェクトに少しずつ導入して入るものの
(具体的にはUIのシステムで、NGUIの複数のパネルに対して操作するところとか。)
=>ってなんやねん!とか思ってたタチでした。所謂おまじないでコードカイているというか。実際はこれ、アロー演算子。

講演はライブコーディングしながらのくだりが最高で、まずはふつうのfor文で作った処理をまず作る。そこからスタートして、条件判定の部分をメソッド化して、デリゲートで呼び出す、呼び出し側を削って削ってラムダ式に書き直して。。。と、だんだんLinqの形に近づけていく方式。これはすごくわかりやすかった。どういう意図であの記述になっているのか?が順を追って理解できるというか。録画して繰り返し見たいくらいです。

あいえみゅねれーらぶる。

「UniRxとかReactivePropertyとか」

@Grabacr07さん。 資料

・Linq to Events。Linq to Events。すなわちRx。
さきほどまでの(moririringさんの)話はコレクションを扱うLinq to Objectだったが、これは時間軸の概念。

・「UniRx」はUnityにReactive Extensionsの考え方を導入する。
大事なことですが、オレオレライブラリではない!ちゃんとした考えに基づいて作った「移植」。
同じ使い方がほかの言語で使えるので、学習コストは無駄にならない。

・変化をストリームで拾ってくる処理を書く場合、初期値の供給があるかどうかは、UIに使うものとしては非常に大事。UniRxにはそのへん気遣って作られている。

・UIの入力判定系は、普通のやり方はOnClickにAddListner生やしたりするがUniRXを使えばStart()の中で宣言するだけ。Updateでぐるぐる回さなくてよい。

Reactive XというウェブサイトがReactive Extensionsリファレンス的に使える。英語だけど図付きでわかりやすい。

・日本語資料は@toRisouP氏の「未来のプログラミング技術をUnityで」おすすめ。
(公演当日の前日に出たばかり。 最前列講演者ど真ん前に座っていた@toRisouPも苦笑い。)

■感想:
資料の中でC#はいろいろなところで活躍してます!と、「C# Everywhere」と銘打ったスライドにPSM Studioが出て泣いた。
UniRxはUIまわりの待ち処理にかなり有効そうなので順繰りに触っていく予定。

「OrangeCube 自社フレームワーク」

岩永信之さん 資料

■自社フレームワーク
・Unityの課題を解決するために自社フレームワークを用意した。

・自社で作っているゲームは、アクション性は少なくUIのページ数が多いタイプ。
 通信周りの非同期処理を楽にしたい。

・非同期処理担当"IteratorTasks"
.Net 4のTasksの移植のようなもの。(Unityは.Net3.5相当なので使えない)
C# 5.0で解決している問題だが、Unityでは使えないので「もどき」をつくった。
標準ライブラリの互換ライブラリ作って、は超バッドノウハウっす...。Unityがry(以下5回ほど繰り返し

・ストリームからのバイト読み込みとかはゲームが止まる原因になりがち。
しっかり非同期で読むような設計をする。

・MVPに当てはめるとView側に当たるOnClickとかの方に処理のコードが増えるのはよくない。
ゲームロジック側、Model層が主役であるべき。そこで、ゲームロジックからビュー側に命令して、ユーザの選択結果を待つような設計にした。

(このへんから話に追いつけなくなる。ごめんなさい。)

■Visual Studio関連
・VSのクラス生成「Usage First」という考え方で、先に使う側で存在しないクラスを呼び出す処理を書いて、あとからメソッドを建てる。

・usingしてないクラスの呼び出しも、覚えていたら先に書いておいてVSの機能でusingを後から足す。

・get setの自動実装

・すべてのメソッドの上にgitとの連携を表示する"1 reference| 0 authors | 0 changes"と灰色で出てた。
(これはUltimateエディション専用機能だとTwitter経由で別の方に教えてもらいました)

感想:
ぶっちゃけ紹介の内容は流石「C#でぐぐるとトップで出てくる」だけありまして超応用的。
C#からC#コードを生成しまくる話とか、、、
自分のレベルではまだ縁遠い話でしたが、行き着くところまで探求するとこういうことができる、という一つの指標としてガッツリ見るだけ見てました。

貴重だったのはものすごい速度のVSの機能使いまくりコーディングがライブで見れたこと。
本職が開発ではないので、なかなかそうした現場を見る機会がなく。貴重でした。

●勉強会全体を通して●


LINQの勉強会ということでしたが、登壇者4名が全員Visual Studio推しだったことと、ライブコーディングが数回あったのでVisual Studioの働きっぷり堪能の巻!、という感想です。

ふつうのUnity勉強会はノウハウ情報共有が主ですが、自分が最近知りたいと思っている「ふだんどういうスタイルでコーディングしていて、どういう細かい機能やツールを使っているのか?どういう考え方で設計しているのか? 」の一面が見れる回だったなと。

この系統のシリーズでまたやってもらいたいなぁ、と思いつつ、次はもう少し理解が追いつくように切磋琢磨。

余談ですが、UniRXライブコーディングの時にストリームをチェックして戻り値をboolで返す処理を三項演算子でササッと書くくだりがあったのですが、そこがすんなり理解できたあたり自分の成長を感じました。(こなみ)

2015年3月18日水曜日

PS Vita「CardBoard Cat EP」最終アップデート1.21

PS Vita 「Cardboard Cat EP」 最終アップデートです。



主な更新点は

・海外版「The Cardboard Cat」のステージ構成を追加(International Mode)
・全体的に明るくシャープに
・アイコンとスプラッシュイメージを変更
・若干データ圧縮

です。












私から伝えたいこと。

どうか買ってください。

 



このゲームはPlayStation Mobileでリリースすることを最大限活かすべく、「背面タッチパネル」のハードウェアをフル活用したゲームシステムを採用しています。

PSMの終了が発表された今、移植する先はありません。

不本意ながら、今しか遊べないゲームになってしまった「CardBoard Cat EP」。
PlayStation Storeにて154円で2015年7月15日(水)まで、販売中です。






(↑PS Vitaブラウザから踏む用リンク、PCからは見えません)

VitaでPS Storeを起動して、右上の「PlayStation®Mobile」ボタン→ジャンル「アクション」でたどりつけます。

PCからも見えるストア情報はこちら(直接購入はできません...)

よろしくお願いいたします。

2015年3月11日水曜日

PlayStation Mobile 終焉

PSMのおっかけをやって1余年が経過した。


当時社会人3年生だったオレはUnity for PSMに出会い、 即効でファンになった。元々ゲーム開発とは縁のない生活だったが、 それからはPSMの為だけに生きてきたようなモンだ。



毎日Unity Editorで開発したし、徹夜も二度や三度じゃない。



ファンやって半年目、PSNで俺のゲームを出せた時には 嬉しくて本気で涙が出た。人生で最高の喜びだと有頂天になって、Twitterで一人で吼えてた。



そして今年の3月。

信じられないものを目にした。「PlayStation Mobile終了!!」


目を疑った。絶対ありえない、絶対ありえない。死んでもありえない。一週間仕事を休んだ。 (※休んでません)



もうDevPortalも開いてない。毎日の楽しみだった販売レポートのチェックも辞めた。


最近になってようやく、ゲームの別のリリース方法を考えよう…そう思えるようになってきた。


だけど俺には何も残ってなかった。開発初心者という多感な時期にPSM一本でやってきたんだ。当たり前だ。


マトモにXcodeを触ったのはいつだっただろう。PC用にパッドのキーアサインをしたのはいつだっただろう。


販路について、プラットフォームについて、そして将来について最後に考えたのはいつだったんだろう。


残ったのは初歩的で汚いコードしか書けなしい30代間近の中身スッカラカンな男。それだけ。



こんなのが今更どうやってスマホとかに進出するってんだ。それに今まで気づかなかった俺は最高にバカだ。


そしてこんなグチをブログでしかこぼせない俺は最高に惨めだ。



是非俺を笑ってくれ。蔑んでくれ。そしてこの日本のインディーゲーム開発環境を考えるキッカケにしてくれ…



--------------



皆さんもニュースでご覧になったように、PlayStation Mobileのサービスが7月で終了します。

PlayStation Mobileのコンテンツ配信が7月15日をもって終了
http://www.famitsu.com/news/201503/11073698.html

前半はふざけたコピペ改変をぶつけていましたが、PSMという奇跡的で素晴らしいスキームがあったからこそ、ちんけな自分が奮起してゲーム一本ひねり出すことができたわけです。

「なんかVitaで頑張ってる個人開発者がいるらしい」と多少話題のタネになり、PSMを通じて沢山のゲーム開発者と出会えたこと。これらは代え難い経験になりました。

個人が市販のゲーム機でタイトルを作って販売できる。こんな、ひと昔前から考えたらクレイジーな仕組みを用意してくれたSCEの皆様には、ただただ、感謝の言葉しかありません。

私はUnity派なのでまだしも、PSM Studioの専用開発環境でやっていた方々が一番ダメージを受けているもの思います。

XNAの更新が止まってしまった時と同じように、そのままではPCその他のプラットフォームに移行できませんから、大変かと。、
(※第一版では「XNAがなくなった」という表現をしてしまい、鷲アイコンやスマイリーアイコンからまさかりを投げつけられたので修正しました。謹んでお詫び申し上げます。)


自分の場合は、実は5月の「東京インディーフェス」に出展が確定しまして、プラットフォーム「Vita」で提出していましたのでちょっと悩み中です。


現在開発中の新作はUnity for PSMで4.3.4f1に苦しめられながら作り続けるつもりです。7/15までは起動確認できるみたいなので。


わたしはPSMを続けるよ!


この潮流をただの「夢」で終わらせず、いつか「PSMがあったから、いまの日本のインディーゲームシーンがあるんだよね」と振り返られるよう。
これからも頑張って行きたいと思います。

最後に一言、劇場映画「ルパン三世Dead or Alive」より大好きな一言を。


「…いい夢だった!」

2015年3月7日土曜日

メタセコユーザーがMaya LT移行に挑戦

現在開催中のGDC2015にて「Maya LT 2016」が発表されました。



自動机ニキはゲームエンジン勢が火花を散らす無料化の波には目もくれず、相変わらずお前もGAMEWAREにしてやろうかの勢いで会社買収。直近はゲームエンジンを有するBitsquid社をお買い上げです。歴史シミュレーションで有名なParadox Interactiveが使っていたエンジンだそうで。
そういえばHavok社のアナーキー大作戦はどうなったのかしら。

さて、Metasequoiaにしてももっそい適当に使っていた自分ですが、コレを機会にMaya LTに移行をねらって事始めしております。

これまでメタセコでテクスチャも作らず、四角と円柱をエイヤーでくっつけてゲーム用データを作っていましたが、やはりアニメーション付きのモデルをしっかりつくろうと思うとMaya一択かなと。Bleうわなにを




GGJ2015で錬成したさわやかなヒヨコちゃんを御覧ください。












ぼちぼちMetasequoia→Maya LTに関するあれこれをメモしてきます。
まずは導入最中で気になったことなど。

・Maya LTの書籍

1冊出ています。


「Maya」に関する書籍はそれこそワンサとありますけど、内容がプロすぎる。そして「Maya LT」に限ったものはこの本のみで、おっさんや建物を作りたい自分的にはフィットするものはまだない。

そこで、とりあえず公式のチュートリアル 「Maya スタートアップガイド」を順番にやっていってます。

・動作重い?

筆者はVaio Pro 11 メモリ8Gモデルで動かしていますが、いまのところ快適です。
実は少し前に代理店のダイキン社にてMaya LTセミナーを受けてきて色々聞いてきたんですが、モバイル用のモデルデータ作成ならSurface Pro 3でも大丈夫らしい。

Maya LTには15日間使える体験版があるので、とりあえずダウンロードしてグリグリしてみると良いです。

・保存形式について

メタセコは.mqoでモデルデータを保存していますが、Maya LTの場合はもう一段上のレイヤーの「シーン」という単位で保存します。モデルデータだけではなく、ライティング、カメラ、関連のマテリアルがガバッと保存されます。Unityのシーン(またはプレハブ)に近い感じ?

・ねだん

税込み1年間サブスク35,640円。

一日あたりの利用額はたったの98円、お昼のお弁当と一緒に買うTポイントカード会員10円引きキャンペーンの雪印コーヒーと同じくらいでしょうか。

Autodeskストア Maya LT 2015

"プロのインディーズゲームメーカー" #とは

Metasequoia 4 EX(FBX出力ができるエディション)は19,980円なので、実は倍価もしない。


・操作周りにおけるメタセコとの違い


Q: まずうちさぁ「基本図形」したいんだけどなんか2種類ない?
A:「ポリゴン」を使ってください。「NURBS」は映像制作用の、滑らかな形状を出す特殊モードみたいな。そのままだとfbx出力できません。

Q:右クリックしながらマウス操作で視点ぐりぐりはMaya LTではどうやんの
A:さらにAltキー+左クリックしながらマウス操作。その状態でスクロールすればズーム(ドリー)じゃ。
Altキー+真ん中ボタン(スクロール押下)でカメラの上下左右移動もできるぞい。

Q:オブジェクトに名前つけたりとかどうすんの
A:右側の「チャネルボックス」がこれにあたる。

Q:オブジェクトパネルみたいのどうやって出すの
A:メニューの「ウィンドウ」→「ハイパーグラフ:階層」で見れる

Q:「Unityに送る」でfbxもってくとめっちゃ小さく表示される
A:Unity側でモデルを選択して、ImportSettingsのScaleFactorを「0.01」から「1」に1しよう。
Mayaの1グリッド=Unityの1グリッドと同一になるぞ。



(以後増やしていきます)

・べんりなショートカット

 4キーでワイヤーフレーム、5キーでシェーディング表示

2015年3月4日水曜日

PS Vita "The Cardboard Cat" is out now.



PlayStation Mobile Title "The Cardboard Cat"(English version) is available on over 30 countries.

See the trailer video.


P

Download link for you PlayStation Vita.






or find in PlayStation Mobile Store in PSN, category "Action".