あるみにメモ

技術的なメモをかくかもしれない

ニャンピュータの可能性

この記事はTCU-CTRL場外乱闘 Advent Calendar 2018 - Adventar12月12日分の記事です。

前回のPZOGの記事はこちら

pzog.hatenablog.com

皆川フェード、そういう名称があったんだなあ、漫画の演出についての話は新鮮で面白かったですね。

『戦争の英ゆう』は第二章に突入!!続きから目が離せない!!








「ニャンピュータ」を知っているかにゃ?(唐突)



f:id:aluminum_pepe:20181212204806j:plain
アイテムショップのニャンピュータ購入画面


ここであるみにの愛読する"にゃんこwiki"からニャンピュータの解説を引用してみるにゃ。


ネコ型CPUが戦闘をやってくれます ネコ型なので性能は期待できない キャラの生産がとても上手で、金さえあればキャラが出撃可能になった瞬間に生産してくれる 適当でも勝てるステージでお宝を狙う際に使って放置したりもできる +詳細

主な入手先:スペシャル(金曜),レジェンドストーリー,イベントステージほか

seesaawiki.jp

:アイテムショップから買える「ニャンピュータ」の項目より引用

はえーキャラの生産がとても上手だってにゃ。


え?にゃんこwikiって何かって?よく聞こえないですね



ニャンピュータとは、にゃんこ大戦争におけるお助けアイテムの一つで、その機能は「ユニットを生産、にゃんこ砲の発射、お財布レベル上げを勝手におこない、勝手に戦ってくれる」というものにゃ。

話を聞けば、よくある戦うのが面倒な人用の「オート戦闘機能」、というイメージを持つ人が多いかもしれないにゃ。

実際、勝てるとわかっている戦いや、操作が面倒な戦いをこいつに任せる使い方も十分有用にゃ。

なんだかんだ信用できないから、使わないままにしている人もいるかもしれないにゃ。

しかし!ニャンピュータはそれだけではないのにゃ。

むしろ、攻略の一端を担う重要な要素になり得るのにゃ。


今回はそんなことを話題にしたいと思いますにゃ。

※ライトな内容にしようと思ったのに若干専門的な記事になってしまったのにゃ。許してにゃ()



//ここまできてやばいと思った人はこっちでも見といてください(ダイマ

aluminum-pepe.hatenablog.com (なにも書けなかったらこれをADCにしてました)(できなかったほうが良かったかもしれない)





1.ニャンピュータの特徴

ニャンピュータがどんなものなのか、実際に見ていくにゃ。

1-1.圧倒的速度の生産操作

見てわかる通り、人の手を遥かに超えた操作速度で生産していることが分かるにゃ。

ある程度慣れたユーザーならば、生産可能状態になるのを見越して少し早くタップすることで無駄のない生産をすることができるにゃ。とはいっても3~4体が限界なのにゃ。

ページ移動や10体全てのユニットをそれぞれの生産可能なタイミングがばらける事を考えると、流石に真似できる芸当ではないにゃ。

ただ、あまりにも早すぎて出撃制限にかかってしまうかもしれないにゃ。

1-2.オンオフ機能

ニャンピュータは戦闘に導入しても、オンとオフが切り替えられるにゃ。

さっきの動画もお金をたんまり貯めてからオンにすることで生産大放出にゃ。

戦闘の途中からニャンピュータに任せたり、途中から手動操作に切り替えたりもできるのにゃ。

ちなみに、オンになっていても手動で生産もできたりするにゃ。

1-3.大型のユニットを生産するために貯金する・お財布レベルをあげる

大型ユニットがいる場合、生産を一端止めてお金を貯めて大型ユニットを生産しようと動くこともできるにゃ。

多少城が叩かれてもお構いなしにゃね。

それから、潤沢な資金のために基本的にお財布レベル上げを優先的に行うにゃ。

ちょっと攻め時でも、追い詰められるまでは小型キャラの生産もストップしてお金を優先にゃ。

小型ユニットを出し続けていつまでも決め手がないなんてことはないのにゃ!かしこいにゃ~


は?


1-4.ネコ並みの知能

  • バカ。はっきり言ってバカ。

  • あまりにもバカ。愛すべきバカ。

  • 「そこは壁だしてくれよぉ~」ってところで大型ユニットのために貯金しだす

  • 貯金しだしたら本当に何も出さないのでガラ空きになってしまう

  • ペース配分が出来ないのですぐにお金を使い切ってしまう

  • 意味不明のにゃんこ砲タイミング

  • お財布レベル上げはいいからはやくユニットをだして戦って

  • 生産しすぎて出撃限界

  • 愛すべき価値もないんじゃない?(辛辣)

参考資料

なんでこのタイミングで打ったの???


