ffmpegを使用します
動画を静止画に分割する
src.mp4をpng形式で、0001.png〜 に分割する。
※ 出力先はフォルダ指定できるがフォルダが存在しないとエラー
連番静止画を動画にする
ffmpeg -r 30 -i %04d.png -vcodec libx264 -pix_fmt yuv420p out.mp4
秒間 30フレームで、 0001.png〜 を out.mp4 にする
振り返りは1年後とかに見ると色々思い出せてよいのです。
2019年は、新しい職場1年目ということで仕事にウェイト多めでした。
Unityあんまやれてないかもなので新職で覚えたスキルも振り返らせていただきます。
おにぎり食べながらお酒飲んでみんなのゲームやってた記憶しか残ってない。
全員ゲームエンジニアで話が合うので超楽しいです。
私の作品を好きと言ってくれる人もいて生きててよかったです。
来年も行きます。
みんなも来るといいよ。
去年の10月に会社が突然倒産していました。そのうちエントリー書きたい
ありがたいことに、倒産したけどすぐに紹介があり、次は間を置かずに決めることができました。
面接で、職歴とは別にunity1week等の作品を短い動画にまとめてポートフォリオしてたら良い評価だったので、学生さんは色々たくさん作っておくといいかも知らんね。
ということでUnity案件も色々あったのですが、
色々考えた結果、外資系?なAI会社に決めました。
理由は新しいものに触れることができそう、エンジニアのレベルが高い、開発環境もよいので選びました。あとお金。
前職、基本はWindows一本だったので覚えることたくさん楽しい。
前職はメンバの学習コストを考えてSVN止まりだった。みんなでGit使えて嬉しいしGitHub Flow勉強できた。
短時間で終わるデイリースクラムや、Goodを含めたKPTを行ったサイクルがとてもやりやすい。デイリーで困ったことを言えるよい環境。
#unity1week リプレイ繋がるの対応しました。とりあえず遊べるのでうp。 pic.twitter.com/gcoVxmwQlv
— すし🦙 (@mamesiva64) 2019年3月17日
作ってみたかったやつ。Unityの物理演算は再現性がないので苦戦した。
仕事。殆どやってなかったJava。C#みたいなもんやろと思ってたら全然違った。
加えて初AndroidStudioだったが、超入門書を3時間で終わらせてなんとなく雰囲気わかった。Android開発未経験ならおすすめ。
その後は、iOSとかUnityやってたのもありはそんなに困ってない。
JNIも触ったけどC言語なので大丈夫。
Java理解力上げるためにEffective読んでおきたい(読みかけ)
iOSでの展示デモ作ったり説明したりした。
お仕事でビッグサイト行ける日が来るとは。
お仕事。7月にイベント展示あるらしいので、
弊社エンジンをUnityで動かす試みを始めた。ネイティブ呼び出し完全に理解した。
仕事。Jenkins経験あるので、GitLabのCI構築任された。
GitLabは、GitHubと違ってCIも管理できるのいいね。
GitLab RunnerをインストールしたPCにジョブを任せられるので複数のOS一斉に対応できます。Linux/Android/Windows/iOS対応してる。
PC上で別のOS環境構築できるの。VMと違って早い。
dockerfileにインストールする物とかを記載できるので別PCでも環境を再現できるので超便利。
前から使ってたけどCIでも活躍。
3つのイベントこなせたので満足な月。
今年のやる気のピーク。
ピクセルパーフェクト大好きで、作れたので満足。
#unity1week 進捗。指定の形にモコモコなれたらいいなと思っている。普段絵を描かないプログラマが描くとこうなる。 pic.twitter.com/9dC86idqiA
— すし🦙 (@mamesiva64) 2019年7月4日
もこもこ
弊社のライブラリを使ったゲームを京大で発表したよ。
子供向けイベント特化で色々考えてたので大成功したと思う。
ノーベル賞の偉い先生もプレイした。
DeepLearning協会 G検定合格。
AIな会社なので。幅広く知識増えたので受けてよかった。
アドカレブログ書いたよ。積んでたGaia使ってみた。
そのあとGaia Pro来てショック。
Gaia紹介20秒ダイジェスト動画 pic.twitter.com/3dmUr3LbvJ
— すし🦙 (@mamesiva64) 2019年8月26日
仕事。ここ前後から、数ヵ月やってる。
カスタマイズされたAndroidOSをビルドしたり、YoctoLinux 組み込んだり、なんやかんや。ドキュメントが英語アンド不親切で辛かった。
好きなピクセルパーフェクトとメトロイドヴァニアとアルパカ出来た。満足すぎる。
もう2weekになりそうですができました。https://t.co/UkOY4ue9ng#unity1week pic.twitter.com/6FGxEkm7GH
— すし🦙 (@mamesiva64) 2019年10月25日
仕事・育児忙しいのに1週間で出来るかたわけ案件。
色んなOS行き来するのでPythonを本格的に使い始める。
バージョン色々ありすぎてあれだけど便利。
色々教わった。USB-IO2でLED光らせたり。
Pythonブーム来たのでPythonで実装。
Unity+Androidネイティブ弊社ライブラリちょっと動かしたりなんやかんや。
LT楽しい。アマギフもらった。
OculusQuestぽちったので、刀とVRで書いた。
アマギフもらった。Unityさんありがとう。
色々覚えたし意外とUnity出来ました。
2018年Unity活動 の目標は、
良いのでは。
・Unityは、長編作れる気しないので短期間でとりあえずリリースしていきたい。過去の資産も出します。
・仕事。今年は手広くやったので、後はそれぞれの質をあげていきたい。
Linux系の資格やエンジニア歴長いので応用情報ぐらいは取っておきたい。
英語もいるよねー。
・何か副収入を得る仕組み。やりたい。
来年もUnityするのでよろしくお願いします。
alpacatech すし @mamesiva64
セールで日本刀を購入してテンションが上がったので、日本刀でいろいろやってみたいと思います。
※この記事は、Unity公式が開催している「Unityアセット冬のアドベントカレンダー 2019 Winter」の25日目の記事です。
最終的にはこのような感じです。
#VR 日本刀(勢州桑名住村正)で派手なエフェクト出しながらリンゴを切ってみたやつ。明日投稿のアドカレ用 #unity #occulus pic.twitter.com/67X3krzoe5
— すし🦙 (@mamesiva64) 2019年12月24日
Unity 2019.2.16f
Windows10 Pro
OculusRift CV1
今回の日本刀はこちらの国宝級含む10本セット。
日本のパブリッシャー様です。
クオリティがとても高く、普段見えない所も作りこまれています。
↓ポストエフェクトなしでこのクオリティ
太刀:
・三日月宗近(国宝)[tachi01]
・江雪左文字(国宝)[tachi02]
・獅子王[tachi00]
打刀/脇差:
・歌仙兼定[katana00]
・石田正宗[katana01]
・勢州桑名住村正[katana02]
・骨喰藤四郎[katana03]
短刀:
・謙信景光(国宝)[tantou00]
・物吉貞宗[tantou01]
大太刀:
・太郎太刀[ootachi00]
綺麗な刀をVRで振り回してみました
VR内でも美しい……
使用アセット(VRコントローラ/ 背景)
Unityは、設定をするだけで実行時にVR空間で動作します。
Project SettingsのXR Setingsを設定、今回はOculusなのでOculus追加。
コントローラを使うにはAsset使ったほうが簡単です。
アセットは、各コントローラのモデルが利用できます。
コントローラは、以下を参考にさせて頂きました。
OVRCameraRigを配置して、RightControllerAnchorの子に刀を設置するだけ
刀といえば軌跡エフェクト。
使用アセット
X-WeaponTrail を利用しました。
X-WeaponTrailを配置し、
EndPoint ... 剣先(青球)
StartPoint ... 剣元(赤球)
を指定するだけ。
X-WeaponTrailのパラメータで、更新フレーム数や色、シェーダーが変更できます。
軌跡以外のパーティクルなエフェクトもかっこいいです。
VRでエフェクトを置くとどうなるのか試してみました。
今の所ポストエフェクトがかかっていないのでブルームが足りずやや地味ですが、VRでは迫力あります。
使用アセット
斬撃系に特化したパーティクルエフェクト。
今回はとりあえずボタンを押すとprefab配置するようにしただけです。
移動ベクトルの変動を見て自動的に出したい。
刀なので物を斬りたい。リンゴを斬ってみました。
使用アセット
安価なメッシュカッターアセットです。
スクリプトが少し必要です。
使い方
注意:Unity 2018.3以降だと古いPostEffectがありエラーが出ました。
Assets\SimpleMeshCutter\Demo\PostProcessing\Editor\PropertyDrawers\MinDrawer.cs(6,34): error CS0104: 'MinAttribute' is an ambiguous reference between 'UnityEngine.PostProcessing.MinAttribute' and 'UnityEngine.MinAttribute'
回避策はありますが、切断するのにPostEffectは必要ないので削除して問題ありません。
手順
1. 切断する側にCutterをセット
2. 切断される側にCutterTargetをセット。切断面のマテリアルを設定できます。
3. CutterのCutメソッドを呼び出すと、Cutterの向きでCutterTargetを切断できます。
4. 切断後は、Cutter.OnCutted に追加されたメソッドが呼び出されます。
_cutter.OnCutted += OnCuttedHandler;
ちょっとわかりにくい?
Assets/SimpleMeshCutter/Demo/Scenes/MeshCutSample と CutterTest.cs が参考になります。
VRの刀では、
という実装方法を行いました。
切断後のオブジェクトにCutterTargetをAddComponentすると無限に切断できます。
以上です。
ゲームを作ろうと思っていたのですが時間が捻出できませんでした。
そのうち作りたいです。(OculusQuestが届かない><)
クオリティ高い刀をあつめました。脇差単体なら無料
スケールがちょっと小さいような気がするので、畳の幅を90cm前後として考て1.8倍ぐらいに拡大して使いました。
背景ゆがみエフェクトもできます。
今回利用していませんが、2D向けの斬りや打撃のエフェクトです。スプライトアニメよりも派手になります。
スクリプトが必要ですがローコストでメッシュ切断導入できました。
VRならローポリが優しいですね。
何か斬る関連のアセットがあったら追加していきます。
ありがとうございました。
RTAとかで表示するタイマーなテキストです。
※float は、1.0 で一秒とします。
Dateとかで出来そうだけどよくわからなかったのでキャストや割り算を駆使して実装
public static string getTimeString(float time)
{
int sec = (int)time;
int mm = sec / 60;
int ss = sec % 60;
int ms = (int)(time * 100.0f) % 100;
return mm.ToString("D2") + "'" + ss.ToString("D2") + "." + ms.ToString("D2");
}
サンプル
専用関数とかあったら教えてください
2021/10/19 タイマーの表現方法を変更
今回も参加しました。
1週間でゲーム作るジャムです。
お題は「さがす」です。
もう2weekになりそうですができました。https://t.co/UkOY4ue9ng#unity1week pic.twitter.com/6FGxEkm7GH
— すし🦙 (@mamesiva64) 2019年10月25日
メトロイドっぽいアクションです。1weekでは無謀でした。
いろいろあって2week近くになってしまいました。猛省。
今回、得た知見や言い訳書いていきます。
簡単にインストールできたのでメモ。
※2019/08/20 時点の情報です。
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
UnityHubは、Unityをインストールするツールです。複数バージョン管理出来ます。
https://forum.unity.com/threads/unity-hub-v2-0-0-release.677485/
で、Hub 2.0.0 for Linux を選択
※2020/04/07 更新
公式ページからダウンロードできるようになっていました。
https://unity3d.com/jp/get-unity/download
Unity Hub をダウンロード をクリック。
UnityHub.AppImageがダウンロードされます。
ダウンロードしたファイルのプロパティで実行権限をつける。
ダブルクリックで実行。
※ サイトに2.0.0 とありましたが、2.1.0(2019/08/20時点最新)がインストールされました。
UnityHubは起動すると、上のメニューに常駐します。
現時点で、安定(長期サポート対応)したバージョンが良いならLTS(LongTermSupport)な2018.4.X を選択、
最新が使いたいなら2019
Ubuntuは、Ubuntuソフトウェア(標準で付いているアプリストアみたいなもの)経由で
- GIMP(画像処理ソフト。PhotoShopみたいな事が出来る)
- ASEPRITE(ドット絵ツール。バージョンは古いが保存も出来る。最新版は有料ソフト)
などゲーム制作に使えるツールが無料で手にはいります。
これは、
Unity アセット真夏のアドベントカレンダー 2019 Summer! の27日目の記事です。
※2019/10/26 追記
本記事は Gaia の説明となります。 現在、Gaiaは、Gaia 2にバージョンアップされており、またPro版も出ています。2やProは、記事と互換性が無い可能性があります。ご了承ください。
Terrainベースで地形を簡単に作れ、草木や建物を自動で配置出来るアセットです。
空や海やポストエフェクトもいい感じにしてくれます。
2-1.PostProcessing V2がない場合は、ダイアログが出ます。
勝手にインストールしてくれました。
2-2. 木などのアセットも追加が必要です。
Import画面が出ます。
Gaia Dependenciesディレクトリに収まってます。
インポートします。
これでGaiaManagerが表示されるようになります。
ショートカットキー Ctrl+G(Windows) でも出ます。
情報が多いですが、上の部分は環境の設定(世界の広さや描画方法、ダミープレイヤー等)下は、生成の手順です。機能の説明を書くと以下の通り。
ライティング設定をLinearにします。
参考:リニアのワークフローとガンマのワークフロー - Unity マニュアル
Gaia/Gaia Enviromentが生成されます。
地形は、様々なスタンプを押して地形を編集します。
今回は、ランダム生成+手動スタンプ配置で島を追加をやってみます。
それっぽいのができました。
地形に追加処理をあてます。今回は使わず2へ進みました。
これを選択すると、
テクスチャ、草、木、岩や建物等を自動的に配置してくれる5種類のSpwanが追加されます。
今回は、デフォルト設定でそれぞれのSpawnを押していきます。
ポストエフェクト、空、海、風を作りプレイヤーを配置します。
押すだけで一気にリアルになりました。
before
after
実行すると指定したControllerで操作できます。
今回は、Third Person を選んでいたので三人称視点で歩けます。
自由だー!
水の中に入ると水の中専用のカメラ演出に切り替わったりします。
すごい。
ライティング焼きこみ。時間がかかるので今回は割愛します。
Gaia eXtension 拡張機能です。
サードパーティー製品は、ここにメニューが増えるかも(未確認)
デフォルト機能に、時刻に合わせた空や環境に切り替えができます。
夜になります。音も追加される模様。
今回は、以上です。
サードパーティーの海や空のアセットを紹介しようと思ったのですが、Gaia1.9が予想以上に色々できたので終わりとします。
砂漠関連のスタンプやオブジェクト。ここのメーカーは低価格でGaiaのスタンプを数種類販売しています。
今回追加しようと思っていた水アセット。水中時や水から出た時のエフェクトよかった。
ボリューメトリックライトで光が差し込んだリアルな表現アセット。
細かい設定等は、公式ドキュメントやQuickStartGuide(30分もある)が充実しているのでそれを見ていくといいと思います。
Gaia 1.9 Quick Start Guide - Procedural Terrain Generation For Unity 3D
Unity2018.4.5f1 Personal
Gaia(1.9.5-c1)