Translate

BTemplates.com

Powered by Blogger.

2018年5月31日木曜日

2018-05-31 到達点メモ


データを更新したので
メイン画面にそれを反映させたいという時は
ボタンを押したときに、そのアクティビティの
更新させたい部分を呼び出せばよい

例えば、MainActivityのあるテキストを更新させたい場合は

hogehogeButton.setOnClickListener {
hogehogeTextView.text = "更新"
}

これは比較的わかりやすい例で、
今回のケースで言えばMainActivityの並び替えのメソッドを
ダイアログでOKボタンを押したととかで呼び出したい場合とかのケースである
その場合は、2017-12-05、06 到達点メモの下の方に書いてある通りに
MainActivityのメソッドを外部で呼び出せるようにしてやる必要がある

>>*MainActivtyで、以下のように宣言しており、また、onCreateでinstace=thisを宣言している。
>>    companion object {
>>        var instace: MainActivity? = null
>>    }

この際にonCreateでinstace=thisをやり忘れないようにすること。
後は呼び出したい位置でいかのようにすればよい

if (MainActivity.instace != null) {
MainActivity.instace!!.hogehogeMethod()
}

画面更新 Androidとかで調べると
Canvasとかの話しか出ないので
此処にメモっておきます

今日はここまで

2018年5月30日水曜日

2018-05-26、29、30 到達点メモ


Unityでテクスチャーを両面に表示するようにしたい

カリングをオフにするためにはシェーダを変更する必要がある。

参考サイト
【Unityシェーダ】テクスチャの両面を描画する方法
Shader編 その1 UnityにおけるShaderとは?


どうも表示順番がおかしくなるみたいなので
ボックスを薄くして両面テクスチャー扱いにした。
両面表示するものの上に別のものを重ねて表示させるようなやり方は一般的でないのかも?


ワールドはある程度形になった。
publicの申請は、Discordの公式のチャンネルの方でやり方が書いてある
FPS90必要らしいが、見た感じどうも自分の環境下だと90に達していない。
そもそも自分の環境のPCはスペックが足りていないので
何処かのパブリックに入って自分一人の時のFPSはいくらかを見ればよい気がする


久しぶりにVoiceTimerの更新を行った。
以前からアプリ一覧のようなアイコン画像を取得するアプリで画像が表示されないことがあった。どうもVector画像を使っているため、正常に取得できないのが原因だったようだ。
そのため、画像の形式をWebPに変更したところ、正常に表示されるようになった。


凄く久しぶりに前から作っていたアプリの開発の再開をする

*Kotlinで開発しています

その際にFragmentManagerでダイアログの作成を行っていたのだが
他のActivtyでは(JavaだとgetFragmentManager())を呼び出せるのに
あるActivityだと呼び出せているActivityとimportや宣言を見比べても
違いが無いのに呼び出せなかったことがあった。

公式ドキュメントのフラグメントについて調べたところ、以下のような記述があった

==引用開始==
フラグメントは常にアクティビティに埋め込まれている必要があり、フラグメントのライフサイクルはホストのアクティビティのライフサイクルの影響を直接受けます。
==引用終わり==

つまり、onCreateなどのアクティビティのライフサイクルイベント以外で呼び出すことができないのではないかと思い、調べたところ呼び出しが失敗している処は
ライフサイクルイベント以外で呼び出そうとして失敗していることが分かった。
MainActivtyの中にクラスを作成しており、その中のメソッド内で呼び出そうとしていて
失敗していた

対処方法は、メソッドで呼び出しているので引数でfragmentManager
を渡してやればよい。


2018年5月29日火曜日

Android解像度ごとの画像サイズ一覧


*探し方が悪いせいかタブレットの方は探したけど見つからなかった
タブレットに関しては自分はこういう設定にしているという話
確か、タブレットは196で一回作ったが大きすぎるため結局取りやめた記憶がある

*アイコンはベクター画像でも基本は表示されるが
一部のアプリではアイコンが取得できないことがある為、
画像ファイルで作ったほうが良い。