……とこれはニャンピュータの不満を爆発させるページではなかったはずにゃ。

しかし本家説明文にある通り、知能はネコ並みとのことなので戦略性なんてあったもんじゃないにゃ。

2.有効なニャンピュータの使い方

ニャンピュータのかしこくない一面もあって、使わないというひともいるかもしれないにゃ。

でも特性を活かして使用すれば、想像以上の働きができるようになるにゃ。

2-1.ニャンピュータを活かすためのポイント

ニャンピュータは賢くないにゃ。けどオンオフができるのにゃ。

オフにしている間にニャンピュータにとって最高のパフォーマンスを引き出せるように準備したり、

オン(ニャンピュータ)とオフ(手動)を場合によって使い分けて動作させたり、オン状態で手動操作を加えるといった方法もあるにゃ。

例えば、本格的な戦闘が始まる前にお財布レベルをあげておいたり、予め生産待ちをしてしまうようなユニットは生産しておいてしまうのも手にゃ。

特に、お財布レベルを最大にしておける「ネコボン」とは相性がいいにゃ。

思い通りの動きをしなくなっても、手動で生産も可能ということで、壁を出さなくなった時に自前でポチポチ押して間に合わせたりするのも使い方の一つなのにゃ。



2-2.肉壁戦法

にゃんこ大戦争には大事な鉄則があるにゃ。それが、

「相手の射程に入らずに殴り続けてたら必ず勝てる」

にゃ。

当たり前かもしれないけど大事なことにゃ。

だからこそ遠くから敵を攻撃できる大型ユニットは重宝されるし、それを守るために壁を出すのにゃ。


相手の勢いが強くて押し負ける?壁も対して育ってない?

そんなときは数の暴力で解決にゃ。

どんなに相手の攻撃が強くても、相手は射程に入った敵から攻撃するにゃ。もし倒して進む前に別のユニットが入りこんだら、進まずに攻撃するのにゃ。

この壁の生産を、キャラの生産が上手なニャンピュータに任せてみるのにゃ。

詳しくは実践編をみてみて欲しいのにゃ。

3.実践編

もうすこし詳しく説明していきたいけど、締め切りが迫っているので実践編行くにゃ。

3-1.肉壁戦法in西表島

開戦

有名な日本編第三章「西表島」に来たのにゃ。

ここで初登場する「ぶんぶん先生」は圧倒的敵攻撃力をもち、その突破力で自陣を崩壊させてくる手強いボスにゃ。

この敵を倒すことがある種のにゃんこ中級者への一歩といえるような、そんな敵にゃ。

ご覧の通り、圧倒的にゃ。

しかし、もう少し様子を見てみるにゃ。

拮抗

…あれだけ押していたぶんぶんの進行が止まったにゃ。

ここで編成を見てみようにゃ。


f:id:aluminum_pepe:20181212231308j:plain
舐めプ編成

メンバーは

  • ちびネコ
  • ちびタンクネコ
  • 記念ネコビルダー
  • ネコフィーバー
  • 歌謡にゃんこ
  • ちびネコドラゴン

の"六"匹にゃ。

なんと攻撃役キャラは「ちびネコドラゴン」のみで、あとは壁用キャラなのにゃ。

f:id:aluminum_pepe:20181212232118j:plain
がんばれちびネコドラゴン

こんな感じで攻撃してるにゃ。かわいいにゃ。

これでも壁キャラが前に出るので相手の攻撃を受けずに攻撃できているにゃ。

あとのキャラクターはイベント等で手に入るいわゆるただの「ネコ」と同等の能力のただの壁用生産キャラなのにゃ。

要は、本当に壁にしかならない(かつ一撃で役目を終えるようなキャラ)とたった一体の攻撃キャラだけの編成であるということなのにゃ。

しかもみんな弱そう

このマイナーなキャラたちは、通常プレイで手に入る「ネコ」や「ネコドラゴン」より性能が劣っているとだけ言っておくにゃ。

つまり、通常キャラを使えばこれ以上の性能で今回紹介している戦法を試せるのにゃ。


…とまあ、そんなキャラを使ってニャンピュータをオンにしているのが今の状況なのにゃ。

つまり一切操作をしていないにゃ。


拮抗から勝利

若干押されていたようにゃが、勝つことができたのにゃ。

この間、ニャンピュータによって自動操作していたので、トイレに行っていたのにゃ。

勝てて良かったのにゃ~

総括

f:id:aluminum_pepe:20181212233633j:plain
完全勝利にゃ~

というわけで、ボスもいなくなったので無事勝利したのにゃ。

こんだけ壁出しても他の取り巻きも攻撃しているので押されることには押されるにゃ。

攻撃キャラが圧倒的に少ないため押されているので、何かを足せばもっと楽になること間違いなしにゃ。


