Mayaのインストールシリアル番号の件

大事なお知らせ

どうも最近のMayaはシリアル番号を入力しないようです。古いインストールガイドなどもシリアル番号を入力するように書いていますが、実際には起動時にAutodesk IDでログインするみたいです。その他公式ガイドの差異を掲載します。

 

変更点(1)

本学の学生は、アカウント作成中か作成後のタイミングで大学SSO(シングルサインオンシステム)が利用されるようです。この認証(IDとパスワードチェック)自体は大学のサーバでおこない、認証されたかどうか(学生かどうか)の情報がAutodeskに行きます。(一般的なSSO)

変更点(2)

Maya2018の場合、インストール後に起動すると以下のような画面が表示されます。「サイン イン」をクリックし、Autodesk IDでサインインしてください。

Maya2020の場合は以下のような画面が表示されます。

この変更により、シリアル番号は表示されないメールで送信されないといったことがおきています。ので、パスワード、IDは忘れないようにしましょう。

 

その他

「無料体験版」と「無料学生版」は最初のサインイン関係の挙動が違うようです。必ず「学生版」をダウンロードしてください。確認のポイント「残り日数」が表示されていれば「体験版」です。 コントロールパネル>プログラム>プログラムのアンインストール で一度Mayaを削除したあと、再度ダウンロードしてインストールしてください。

 

Mayaをもう一度ダウンロードする

https://www.autodesk.co.jp/education/home

へ行き、サインインする

サインイン後に、右上の地球のアイコンの左側のアイコンをクリック(名前の一部が表示されているアイコンなので、各自アイコンの文字は異なります)

プルダウンが表示されるので、製品とサービスをクリック

Mayaが表示されていると思うので、ダウンロードを表示をクリック

 

※こちらのアカウントの関係で学生アカウント作成を試せなかったのですが、いろいろ情報いただいた皆様ありがとうございました

WaypointAgent.cs のスクリプト

以下Gitよりダウンロードできます。

https://gist.github.com/tsubaki/7e22cec8527c534e4c7a

右上のRawを押すとソースがでてきますので、提示されたファイル名WaypointAgent.cs で保存

バックアップ


using UnityEngine;
using System.Collections;
using UnityStandardAssets.Utility;

[RequireComponent(typeof(WaypointProgressTracker))]
public class WaypointAgent : MonoBehaviour
{
    private WaypointProgressTracker tracker = null;

    [SerializeField, Range(0, 10)]
    protected float speed = 1;

    void Start()
    {
        tracker = GetComponent<WaypointProgressTracker>();
    }

    void Update()
    {
        Vector3 targetPosition = tracker.progressPoint.position + tracker.progressPoint.direction;
        transform.position = Vector3.MoveTowards( transform.position, targetPosition, speed * Time.deltaTime);
    }
}

解説動画

XAMPPアップデートトラブル

切羽詰まっている時に限って、トラブルが起きるのは「よくあること」なんですが、XAMPPのApacheが突然起動しなくなり、ついでなので、XAMPPをアップデートしようと。

で、htdocsは保存したのに、DB関係をバックアップ撮らずにインストール。

結局DBは全消えだったので、本番サーバからDBの構造だけを持ってきて、再構築し、なんとか起動できるまで8日間。

(それまでデバッグは本番サーバで実施)

で、XAMPP7.2にアプデし、かなりいろいろあって、なんとかユーザ登録まで可能になったのですが、

とある部分で「doesn’t have a default value」のエラー

いろいろ調べるとSQLが厳密モード(STRICT_TRANS_TABLES)になってるからだと。

で、XAMPPのMySQLのConfigureからmy.confをいじっても変化無し。

さらに検索すると、phpMyAdminでいじるらしい。

phpMyAdminのトップページ>その他>変数 のsql modeをいじるらしい。

STRICT_TRANS_TABLES

を削除。

うごきました。

参照 https://stackoverflow.com/questions/41077044/mysql-can-not-insert-because-no-default-value

 

XAMPP起動しない

XAMPP起動しないんで、調べたら

https://dezanari.com/mac-xampp-apache/#toc2

にあった

sudo apachectl stop

でうまくいった。いつの間にApacheが起動してたんだ?

 

そしてApache起動したけど、認証系が動かなくなった、、

 

pusherテスト

アプリ内メッセンジャーの制作で、リアルタイム性を出すためにいろいろ検討した。Node.jsはなんかめんどそう。WebSocketも面倒そう。

で、サンプルコードが理解できたpusherにする。

<テスト環境の構築>

MacのXAMPPでPHPのComposerがいるらしい