参考サイト
Android,iOSアプリ用画像リソースとアイコンサイズのまとめ

解像度 画像サイズ
mdpi 48x48
hdpi 72x72
xdpi 96x96
xxdpi 144x144
600dpi 144x144
720dpi 144x144



2018年5月26日土曜日

2018-04-25,26,05-10,11 到達点メモ


ここ最近ずっとVRChat用のアバターを作っていました。
そこまで凝るつもりはなかったので、MagicaVoxelを使って作っていたのですが
ボーンの設定が上手く行かなくて凄く手間取りました。
原因が分からなかったので無駄にモデルを三回も作り直しましたが
手間暇かけただけあってそこそこ出来は満足しています。

参考サイト:VRchat 日本wiki アバター作成 自作編
参考サイト:3DCG出来ない!でもVRChatでオリジナルアバターを作りたい人向けチュートリアル

躓いたところは二点ありました。

一つは、Blenderでボーンを入れる際に自動でウェイトをしていれると
ボーンヒートウエイトが発生する時がありました。

私は面数を少なくするために片っ端から面を融解をしていたのですが
どうもボーンを動かす部分に対して面が広くなりすぎると
この現象が起こるみたいです。
ですので、そもそも結合しないか、面を選択してメッシュ→面→四角形を三角形に分割するみたいなことをすれば、これが発生しなくなります。
なお、三角形に分割した場合、三角形を四角形にするという手法があるので
それをすると面数を減らせます。

参考サイト:【Blender】ボーンヒートウエイトのエラーが出たときに試す5つの解決策
参考サイト:ボーンヒートウェイト:一つ以上のボーンで解決に失敗しました(failed to find solution for one or more bones)の原因

もう一つはいろいろやって上手くボーンを入れて実際に歩かせたら、
モデルが膝あたりでぐにゃり変な歩き方をすることでした。

自分は最初気が付かなかったのですがアップロードする際に以下のようなエラーが出ていていました
The angle between pelvis and thigh bones should be close to 180 degrees
骨盤と大腿骨の間の角度を180°に近づけなくてはいけないとのことですが
要は両脚の一番上にあるボールみたいなやつと、ボディの一番下にあるボールを
一直線上に並べてあげれば180°に限りなく近づくはずです

Blenderのポーズモードでボーンが回転出来ない場合の対処方法
https://twitter.com/homemasisi/status/633614935897968641

カメラのズームが僅かに移動しているが殆ど移動していないように見えるので拡大ができない
カーソルが原点の設定になっているので右クリックで位置を移動させると
ズームができるようになる

テクスチャーでtillingの設定で1を超えたの設定にしているのに
テクスチャーが伸びた感じになる場合は、使用しているテクスチャーの縦横が極端に崩れている可能性がある。使用するテクスチャーは正方形の画像に合わせたほうが良い

テクスチャーが300x300くらいだと、細かい所がつぶれた感じになるので
もっと大きくした方がよい

FaceRigの使い方を検討したので
簡単にメモをする

Live2D+FaceRigの設定の話
基本的な設定
http://mono-tone.blog.jp/archives/1070561267.html
パラメータの入れ替えの際に全部変換するコマンドがある
http://kamiyoshi.blogspot.jp/2017/09/live2d-cubism30.html


FaceRigの設定
http://lactate21.kokage.cc/facerig%E3%81%A7%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC%E3%82%92%E6%8B%A1%E5%A4%A7%E3%81%99%E3%82%8B/


FaceRigで自作背景を使いたい

https://facerig.com/docs/facerig-studio-docs/guides/set-a-custom-picture-background/

方法は二つ。一時的な方法ときちんと作る方法の二通りある。
きちんと作る場合は、下の方にやり方が書いてある。
FaceRigの中に専用のインポートのツールがありそれに従って作業を行えばよい
ただし、この際に一つ注意点があって読み込む画像ファイルのアドレスに(恐らくファイル名もマズイ)日本語が混じっていると正常にファイルが読み込まれない。

読み込む場合はアルファベットにするとよい