それでも、少なくとも初心者にはこの生産速度は実現できないにゃ。

この戦いは倍速にしているけど、実は18分くらい戦っているにゃ。

この時間中、ずっと理想的な生産ができるか…できないにゃね。

疲れるだろうし、生産の精度が落ちて敵に押し込まれて負けてしまうこともあり得るにゃ。

それだけ壁出しというのは大事なのにゃ。

3-1.肉壁戦法in狂乱タンク

今度は狂乱タンクに挑戦するにゃ。

編成は以下の通り。


f:id:aluminum_pepe:20181212235514j:plain
へなちょこ編成

ネコムートとネコドラゴン以外はただの壁にゃ。

攻撃役は通常キャラにゃね。

ニャンピュータに加えて、スニャイパーというアイテムを使って定期的に相手を押す必要はあるけど、こんなのでも勝てちゃうのにゃ。

壁をひたすら出しすことで、強いボスも怖くないどころか、トイレに行っている間に倒せてしまうにゃ。

ちなみに狂乱タンクを倒したところだけを切り取っているけれど、この戦いは倍速で8分かかってるにゃ。

4.まとめ

どうだったかにゃ?

壁さえいれば攻略可能なステージは多いのにゃ。

相手の進むスキを与えない生産、、、それこそニャンピュータに任せるのがいいにゃ。

遠距離ユニットは既に生産して置いて、適度に壁を用意して……

タイミングを見計らってニャンピュータのスイッチオン!!

あとは見てるだけにゃ、意外と見てるだけも楽しいにゃよ?

いかに無駄のない壁出しが効果的か見てればきっとわかるはずにゃ。


それにしても、つい熱くなって語りすぎてしまった気がするにゃ……

本音を言うとタイピングの練習がてら書いているので誰にも見られなくても構わないにゃ。

でも、誰かの役に立つことを祈ってるにゃ。きっとまたにゃんこについて語りたくなったら僕は現れるのにゃ。

/ 戦闘開始!! \



……おっと、出撃の時間にゃ肉壁ネコ、参る……!!




ぽふっ



(次回はフォルティア氏の名前で親しまれているフォルティア氏です、次期会長のなろう小説語り…目が離せないにゃ!!!)

画像の文章をテキストに起こせる便利な世の中

日記的でもいいから適当に更新したいだけ。

aluminum-pepe.hatenablog.com

この記事の途中で、Unityで出てきた英文メッセージを翻訳したいってなって、

f:id:aluminum_pepe:20180527034900p:plain

じゃあまあ、コピペして……



って出来ねえじゃねえか



ってなったので、直接Google翻訳に打とうかと思ったのだけど……





f:id:aluminum_pepe:20180527043735p:plain





あるみには弱小タイピングなので0文字目でやる気を失った。そして「画像から文字」で検索したら出てきました。いっぱい。便利な世の中になったもんだ。

参考にしたのはこ↑こ↓

www.marineroad.com

なんでも、Googleドライバにあげた画像を、Googleドキュメントを使ってテキスト化できるんだって。



マ?  やろう。



テキスト化したいのはこれ。

f:id:aluminum_pepe:20180527034900p:plain

コピペできねえぜ。

スクショなりして切り取ってきた画像を、Googleドライバのファイル内に貼り付け。

f:id:aluminum_pepe:20180527042349p:plain

そして「アプリで開く」から「Googleドキュメント」を選択。

f:id:aluminum_pepe:20180527042503p:plain

f:id:aluminum_pepe:20180527042756p:plain

まつ。





f:id:aluminum_pepe:20180527042844p:plain

うわ、ホントにできた。なんか見やすいし。



f:id:aluminum_pepe:20180527042927p:plain

ヘッダにある「ツール」を選択したら「翻訳」があって……



f:id:aluminum_pepe:20180527042940p:plain

あれ、なんも起きない。



f:id:aluminum_pepe:20180527042959p:plain

あー、日本語「に」翻訳ってことね()



f:id:aluminum_pepe:20180527043017p:plain

はい、できた。便利~~~~

まあ、なんか変な表現にはなってるけどね、「いいえ感謝を」。



f:id:aluminum_pepe:20180527043029p:plain

とはいえ、おこしたテキストをコピペして検索する方のgoogle翻訳にかけた方が精度は高いみたいね。

画像をテキストに起こせる……いい時代に生まれたものだ。ほかにもきっといい方法もあるかもね。

こうしてあるみにの脳は退化していくのであった。

おわり。











独り言で滑ってるのとても虚無。きょむきょむプリンになった。

Unityでキズナアイ(Vtuber)を動かしたい-1-

最近流行りのVirtualYouTuber、有名なのはキズナアイとかミライアカリとか?

動画もおもしろいし、何よりかわいい。

