【Unity】Animatorに登録されたAnimationPropertyを動的に再構成する

Root

┗Target

見たいな構成で、Targetを動かすAnimationをRootに貼り付けて

場面によってTargetを変えたい様なシチュエーションが発生した場合、

 

普通にInstantiateしてしまうとAnimatorの制御下に入らない。

 

この場合、Targetを作成してから

Animator.Rebind() を呼べば再構成される。

gitでPermission denied (publickey,gssapi-keyex,gssapi-with-mic).した場合の対処法

古いMacのOSをSierraに上げたら発生したので対処法をメモ

keyが登録されているかを確認

ssh-add -l

エラーっぽいのが返ってきたらそもそもAgentが起動していないので

eval `ssh-agent`

してから確認。


使用したいkeyが登録されていなければ

ssh-add ~/.ssh/(秘密鍵の名前)

で登録。

それでもダメならアクセス権の設定を確認する。

.sshディレクトリ       rwx------ (700)
authorization_key      rw------- (600)
秘密鍵                         rw------- (600)

で大丈夫なはず。

pythonからTwitterAPI触ってみた(主に画像取得

pythonの勉強にTwitterAPIを触ってみただけ。
python-twitterは使いません

アプリケーション登録

先人が居るのでそちらを参考に
website-planner.com

ここで取得した

  • ConsumerKey
  • ConstumerSecret
  • AccessToken
  • AccessTokenSecret

を使用するのでどこかにメモって置く

OAuth認証

pythonからOAuth認証は  requests_oauthlib ライブラリを使う
コマンドは下記

pip install requests_oauthlib


requests_oauthlib がインストール出来たら認証の処理を書くが、
毎回処理を書くのもしんどいので、
別のpythonファイルに切り出しておいてimportする方が楽

from requests_oauthlib import OAuth1Session
CONSUMER_KEY = "Consumer Key"
CONSUMER_SECRET = "Consumer Secret"
ACCESS_TOKEN = "Access Token"
ACCESS_TOKEN_SECRET = "Access Token Secret"

def CreateOAuthSession():
    return OAuth1Session(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN,ACCESS_TOKEN_SECRET)

ここで分けて置くと、別のpythonファイルに記述するとき

import ファイル名
twitter = ファイル名.CreateOAuthSession()

だけで完結するので便利

投稿してみる

import sys
import OAuth

#OAuth認証
twitter = OAuth.CreateOAuthSession()

#投稿用エンドポイント
url = "https://api.twitter.com/1.1/statuses/update.json"

#引数取得 [1] = 投稿したいメッセージ
args = sys.argv

#投稿
params = {"status":args[1]}
response = twitter.post(url,params=params)

#投稿成功判定
if response.status_code == 200:
    print("success")
else:
    print("error")

簡単。

ダイレクトメッセージも送ってみる

import sys
import OAuth

#OAuth認証
twitter = OAuth.CreateOAuthSession()

#ダイレクトメッセージエンドポイント
url = "https://api.twitter.com/1.1/direct_messages/new.json"

#引数取得 [1] = ユーザー名 [2] = メッセージ
args = sys.argv

#送信
params={"screen_name":args[1],"text":args[2]}
response = twitter.post(url,params=params)

#送信成功判定
if response.status_code == 200:
    print("success")
else:
    print("error")

URLとparamsが変わっただけ。
引数で@ユーザー名とメッセージを渡すだけで送信できる。

検索ワードから画像だけを取得する

これがやりたかった。
が、ほとんど参考にしただけなのでリンクを置く。

qiita.com

これだけではアレなので・・・

python3系で書く場合は1か所注意が必要

filename = '%s.jpg' % md5hex(urls[0]['media_url'])

この部分が文字コードエラーで通らないため、
UTF-8にencodeしてあげる必要があるので下記に治す。

#そもそも上でmedia_urls = urls[0]['media_url'] してた
filename = '%s.jpg' % md5hex(media_urls.encode("utf-8"))

これでキチンと動く。


RWBYのカップリング画像集めが捗りそう。

※同じAPIは15分に15回だけなので注意


参考:
qiita.com

qiita.com

syncer.jp

Minecraftサーバー起動・停止をLINEに通知してみた

LINENotify + pythonを使って

Minecraftのサーバーを起動・停止時にLINEに通知が飛ぶようにした。

Windowsです

 

pythonのインストール

以下のサイトへアクセス
https://www.python.org/

Downloads > Windows > Python3.x.xを選択してインストーラーのダウンロード

 

 環境変数を追加するため
「Add Python3.xx to PATH」にチェックを入れてインストール開始

 
コマンドプロンプト

python --version

を実行し、バージョンが表示されればインストール完了。

python requestsを使えるようにする

以下のサイトへアクセス
https://pypi.python.org/pypi/setuptools
zipをダウンロードして解凍。

解凍したフォルダでコマンドプロンプトを開き以下のコマンドを実行

easy_install pip
pip install requests

これで

import requests

が使用できるようになる。

LINENotifyの設定

以下のサイトへアクセス
https://notify-bot.line.me/ja/

  1. 自分のアカウントでログイン
  2. 右上のマイページからトークンを発行*1

実際の処理を記述する

ここまでの作業で準備は整ったので、pythonファイルを作成し、処理を記述していく

import os
import sys
import requests

#LINENotifyAPIのリクエストデータ準備
line_notify_token = "発行したアクセストークン"
line_notify_api = "https://notify-api.line.me/api/notify"
message = "サーバー起動メッセージ"

#サーバー起動時にLineに起動通知
payload = {"message": message}
headers = {"Authorization": "Bearer " + line_notify_token}
line_notify = requests.post(line_notify_api, data=payload, headers=headers)

#Minecraftのサーバー起動
command = "Minecraftのサーバーの起動コマンド (java から始まるあれ)"
os.system(command)

#サーバーが停止したら、Lineに停止通知
message = "サーバー停止メッセージ"
payload = {"message": message}
line_notify = requests.post(line_notify_api, data=payload,headers=headers)

これで起動・停止時にLINEに通知が飛ぶようになりました。

身内をグループに追加してブラッククラフター生活の開始です。


pythonを始めて書いたので変な記述があれば教えてくださいmm


参考サイト
qiita.com

*1:グループしか通知できないので注意