2018年4月21日土曜日

2018-04-21 到達点メモ


隣り合っている複数の面を結合させたい場合は、
結合させたい面を選択してDeleteキーを押すと
選択が出るので面を融解させるを選択すると
結合することができる


Blenderでブラシで選択する場合は、Cボタンを押す
マウスの左ボタンを押している間選択することができます
間違った選択場所を解除したい場合は、Shiftキーを押しながら選択すると解除できます
選択範囲を決定したい場合は、右クリックをします

参考サイト:【Blender】複数選択方法いろいろ
参考サイト:blenderモデリング基礎】造形するにあたって序盤で知っておきたかったコマンドなど


幅を増やしたい場合は、増やしたい部分の外側の辺を選択し
左のコマンドの中にある拡大縮小のボタンをおせばよい


複数のテクスチャーを適応させたいのであれば、
複数のマテリアルを作成する必要がある
下記の画像のどおりに必要な分だけマテリアルを作成し
マテリアルごとにテクスチャーを設定する。













また、テクスチャーを別けたい場合は
選択したい面を選択し、赤い線を囲んだ部分をクリックする必要がある

で、モデルを読み込むと以下のような感じになります。
現状のままだと、テクスチャーは読み込んでいない状態なので
それぞれに設定してやる必要があります。













その際に、赤線で囲った部分にAssetに取り込んだ画像を
ドラッグアンドドロップしてあげると適応させます



















という訳で色々やった結果が以下の通りです











色々やったのですが、冷静に考えると
地面が白だっと結構見にくかったするので
画像を加工するか、暗めの画像を探すかだなぁ・・・

あと、凄くシンプルになりそう。
最初だからこれでいいかという気がしないでも気がするが

今日はここまで

2018-04-19、20 到達点メモ


平面のリングを作りたい

立体のリングを作る→二分割処理をし、Z軸で分割
座標の設定は0,0,0で、法線はZ軸で1にする
フィルをONにし、内側と外側をクリアにする

参考サイト:【Blender】二等分する方法【二分割する、切断する】

一先ずこれで平面のリングができたのは確認できたが
これをUnityにそのまま読み込んだら、表示されなかった
モデルの時点でテクスチャーを張ったほうがいいのだろうか?

で、調べたところどうもFaceの表裏の設定がおかしいと起こるみたいです
設定したい面を選択して、編集モードに変更
その後に、メッシュ→ノーマル→(今回はこれで出来た)面の内側にそろえる
で作成することができた。
これで、何とか表示されるようにはなった。

参考サイト:BlenderモデルがUnityで透明?面が無くなっている場合の対応

このままだとUnityでモデルを読み込んでもオブジェクトを貫通するので
当たり判定を組み込む必要がある
モデルをAssetsに入れた後に、Hierarchyに取り込んだ後、
InspectorでAdd Componentをクリックする
その時に検索窓でMesh Colliderで検索すると出てくるので
それをクリックする。
これで、貫通しなくなる

参考サイト:Unity 3Dモデルに衝突判定をつける

で、このままだとリングが太いので
モデル自体をちょっと作り直す必要があった
トーラスを作る際に大半径と小半径を設定することができるので
小半径の値を小さくすると、幅が狭くなります。

左の小半径が0.2で、右の小半径が0.1です。



で、このままUnityに取り込んだモデルにテクスチャーを張っても
花の画像が表示されません。
*多分、一部分だけしか表示されていないため
結果的に表示されていないように見えるのだと思う

あと、知らなかったけど
BlenderってUndeの回数とかの設定ができるですね・・・

参考サイト:Blenderを使いやすくする設定がある

で、わかった事でもあるんですが
どうも作成したモデルにテクスチャーを張ることは難しいように見える
つまり、モデルを作成する段階でテクスチャーを張る必要がある。

具体的には赤線で囲んだ部分をクリックし、新規ボタンをクリックする



その後は赤線で囲んだ部分をクリックし、新規ボタンをクリックする