聞くところによると一部のVtuberはそのモデルを公開してるとか!是非とも自分の好き勝手あんなことやこんなことをだな

是非ともUnityなんかで動かしてみたい!!というあるみにの軌跡。

あと、用語だったり、厳密な表現をしないようにしてるつもり(カッコでやんわり言及してるかも)。

VtuberたちのMMDモデルが一般に公開されている

URLは↓↓



キズナアイ

f:id:aluminum_pepe:20180525020008p:plain

http://kizunaai.com/download-page/



ミライアカリ

f:id:aluminum_pepe:20180525020445p:plain

3d.nicovideo.jp



ねこます(みここ)

f:id:aluminum_pepe:20180525020323p:plain

nekomasu.wixsite.com



シロ

f:id:aluminum_pepe:20180525020515p:plain

3d.nicovideo.jp





ざっと四天王?あげてみました(輝夜月ちゃん公開されてまへん)



注意!!

もちろん彼女たちのデータを使わせてもらうからには……

しっかり利用規約を読んで、守ることが必要!!!

ライセンス表記や、再配布、商用利用等について書かれているので、うっかり訴えられないように気を付けないと……

ダウンロード先や、ダウンロードした先には利用規約について書かれたテキストがあるはずなので確認する。



MMDモデルをUnityにインポートする

むしろここが知らなきゃできないだけでこの後のことはただのUnityの話になる。

参考にしたサイトはここ↓↓

korechi.hatenablog.com

まず、MMDデータすなわちpmxファイル(とそれプラス色々)というものは、Unityで直接サポートされているわけではありません。

上記のねこますさんの「みここ」はunityで読み込める、fbx形式のデータも配布されていますが、それ以外はD&Dしても簡単にキズナアイちゃんは現れてくれないのです。

そのために、MMDデータをUnityにインポートし、操作可能にするためのツールが必要ということになります。

0.MM4DMecanimを使う

ということで使用するのが「MM4DMecanim」というツール(スクリプト等)です。

Noraさんという方が作成した、MMDデータをUnityで動作するfbxファイル(Mecanim)に変換してくれるもので、インポートしたMMDモデルの細かいコントロールができます。(めっちゃ助かった)

1.MM4DMecanimをダウンロード

ダウンロード先 http://stereoarts.jp/

f:id:aluminum_pepe:20180525024624p:plain

リンク先の2項目?ですかね。

あれっ、おととい更新されてるやんけ!!!(5/24執筆中)

2.UnityのプロジェクトにMM4DMecanimをインポートする

Plane(床)だけを設置した空虚な空間にキズナアイちゃんを降臨させたいと思います。



あ、





ちょっとまって







(c)Kizuna AI



ライセンス表記しておこうな。

f:id:aluminum_pepe:20180527025159p:plain

えっと……大丈夫なはず……モデル配布しないし……品位も多分……ないなくない。

よし

多分大丈夫なはず。





失礼しました、続けます。

まず、先ほどダウンロードしたファイルを見てみると、

f:id:aluminum_pepe:20180525191027p:plain

Unityなマークをした「MMD4Mecanim.unitypackage」というファイルがあるので、UnityのプロジェクトのAsset部分にD&Dでぶち込みましょう。

f:id:aluminum_pepe:20180525191656p:plain

初回はいくらか処理が必要かも

f:id:aluminum_pepe:20180525192554p:plain f:id:aluminum_pepe:20180525192647p:plain

上は「追加の前にちょっとしたアップグレードが必要だからバックアップを取るよ」ってので、下はUnityにインポートする内容選べるよって感じなのでとりあえずGo ahead と全部Importで。

(上について詳しいgoogle翻訳(たよるな)は最後に)

f:id:aluminum_pepe:20180525192835p:plain

Assets部分がこうなれば入ったことになるはず。

3.ダウンロードしてきたMMDファイルをUnity用に変換

あとからダウンロードしてきたMMDファイルも入れるだけ!

f:id:aluminum_pepe:20180525193419p:plain

入れたファイルに勝手に項目が追加されているので選択してみます。

f:id:aluminum_pepe:20180525193508p:plain

別ウィンドウに利用規約等が記載され、いくつかの項目にチェックを入れれば、変換が可能になります。

f:id:aluminum_pepe:20180525193840p:plain

データ配布なんてする気サラサラねぇ!!!processを押して変換開始!!

f:id:aluminum_pepe:20180527023710p:plain

黒い画面でなんかやってるので見守る。

f:id:aluminum_pepe:20180527024238p:plain

ちょっと待てば……





f:id:aluminum_pepe:20180527033150p:plain

なんか青いブロックつきのファイルが新しく生成されました!

下の方に「KizunaAI.fbx」とあるので、fbx化に成功!

