Translate

BTemplates.com

Powered by Blogger.

2018年6月27日水曜日

2018-06-27 到達点メモ


久しぶりにRailsTutorialをやる
いつの間にかRails5.1が出ていて
あまりの浦島太郎状態でワガハイ恐怖に震える

早速最初からやっていたらサーバーの立ち上げ方法が
分からなくて行き成り躓く

色々手法はあるみたいだが、Cloud9の右上のShareをクリック→Applicationをクリック→Openが一番手軽だったのでその手法を採用
参考サイト:cloud9 サーバーが起動しない(Rails チュートリアル)

なお、コマンドは rails s -b $IP -p $PORT と打たないとアクセスできません
$IPとか$PORTって何だろうと思って調べたら
サイトから以下の内容を抜粋
『Cloud9 では特殊な環境変数「$IP」と「$PORT」を使ってIPアドレスとポート番号を動的に割り当てます。コマンドラインでecho $IPまたはecho $PORTと入力すると値を確認できます』

つまり、$IPとか$PORTはCloud9の独自仕様なのでそれに基づいて設定する必要がある。

今度はなぜかroutesが更新されないので
何でかなーと思っていたら
cd で一度workspaceの外に移動し、そこでeveromentフォルダを作成しました。
そして、everomentフォルダの中でhello_appを作ったため
cloud9の左側に表示されているworkspaceタブに表示されている内容と違かった。
その上で、サーバーを立ち上げるコマンドはeveromentフォルダの中で
hello_appでおこなった事が原因です。

cloud9の良い所は ls -lとコマンドを打つと
ファイルの一覧が表示され、ファイルをクリックするとOpenという項目が表示される事

おかしいなぁ、前やった時はこんなに手間取らなかったはずなんだけど……
他にもやることがあるので今日はここまで

追記
1.3 最初のアプリケーションにて抜粋
【1.2.1で推奨しているCloud9 IDEを利用しない場合は、Railsプロジェクトで使うためのenvironmentディレクトリを作成しておいてください (リスト 1.2)。】

つまり、everomentフォルダを作成する必要なんてどこにもなかったという訳でした。

2018-06-02、19 到達点メモ


なんかいつの間にかまたエミュレータがすごく重くなってる…。
とりあえず、AndroidStudio更新しておこう

Genymotionを試してみたがピンポイントで
Android8.0だけ動かないんですけど・・・
7.0と7.1は動くのに・・・。
此処のサイトの一番下の方に、どうも8.0だけ動かないっぽいなことが書かれてる。
一応、メールを投げてみたがどうなるんだろうか?

参考サイト
Genymotionのインストール方法と使い方・設定方法まとめ。
GenymotionでUnable to start the virtual deviceと出て端末を起動できない場合の対処法

そして、手持ちのスマホだと8.0にできないっぽい


AVD(Android Emulator on Windows)がとても遅い件について

AVGにも仮想化の設定があったのでこれをオフにすると
まだ重いが一先ず動くようにはなった。
再起動するとよいらしい

Admobの広告の修正をしようと思って初期設定を忘れたので
探したらFireBaseとごっちゃになって混乱した

Admobの広告の設定方法はこちら
Android Studio スタートガイド



結局、振動とかの処理は実機じゃないと確認できないので
中古を買いました

通知の設定は以下のようにした
val mId = mConstRParams.notificationID

val mBuilder = Notification.Builder(applicationContext)
       .setSmallIcon(com.aaa.nononaga.voicetimerr.R.drawable.ic_notification_clock)
        .setVisibility(Notification.VISIBILITY_PUBLIC)
        .setAutoCancel(true)

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
    var channel: NotificationChannel =  NotificationChannel("channel_1",
                        getString(R.string.app_name),
                        NotificationManager.IMPORTANCE_LOW)
// ロック画面で通知を表示するかどうか
    channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
    mNotificationManager.createNotificationChannel(channel)

}
//中略
//これを宣言しないと現在の値に更新できない
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
    mBuilder.setChannelId("channel_1")
}

他で通知を作成する処理を入れる場合は以下の処理を入れる
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
       l_notification.setChannelId("channel_1")
}

チャンネルIDが一致すれば、通知内容を更新することができる

パッケージ名からアイコンを取得する場合は以下のサイトの内容をやる
パッケージ名からIconを取得


Fragmentでアイコンを渡したい場合は、パッケージ名を送って
Fragmentの方でパッケージを基にアイコンを取得したほうが良い
画像を送る方法はない様である

画像をセットする際にnullといわれる場合は
取得したデータがnullなのではなく
反映させる先がそもそも存在しない場合もあるので
オブジェクトがnullのとき取得しないという設定になっている場合は
xmlファイルを見て存在するIDか確認する必要がある




2018年6月1日金曜日

AndroidでほかのVector画像は読み込めるのに特定のVector画像だけ読み込んだら落ちる場合は、消し忘れのステルスデータが無いかを確認しないといけない


対処方法を先に書きますと

・Inkscapeで新たな画像を作成する場合は、基本は新規画像で作成すること
・諸事情で元々あるファイルを基に作成する場合は、画像に表示されていない使わないデータがないか、AndroidStudioで取り込んだxmlファイルと見比べて確認すること
・実際の対処方法の一つとしては、必要なファイルを選択してそれをコピーする。その後全部選択して削除。コピーしたファイルを張り付け。という手もある


昨日から、何故か作ったデータがAndroidで読み込むたび以下のようなエラーが発生しました

06-01 22:27:23.312 3334-3334/? E/AndroidRuntime: FATAL EXCEPTION: main
 Process: com.nononagainfo.www.admobtest, PID: 3334
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nononagainfo.www.admobtest/com.nononagainfo.www.admobtest.MainActivity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class ImageView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2713)

(以下略)

Binary XML file line #0: Binary XML file line #0:でグーグル検索をしても
app:srcCompatを使って読み込めとかぐらいしか出なくて途方に暮れていました。

で、画像ファイルのデータが一部おかしいのかと思い、ちょっとずつ消していったところ
途中で謎のデータがある事を発見しました

まず、使用した画像が以下の画像となります

次に、下が上記のVector画像をAndroidStudioでxmlファイルとして取り込んだ書式です



赤線で囲んでいる部分の左側との四角形の色と画像の色を見比べてみると分かると思うのですが、画像に存在しない色があります。これが、エラーを起こしていた原因です
このVector画像を作成した際に、ドラッグして存在するデータは全部削除したはずなのですが、どうも見えないデータがあるようでそれはCtrl+Aして全部選択して削除しないと消えませんでした。

そういう訳で恐らくVectorファイルが悪いんだろうが、対象方法が分からないという人がいれば参考にしてみて下さい。

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の中に専用のインポートのツールがありそれに従って作業を行えばよい
ただし、この際に一つ注意点があって読み込む画像ファイルのアドレスに(恐らくファイル名もマズイ)日本語が混じっていると正常にファイルが読み込まれない。

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