Translate

BTemplates.com

Powered by Blogger.

2018年9月1日土曜日

2018-08-19、24、29、30、31、09-01 到達点メモ


VRChatでテストアップロードした際に、
何故かテストアップロードしたWorldにログインできない場合

VRCWorldの設定でSpawns→Element 0の設定がNone(Transform)になっていないかを確認すること。
下の画像は修正後のものです



デフォルト設定を変えて間違って設定したオブジェクトを消した場合に起こります。
対策は、普通に設定しなおせば治ります。

万華鏡を以下の通りな感じにして作りました。
https://twitter.com/nononaga_fhoto/status/1031176640661925888

個人的な所感を述べますと
・カメラ三つ並べてやるのは暗くなるので難しい
・水面の反射がミラーの代わりでできないか試してみたがあんまり意味が無い
・Unityでの反射の設定は正直めんどくさい。
・反射そのものが画像を荒くするというかぼやける。

最終的な結論としては、
ミラーの代わり用のカメラは、映る範囲とカメラの向きや位置をうまく調整して
カメラで写している内容の代用ミラーを増やすという形にした方が簡単だし、
それなりにきれいに映ります。
なお、カメラは増やさなくて大丈夫です。


aviutlで動画出力のやり方

ファイル→プラグイン出力→拡張x264出力→ビデオ圧縮の順にクリック
そのあとビデオ圧縮で表示された画面を閉じて名前を付けて保存すれば
出力できるはず。

ツイッターの動画はmp4じゃないと受け付けない


npmコマンド

npm install -Dは、npm install --save-dev と同じ意味
なお、npm install -dもあるが、こちらは npm install --loglevel  info の意味になる

参考サイト:npm install -d と -D

npm install -Dの意味は、依存関係のパッケージをインストールしたくない時に使うらしい?開発時に利用する時に使うらしい

参考サイト:npmの--save, --save-dev, --save-optionalの違い
参考サイト:npm installの–saveと–save-devの違いと-g

--loglevel  info調べてみたが、これというのが見つからなかった。
少なくともnpm install -hで調べた限りでは
install独自のオプションではないようなので
何処でも使えるものと考えてよいかもしれない
logを出力する的な意味として受け取ったほうがいいのだろうか?

GUI画面でファイル名をクリックしてファイル変更から.eslintignoreを作成しようとしたがファイル名を入力してくださいと表示されて作成できなかった
対処方法としては、テキストファイルを開くソフトウェアで開き
ファイルの種類を全てのファイルに変更して名前を付けて保存で、
保存することができる。
EmEditerとメモ帳で確認できた


eslint --fix app.js
というコマンドを打って以下のようなエラーが出た場合
Cannot find module 'eslint-plugin-prettier'
eslint-plugin-prettierが入っていて上記のエラーがある場合は
.eslintrc.jsonのファイルがある確認するのを確認したほうが良い。
今回に限っていえばインストールしても上記のエラーが出ていて
上記の設定ファイルを入れたところ表示されなくなった。

その他メモ
SAKURAエディタは、拡張子なしで保存可能
EmEditerは拡張子なしでの保存は不可
GUIでは、拡張子なしでの保存は不可

sshで複数のユーザーを使い分ける

基本的な手順としては

1.公開キーの確認

gitbashを立ち上げる
cd ~/.ssh
ls
で公開キーがあるかを確認する
.pubがあるかとか


2.鍵を作成する
ssh-keygen -t rsa -f [file name] -C 'used_e_mail'
ここでのfile nameが
例えばhogehogeとしたら
hogehoge.pub hogehogeができたりする
名前は[運用するサイト名]_[ユーザー名]_rsa当たりが
分かりやすくて無難だと思う


3.公開カギの内容をコピー
clip < ~/.ssh/[file name].pub


4.公開鍵をGitHubに登録する

GithubのSSH Keysに登録する

手順的には右上のアイコンをクリックし
Settings → SSH and GPG keysの順にクリックするとたどり着ける