4.いざアイちゃんをUnityの世界へ

これでUnityで使用できます、さっそく放り込んでいきたいのですが、fbx化したものを見てみましょう。

f:id:aluminum_pepe:20180527033606p:plain

よく見ると▽がありますが、クリックするとなんか色々出てきます。

いくつかの必要なデータをまとめて持っているということなので、一番上を持ってまとめてSceneへD&D!

f:id:aluminum_pepe:20180527034354p:plain

すると……





f:id:aluminum_pepe:20180527024256p:plain

!?

f:id:aluminum_pepe:20180527024324p:plain

おお!!!!

f:id:aluminum_pepe:20180527024338p:plain

かわいい!!!!!!!!!!!



……というわけでVtuberMMDモデル、キズナアイちゃんをUnityに召喚することができました!

まとめ

というわけで、MMDデータをUnityの世界に引っ張ってこれました。

適用出来ればこっちのもの、MMDモデルの動かし方についてはUnityの領分。

せっかくなので、簡単な動かし方と、表情の変え方くらいまでブログにしようと思っています。

というかそれしか書くことはない

インポートの仕方だけだとn番煎じ感あるしひとと通りにまとめてみようね。









説明飛ばしたとこ

f:id:aluminum_pepe:20180527034900p:plain

まあいろいろ適当なくせにちゃんとしておきたいということで。

API更新が必要 このプロジェクトには、廃止されたAPIを使用するスクリプトアセンブリが含まれています。 Go Aheadを選択すると、Unityは古いAPIを使用して見つかったAssetsフォルダ内のスクリプト/アセンブリを自動的にアップグレードします。続行する前にバックアップを作成する必要があります。 (「Assets / Run API Updater」メニューコマンドを使用して、いつでもAPIアップデータを手動で実行できます)。 バックアップを作成する。先に行く! 結構です 』

by Google翻訳

これくらいさらっと訳してくれ俺(まあ訳が間違ってたほうが恥ずかしいので自衛)

UnityでかつてあったAPIを使用してのスクリプトのため、その部分を最新で使えるようにしてくれるってことなんですかね、すげー(適当)

そういえばさっきの文章、直接文字をコピーできなかったんでGoogleドキュメントで画像から文字におこして翻訳したんですよ。便利な時代になりましたね。



今度はきっとキズナアイを動かすやつをかこう



続き。

aluminum-pepe.hatenablog.com



Unityでアイちゃんをとりあえずキャラ操作したいなら


aluminum-pepe.hatenablog.com

コチラ。(1の内容さえ分かればできる、たぶん。)



理想的なGitフローを目指したい -1-

サークル活動なんかでチームプロジェクトをする機会があり、そこでGitを活用したので、 Gitフローに関して会得したこととか分かったことのメモ。

はじめてのチームプロジェクト with Git

あるみに初のGitを活用してのチームプロジェクト。

まあ、燃えた。よく燃えました。

かつ、おそらく結構な迷惑をかけたかもしれないし、その割に貢献度すら薄いという感じだった気がするね……

自分が弱いのはもちろんのこと、他のチームメンバーについてもGitフローにはかなり苦しんでいた。

具体的に言えばコンクリフト地獄だった。

そんな反省を活かし、ほどなくしてGitフロールールが決められた。

失敗から学んだ「僕たちの考えた理想的なGitフロー」を自分の理解の及ぶ範囲でまとめておくという話。

お前は何も考えてねぇだろ

理想的なGitフロー

詳細な用語についても、自分の理解が怪しいのでいくつか整理してまとめたいなあ

あと、1人1ブランチということでfuture使ってないです(多分そういうことだよね?)

1.ブランチルール

プロジェクトにおけるブランチの使い分けをしっかりする。

「リモートリポジトリ」と「ローカルリポジトリ」でどんなブランチをつくって、どのように反映、統合(マージ)させるかが重要。

リモートリポジトリ

  • master :もともとある。製品として完成した/リリース可能なバージョンになったときにのみ、developブランチをマージしてくる。

  • develop : 開発ブランチ。masterの一つ下層。ローカルリポジトリの開発状況であるdevelopブランチがプッシュされる。

  • future :作業ブランチの親?ブランチ。特定の作業を複数人で行う場合、開発ブランチの一つ下層につくる?。今回は考えていない。

ローカルリポジトリ

  • develop :ローカルの開発ブランチ。各人はここから作業ブランチをはやし、作業ブランチでの作業内容が完了すればそれとマージする。マージの前にリモートリポジトリのdevelopと状態を同じにする。→コンクリフト最前線。

  • ○○(作業ブランチ) :作業ブランチ。名前は任意。基本的にここにしかコミットしない。futureブランチがあればその下にできる。

2.操作手順

2-1.リモートリポジトリのクローン