$ composer
-bash: composer: command not found

入ってないらしい。

https://blog.fire-sign.info/686/

を参考にインストする

$ curl -sS https://getcomposer.org/installer | php

インスト始まる

ll settings correct for using Composer
Downloading...

Composer (version 1.10.9) successfully installed to: /Users/ユーザ名/composer.phar

どうも composer.pahr を特定のディレクトリにいれなきゃらしい

$ sudo mv composer.phar /usr/local/bin/composer

移動できたのでバージョンチェック

$ composer --version
Composer version 1.10.9 2020-07-16 12:57:00

このバージョンが入りましたとさ

肝心のpusherを入れる

$ composer require pusher/pusher-php-server
Using version ^4.1 for pusher/pusher-php-server
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files

でインスト終わる。

うまくいかない

$ sudo nano .bash_profile

export PATH=$PATH:/Applications/XAMPP/bin

を追加(Mac)

source ~/.bash_profile

して実行

 

UnityでGoogle Cloud Natural Languageにアクセスする

APIキーが見えるのであくまでも実験用です※PHPだからクライアントには見えないか,,

流れ

Google Cloud Natural LanguageのAPIキーを取得

(がんばってとってください)

  1. 作成するとこんな画面がでてきます
  2. HTTPリファラかIPアドレス制限(サーバのIPアドレス)を使用します
  3. PHPファイルを作成します(test2.php)
<?php
if(isset($_POST["comment"])){
$comment = $_POST["comment"];
$url = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=(ここに自分のAPIキーを入れる)';
$document = array('type' =>'PLAIN_TEXT','language' =>'ja','content' =>$comment);
$postdata = array('encodingType' => 'UTF8', 'document' => $document);
$json_post = json_encode($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_post);
$result = curl_exec($ch);
curl_close($ch);
 
$result_array = json_decode($result,true);
    
echo $result_array[documentSentiment][score];
 
}
?>

サーバにアップロードし,そのページまでのURLを確認します

 

Unit側のC#ファイルを作成します

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//<--追加
//using System;

public class test2 : MonoBehaviour
{

    public Text ResultText_;
    public Text InputText_;
    public string ServerAddress;//サーバアドレスをエディタで入力する


    // Update is called once per frame
    void Update()
    {
        
    }

    void Start()
    {
        ResultText_.text = "";//画面表示を消す

    }

    //UIのボタンにアサインするスクリプト
    public void SendSignal_Button_Push()
    {
        StartCoroutine("post_data");//ボタン押されたらコルーチンを開始
    }



    private IEnumerator post_data()
    {
        WWWForm form = new WWWForm();
        form.AddField("comment", InputText_.text); //Input Field等から渡された変数をcommentのタグ付けして内容を送信
        WWW post = new WWW(ServerAddress, form);
        yield return post;//データの戻りを待つ
        Debug.Log(post.text);//コンソールに表示(この出力内容はPHPで変更可能)
        ResultText_.text = post.text;
    }




    }

Unityでの操作

  1. Unityで空のGameObjectを作成し,test2.csを貼り付けます
  2. PHPへのURLを入力します
  3. GameObject>UI>InputFiledGameObject>UI>Textを作成し,下図のように割り当てます
  4. GameObject>UI>Buttonを作成し,Inspectorからボタンを押せるようにします
  5. InputFieldはMuli Line Newlineの設定します
  6. Unityを再生し,文字を入力すると,感情が帰ってきます
  7. 「課題が終わらない」は-0.2でした

 

スクリプトのなんとなく対応みたいなの

複数あるチェックボックスを4個までに制限する

忙しいときは書けない、、、

複数あるチェックボックスを4つまで選択可能にし、4つ超えると警告を出し、最後に選択したチェックを外します。

 

<script>
function checkIDset(hitID){
	const idArr = [];
	const id_tag = document.getElementsByName("checkID");

	for (let i = 0; i < id_tag.length; i++){
		if(id_tag[i].checked){ //(color2[i].checked === true)と同じ
            
            if(idArr.length > 3){
                //警告出す
                alert('4人以上は選択できません');
                //最後に選択したIDのチェックを外す
                const rmvTag = document.getElementById(hitID);
                rmvTag.checked = false;
            }else{
                idArr.push(id_tag[i].id);
            }
		}
	}
    
 
}
</script>

 

 

PHP部分