5.sshのコンフィグの設定をする

vim ~/.ssh/config

以下の内容を付け加えてください

Host hogehoge.github.com
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/hogehoge_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes


6.接続テストをする

ssh -T hogehoge.github.com

この際に以下のような文が出れば成功です
Hi hogehoge! You've successfully authenticated, but GitHub does not provide shell access.


参考サイト:GitHubのアカウントを複数SSH接続する
参考サイト:git SSH 複数 鍵で 運用


7.ユーザー別けしたいプロジェクトのgitのコンフィグの設定をする

*事前にgit initをしてある前提です。

cd [ユーザー別けしたいプロジェクトのrootディレクトリ]
git remote add origin git@github.com/username/hogehoge.git
git config user.name [使用したいユーザー名]
git config user.email [使用したいメールアドレス]

また、.git/configがあるのでそこで修正しても適応させることができます。

参考サイト:1台のPCで複数のGitHubアカウントを使う(SSHとhttps)


Ex.コミットだと正しいユーザー名なのに、プッシュでのアイコンが別のユーザーになってしまっている場合

結論から言うと.git/configに登録してあるメールアドレスが間違っています。
どうやらcommitはuser.nameで登録するようなのですが
pushだとuser.emailを基準に見るようです。
その為、commit logで調べた場合、正しいユーザー名で登録されますが
pushだとemailを基準とするため違うユーザー名が表示されます。
なんかおかしいなと思ったらEmailがあっているかどうかを確かめましょう。

gitで間違ったファイルを登録してしまった場合のやり方

git rm --cached ファイル名
--cachedをつけないとファイルそのものを消してしまうので
注意すること

上げたくないファイルを指定する場合
.gitignoreを作成するとよい。
何故か機能しないと思ったら
大抵スペルをよく間違えているので注意すること
例:.gitginore等

参考サイト:[Git] .gitignoreの仕様詳解

現在のaddした状況を見たい場合は
git status
をすればよい

参考サイト:git statusで変更されたファイルを確認する方法【初心者向け】



javascript

find…特定条件を満たす最初の値を返す
filter…特定条件を満たす全ての値を返す
上記二つは条件を満たした値を
変更したりすることは出来ないようである
飽くまで要素を見つけることのみ
forEach…配列の要素を受け取って何かしたい場合に使えるようである
map…要素がキーと値の二つセットになっている配列。個人的な印象を言えば
Rubyのハッシュが近い印象を受ける

JavaScriptで1から100までの配列のループを作る

for (const value of Array.from ({length: 100}, (v, k) => k + 1)) {
  console.log (value);
}

参考サイト: Array.from() の 例  by Mozilla Contributors is licensed under CC-BY-SA 2.5.

[for (i of Array(100).keys()) i]もあるらしいのだが
ちょっと自分にはうまく使えなかった

参考サイト:指定した範囲の整数配列の作り方 in JavaScript ES6

文字列を全部置換する方法

"a_v_ss_s_w".replace(/_/g, "-")
とやればよい

"a_v_ss_s_w".replace("_", "-")
だと、一つしか変わらない

参考サイト:【JavaScript】検索文字列を全置換する方法【replaceAll】


連想配列によるループの方法

let hash = {
  key0: 'aaa0',
  key1: 'aaa1',
  key2: 'aaa2',
};

for (let key in hash) {
  console.log ('key:' + key + ' value:' + hash[key]);
}

でいける。
なお、連想配列はイテレーターではないようで
この際にfor (let key of hash) とするとエラーになる

上記の書き方は間違えではないが
参考サイトのコメントの方により良い書き方があった。
こっちのほうが最新である事や
わかりやすいのでこっちのほうがよいだろう

let hash = {
  key0: 'aaa0',
  key1: 'aaa1',
  key2: 'aaa2',
};

for (let [key, value] of Object.entries (hash)) {
  console.log ('key:' + key + ' value:' + value);
}