SourceTreeとか黒い画面とか何とかで、リモートリポジトリをクローンし、ローカルリポジトリを作成する。

2-2.作業

developをチェックアウトし、作業ブランチを作成。名前は、作業内容に合わせて任意につける。

あとは作業に入る。

2-3-1.コミット(ローカルリポジトリ

作業が進んだら自由にコミットしたりして作業ブランチを進めていく。

作業ブランチの作業内容が完了したら、ローカルのdevelopに反映(マージ)させるのだが…

2-3-2.マージ前の準備(ローカルリポジトリ

コミットするその前に、ローカルのdevelopに、リモートのdevelopをフェッチして、変更等があるか確認する。

変更があれば、developをチェックアウトして、既に進んでいるリモートのdevelopをプルする。

2-3-3.マージ(ローカルリポジトリ

リモートのdevelopとローカルのdevelopの内容が同じになったところで、今度こそ作業ブランチをマージ。

developをチェックアウトしたまま、作業ブランチを選択してマージする。

もし自分が変更した場所が、誰かによっても変更されていた場合、コンフリクトが生じるので、頑張って解決する。

2-4.プッシュ(リモートリポジトリ)

作業ブランチがマージされたローカルのdevelopをリモートのdevelopに反映(プッシュ)する。

※↑ではじめて、作業者は全体で共有されているプロジェクトに対して変更を加えたことになる。

(よほどのことがない限り、ここで問題は生じないはず、もし生じたとすれば、これまでの工程でミスをしたか……)

不幸な偶然が生じたということになると思う。)

2-5.作業完了

というわけで、作業状態が反映されたため、一巡終わり。また2-2「作業」に戻る。

2-6.バージョンアップ

開発ブランチdevelop(リモート)がどんどん進行し、完成/リリース出来る状態になったなら、

リモートのmasterに、同じくリモートのdevelopを反映(マージ)する。

masterをチェックアウトして、developを選択し、マージ。閉廷。

ちなみに

2-3-2と2-3-3間におけるローカルのdevelopをリモートのdevelopに合わせ、マージする工程は、

フェッチした時点でプルしてこなくても見えるようになった変更後のdevelop選択してマージすれば良かったりする。

このGitフローにおけるポイント

基本的に、作業は↑の2-2~2-5を繰り返して行くことになっていく。

このフローで大事なポイントをあげると、

  • ローカル内で共有の準備を全て終わらせておくこと
  • 個人の作業ブランチはリモートにあげたりしない
  • 初心者でも比較的統合の様子が分かりやすい?

かな?

共有の準備やコンクリフトの解決までローカルでやっておけるのはなかなか良い気がする、

なんというか、個人でやるべきことが明確化しているし、たぶんコンクリフトが減る。

個人ブランチをあげちゃうとかいう行動もこの過程ですることもないし、リモートリポジトリが下手に荒れることもない気がする。

まあ、このルールで決めておけば比較的初心者でも分かりやすい感じがする。

詳しい説明をしようと思ったけどうまく筆が進まないので一度切っていつか続きを書く。

別にそんなことしなくても?ってことだらけだったりして……?

あくまで初心者の自分は分かりやすかったしうまくいったのでとりあえずメモ。

スマホでモーションキャプチャーってマ?「RADiCAL Motion」に突撃した話

スマホモーションキャプチャーってマ?

昨日だったか、Twitterで回ってきた内容なんですけど↓

……マ?

だとしたらすごいじゃんやるっきゃないやろ!ということで早速インストール。

f:id:aluminum_pepe:20180515005757j:plain

おおー、なんかモーションキャプチャしてくれそうだわ()

なんかアカウントを作らされて、チュートリアルの動画をみたら、撮影可能になった。

f:id:aluminum_pepe:20180515172004j:plain

動画の兄貴シュールすぎんよー

撮影してアップロードする

友達をそそのかして撮影、すると撮影された動画をどうやらどこかにアップロードするとのこと。

それもそのはずこのアプリ、「動画ファイルの人間の動き」を「クラウドサービスを使って3Dモーションを作成する」というもの。

まあつまりはこのアプリで撮影する必要性は全くなくて、もともとある動画ファイルなんかも同様にアップロードすることで3Dモーションをつくってくれるのだ。

2Dの映像→3Dのアニメーションのデータ という変換サービスみたいなことかな?

ちなみにアップロードすると、

f:id:aluminum_pepe:20180515010146j:plain

アップロードしましたよ!なんてメールが来て、

f:id:aluminum_pepe:20180515010323j:plain

できたよ!なんてメールが来る。

さっそくみてみよう。

f:id:aluminum_pepe:20180515163435p:plain

プレビュー画面はこんな感じ。キャプチャに使った動画と、そこから作ったモーションの動きが並べて表示されている。

友人のプライバシーを守るため、キャプチャした動きの部分のみ載せる。

おお~、

若干のブレとかガタガタしてたりするけど結構できてる。

説明を読む限り、固定したカメラで撮影しろということだが、手に持って撮影していたり、

友人が恥ずかしがって少しひかえめな動きになったとか、

背景が良くない/服装が分かりにくい

とかとかがありそう、何度でも取り直せるので、品質も良くできそうだ。

モーションをダウンロードしよう

作成したモーション、FBXでダウンロードできるということで、

「これは勝ったな、最高。」

……なんて思っていたときが僕にもありました。

f:id:aluminum_pepe:20180515010348p:plain

まだダウンロード出来るようになってないんかーーーーい!!!!!!

しかも商用サービスになってからかーーーーーーーい

まあ、広告も全く入ってない割に無料なんてムシが良すぎるということか。

モーションキャプチャしたアニメーションをUnityなんかで使ってみたかったんだけど、

まあやるにしてもまだ先になりそう。続報を待て!!!!!

アップロードした映像は誰でも見られちゃうの?

最後に確認したのは、映像のプライバシー的なところはどうなん?と。

多分その心配はなさそうだった。

f:id:aluminum_pepe:20180515010408p:plain

ページのプライベート設定の様子。

アップロードした映像は、基本的にプライベートな状態になっていて、任意で公開するかしないかを決められるらしい。

……とかなんとか言っちゃって、他人のページにアクセスしてやるぜ~

と適当にURLをいじって実行。

f:id:aluminum_pepe:20180515010452p:plain

ちゃんと守られているっぽいです。ごめんなさい。

ということは映像あげても大丈夫そうってことかな、だれでも見れるとかだったら特定されない場所でマスクとかつけてやらないとだからなあ だれもお前なんて特定しようとしねえよ

まとめ

というわけで勇んで突撃した「RADiCAL Motion」でしたが、まだ開発途中、ということで、今後に期待して待つとしよう!!!!!!

f:id:aluminum_pepe:20180515010508p:plain



つづき。


aluminum-pepe.hatenablog.com

Unityでチームプロジェクトする時のおぼえがき

Unityチームプロジェクトをする時に気を付けること

サークルでUnityを使ったチームプロジェクトをしているので、

とりあえず取っ掛かりで調べたりしたこととかまとめておく。

参考にした(というかほぼこれの受け売り)サイト

thinkit.co.jp

コインプッシャーをモデルにゲームの作り方も扱ってたりしてるので良い。

この中から、自分が利用する、「Gitを用いたバージョン管理」と、その他留意点をまとめる。

環境

  • Unity
  • Git(Hub,lab)
  • SourceTree

Unityで設定すること

当然のことながら、Unityのバージョンを揃えることは重要(違うと無駄に変更が多くなるし、うまくいく保証もない)

加えて、Unity側で設定することがあるらしい。

Unityの編集画面から、メニューバーから Edit→ Project Settings → Editor を選択する。

Editor Settingsがinspectorで表示されるので、その項目を変更する。

f:id:aluminum_pepe:20180512030252p:plain

変更するのは、

  • Version Control : Hidden Meta Files → Visible Meta Files
  • Asset Serialization : Mixed → Force Text 

の二点。これでコンフリクトが発生しても解消できるようになるんだとか……

なんで?調べてません。

gitで設定すること

Unityプロジェクトはそれはそれは大量の管理データ等が存在するため、

何か一つ変えたり、追加したらファイルの追加/変更量もえぐいことになるので、しっかりプロジェクトに影響のない範囲で、 変更を無視するための、無視ファイルが必要になる。

手っ取り早いのは、githubからファイルを取ってきて使う。

「Unity gitignore」で検索したらGitHubのページが出てくるので、ファイルをダウンロードしてリポジトリに追加して使用する。

f:id:aluminum_pepe:20180511193353p:plain

チーム内で決めること

これが一番大事かもしれない。

複数人が同じシーンを編集しない

通常、プロジェクト内で複数人が同じファイルを編集したときは、gitにマージする時点で、コンクリフトが発生する。

普通は発生したコンクリフトは手動またはツールで解決するが、シーンのコンフリクトはそれはもうとんでもないらしいので、 マージも途轍もなく困難になるらしい(そうなってるところを見たことある)

そこで、ブランチのように、各自の作業/実験のためのシーンを各自作る。

また、本当のゲームで使うシーンも基本1人が編集するようにする。

逆に言えば、シーンを分けて編集することで、各自が自由実験でき、 かつどうやってもシーンによるコンクリフトが起きないので有効な手段であると思う。

作ったオブジェクトはとにかくプレハブ化する

各自がシーンで制作した(共有したい)ゲームオブジェクトは、インスタンス化して利用する等に関わらずプレハブ化するべきである。

プレハブ化しておけば、Assetsに登録されるのでどのシーンにも簡単に追加することが可能になる。

プレハブの変更も全てに反映されるので、各作業シーンや、ゲームのためのシーンで簡単に追加することが可能になる。

オブジェクトデータ等を置換したいとき

3Dデータや画像など、データを別のものにしたいときは、Unity外部のファイルを開いて同じ名前で置き換える。

こうすると、もとのオブジェクトが持っていた関係をそのまま引き継いでおけるので、面倒が少ない。

画像等のデータ班との連携という観点からのポイント。

まとめ

以上のことに気を付けて、れっつえんじょいチームぷろじぇくと!!!!

UnityプロジェクトをGitで管理したい

いい加減にためてるかいておきたいことを消費していきたいので、ちょっとずつ更新しておきたいん

UnityプロジェクトをGitで管理したい

Unityのチームプロジェクトを始めようとして、GitとSourceTreeを用いたリポジトリの作成うんぬんに毎回手間取ったりするので、備忘録的に残す。

多分個人用のプロジェクト管理にも有用だと思う

説明足らず&画像なしはいずれ解消する。

解釈違いがあるかも、間違ってたら通りすがりの人、教えて!!!!!

用意する環境

  • Unity
  • GItHub(GItlab)
  • SourceTree

順番とかは色々あるだろうけど自分のペースでやる

1. GitHubリポジトリを作成する

ReadMeを追加する設定にして、

Unity用のgitignoreファイルも追加する。

f:id:aluminum_pepe:20180511194302p:plain

GitHubにはもともとこの辺がリポジトリ作成の時に設定できるのでいいね

ここで作られたのはいわゆるリモートリポジトリ。

自分の作業を反映して保存したり、他の人が上げた変更を引っ張ってきたりする。

Githubを使ってない等で無視ファイルを追加するとき

自分もGitLabを使っているので、無視ファイルは検索してGItHubに上がってるものを手動で持ってくる。

「Unity gitignore」とかで検索すれば多分でる、GitHubに上がってる「Unity.gitignore」をダウンロードしておく。

f:id:aluminum_pepe:20180511193353p:plain

2. SourceTree設定

さっき作ったgitのページで、URLのようなものがコピーできるはずなので、それをコピーしておく。

f:id:aluminum_pepe:20180512002303p:plain

SourceTreeを立ち上げて、クローン画面を選択する。

クローン画面でURLをペーストしする。

f:id:aluminum_pepe:20180511193740p:plain

ファイル参照で新しいファイルをつくる。

f:id:aluminum_pepe:20180511193823p:plain

自分が作業した内容を直接保存しておくのはこの部分。ここへの変更の保存は「コミット」。

リモートリポジトリには「プッシュ」して反映、「プル」して変更をもらってくる。

3.(0.) プロジェクトファイル作成

リポジトリ作る前にファイルをもう作ってたりするかもしれないので(0.)とつけてみた。

Unityを起動し、NewProjectを選択して新たなProjectファイルを作成する。

作成する位置を、さっき2. でつくったファイルの中にする。

(もう作ってる場合は、プロジェクトファイルの位置を2. で作ったファイルの中に移動させる)

4. GItLabとかで無視ファイルをあとから追加するパターン

  1. の※の続き。

2.で作成し、プロジェクトファイルも置かれているファイルの中に、gitignoreファイルもおく。

さっきの工程で、Unity.gitignoreをダウンロードしてあるはずなので、それを持ってくる。

f:id:aluminum_pepe:20180511190724p:plain

その後、「Unity.gitignore」を、「.gitignore」にリネームする。

これがなかなか曲者で、普通にファイル選択画面では拡張子だけのリネームはさせてくれない。

そこで、コマンドプロンプトからリネーム作業をする。

ファイル選択画面から、上のテキストボックスに「cmd」と入力し、Enterを押せばコマンドプロンプトが開く。

既にディレクトリがリネームしたいファイルのある位置になっているはずなので

を実行すればリネームは完了する。

f:id:aluminum_pepe:20180511193516p:plain

黒い画面(コマンドプロンプトはこんな感じ)

f:id:aluminum_pepe:20180512002704p:plain

gitignoreファイルのリネームができた。

5. コミットする

新しいプロジェクトを保存し、プロジェクトファイルや、無視ファイルがはいったということを、ローカルリポジトリに保存させる。

SourceTreeに戻って、コミット画面を選択。

インデックスをすべて追加して、コミット!

コミットメッセージは「プロジェクトファイルの追加」とかがいいかな

あとはSourceTreeでプッシュ操作を行えば、リモートリポジトリにローカルリポジトリの変更が反映される。