<?php 
                            echo '<div class="input-group m-1 p-0"><div class="input-group-prepend"><div class="input-group-text p-1"><input type="checkbox" onchange="checkIDset('.$value['id'].')" name = "checkID" id="'. $value['id'] . '"></div></div><span class="form-control"><label for="'. $value['id'] . '"><span class="badge badge-primary">本人</span><span style="font-size:0.9rem;">' .  $value['name'] . 'さん</span></span></label></div>'; 
                            ?>

 

ポリゴンモデリング覚え書き1

ポリゴンモデリング覚え書き1

 

スナップにON

  • グリッドにスナップON

グリッドの間隔編集

  • ディスプレイ>グリッド>□
  • 軸=X,Z軸
  • グリッドライン5なら5ユニット単位に線がひかれる
  • サブディビジョン グリッドラインの再分割数 グリッド5,サブ5なら、1ユニット単位の補助線が、グリッド5,サブ10なら0.5ユニット単位の補助線となる

カメラベース選択

  • 選択ツールをダブルクリックして設定画面を出す

複数オブジェクトをスナップ移動する

  • ロケーターに入れる

コンポーネント間を維持してスナップ(デフォルト)

  • コンポーネント間を維持をOFFにすると揃える時に便利

押し出し

  • フェースを選択し、押し出す。分割数も変えることができる

エッジループの挿入

  • メッシュツール>エッジループの挿入

ベベル

  • エッジに対して面取り

ブーリアン

  • オブジェクトの足し算引き算

ベンド(曲げ)

  • オブジェクトを曲げる

ヒストリを削除

フリーズ(回転や移動後の値を基準値にする)

ポリゴンリダクション

  • ポリゴン数を減らす

結合(※マージはコンポーネントで使う)

複数のオブジェクトを選択し メッシュ>結合

ラティス

  • デフォーム>ラティス でラティス作成し、ラティスポイントの選択で変形

クイック選択

  • 作成>セット>クイック選択セット

 

複数のcanvasをレスポンシブに配置

小さいcanvasをレスポンシブに配置するテスト

こんなのできる.一色ずつcanvas作成

要bootstrap4,jQuery

(任意)

chroma.jsライブラリ読み込み

    <!--chroma.jsライブラリ読み込み-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.1.0/chroma.min.js"></script>

スタイルシート作成(レスポンシブ用)

    <style>
    .wrapper{
  width: 100%;
  height: 100%;
}</style>

 

canvasの外側のDIV作成 wrapperクラスのサイズ

<div id="scales" class="wrapper"></div>

 

JSでcanvasを複数作成

<script>
    
    //chroma.js使用
var scales = document.getElementById('scales');
var color_list = chroma.scale(['blue', 'crimson']);//blueからcrimsonへの色変更
var divide = 5;//色変更の分割数
var i;

    //forでcanvasを複数作成
for (i = 1; i <=divide; i++) {
    
    //canvasを次々作成
    var mem_canvas;
    mem_canvas = document.createElement("canvas");
    mem_canvas.setAttribute("id","scaleCanvas" + i);//ID変更し複数作成可能に
    
    //jQueryでこのDIVの縦横を取得
    var w = $('.wrapper').width();
    var h = $('.wrapper').height();//未使用
    mem_canvas.width = w/divide;//canvas幅はwrapper÷分割数にする
    mem_canvas.height = w/divide;//正方形にする
    //作成するcanvasのCSS設定
    mem_canvas.style.width = (100/divide) + '%';//canvasに独自のCSSを入れる
    mem_canvas.style.height = 'auto';//高さはwrapper比にはできないんでautoにする    
    //色を塗る
    var context = mem_canvas.getContext('2d');
    context.fillStyle = color_list(i/divide);//
    context.fillRect(0, 0, w/divide, w/divide);//正方形に塗りつぶす
    //HTMLに追加
    scales.appendChild(mem_canvas);//親のDIV scalesに子として追加
}
    
    </script>

 

参考

http://shiru-web.com/2017/04/20/01-24/

https://qiita.com/ShinyaOkazawa/items/9e662bf2121548f79d5f

Bootstrap4でcanvasをレスポンシブ

メモ

cssファイル読み込むか,headあたりに<style>で以下を入れる

canvas {
  background-color: blue; 
  width: 100%;
  height: auto;
}

 

canvasを作成

<canvas id="canvas" width="300" height="300">
</canvas>

 

JS実行(jquery)

$( document ).ready(function() {

    var c=document.getElementById("canvas");
    var ctx=c.getContext("2d");
    ctx.beginPath();
    ctx.arc(95,50,40,0,2*Math.PI);
    ctx.stroke();

});

 

 

参考

https://stackoverflow.com/questions/23973932/responsive-canvas-in-bootstrap-column/23974225