で、その後下に移動させると画像という項目が出てくるので
自分の場合は、予め画像を用意してあるので開くをクリックして画像を読み込みます



Shift+zでうまくいっていればテクスチャーが張り付いているのが確認できるはずです。

で、このままだと多分まずくて(*要検証)、Aボタンで全選択をした状態で
メッシュ→UV展開→展開の順にクリックします。

データを保存した後に、このブレンダーファイルとテクスチャーファイルを同時に選択し、Assetにドラッグアンドドロップをします

参考サイト:Blenderでテクスチャを作成してUnityに取り込むまでのメモ
参考サイト:Blender入門#26:テクスチャを使う(1)
参考サイト:BlenderからUnityへインポートする際テクスチャが反映されない件。

あとは、いつも通りにHierarchyに取り込んだ後、
その取り込んだ奴にテクスチャーをドラッグアンドドロップをすれば
適応されます。
なお、この際にマテリアルが自動生成されるため、Tillingをつかった設定が
できます。

で、出来たものが此方です。




この画像ではわかりにくいが、重なっている部分がある為
VRChat上で見ると非常に目障り。
なので、多分土台に関してはもしかすると
Blenderで作らないといけないかも??
後は敢えて段差を作って、階段で誤魔化すとか??
正直、そこの部分に力を入れたいわけではないので
適当に誤魔化していきたい

今日はここまで。

2018年4月18日水曜日

2018-4-17,18 到達点メモ


UnityでPlaneの色を変えたい場合は、
Materialをを追加する必要があるらしい

で、その際に色を設定する際に参考にした画面と今の画面が違っていた。
赤線で囲んだ部分をクリックすると色の変更ウィンドウが表示される



何故か今使っているバージョンだと、デフォルトの色の設定がHSVになっていた。



上記の画像の赤線で囲んだところをクリックすると
RGBに変更される


参考サイト:UnityでMaterialを追加して色を変更する方法【初心者向け】

写真の貼り付けは結構簡単にできた。
具体的にはAssetフォルダに直接写真ファイルをドロップダウンして
inspectorでTexture Type を Sprite (2D and UI) に変更し、
それをVRWorldとか入っている処にドロップダウンすれば
作成できる。

単純に表示するだけなら、大きさと位置を調整すればこれで行ける
大きさ的には0.1倍あたりでもいいかもしれない。
ただし、正直デジタル一眼が欲しい。
具体的にはもっと解像度が高い奴が欲しい

参考サイト:スプライト


地面に写真をつける場合はどうやるのかなと思っていたが
案外簡単だった。
Assetに入っていれた写真をそのままPlaneにドロップダウンすれば
Materialsが自動生成されて且つ張り付けされる。
ただ、写真を基にマテリアルを作った場合と比べると
黒色が薄いので基本はきちんと作ったほうが良いと思う。

Materialsを作り方はMaterialsを作成し、Shaderの設定を Legacy Shaders ー> Diffuse
を設定してNone(Textuer)に写真をドロップダウンすれば作成できる



参考サイト:Unity オブジェクトに画像を貼り付ける

また、以下の画像のような模様の形を作りたい場合は
マテリアルでTlingの数を増やしたい数だけ増やせばいい
Xが2、Yが2だと四つ画像が作られる




現状だとマテリアルごとにつくられるので
オブジェクトごとに変えたい場合はちょっとそれぞれ作る必要があるのめんどくさいかもしれない。もしくはもっといい方法があるのかもしれない
少なくともPlaneをいくつも作ってコピーするよりは生産的だろう

参考サイト:マテリアルを使おう (5/8)

で、上記を踏まえたうえで出来たものが以下のものとなります






ひとまず写真の展示室を作りたいので
その部分でやりたいことは、大体これらで出来そう。

ちょっと空の設定を花でやってみたが、物凄く残念な感じなった。
テクスチャーの段階で重ねたい数だけ合成して作らないとダメっぽい気がする
すくなくとも自分が探した限りではマテリアルでTlingの項目が見つからなかった

参考サイト:Unityでスカイボックスを設定する



今日はここまで