KITASENJU DESIGN BLOG

memo, html, javascript, unity

Entries from 2022-10-01 to 1 month

jsでkeydownイベント

js

document.addEventListener('keydown', (event) => { const keyName = event.key; if(keyName=="d"){ if(this.gui){ if(this.gui.domElement.style.display=="none"){ this.gui.domElement.style.display="block"; this.stats.domElement.style.display="blo…

threejsのcanvasをpngで保存

preserveDrawingBuffer : trueが必要 let dom = document.getElementById("webgl"); this.renderer = new THREE.WebGLRenderer({ canvas: dom,//document.querySelector('#webgl'), antialias: true, preserveDrawingBuffer : true }); document.addEventLis…

ImageManager

threejs で 画像ロードマネージャー import * as THREE from 'three'; import { ImageLoader } from 'three'; interface ImgData { name : string; url : string; tex : THREE.Texture; } export class ImageManager { public static LOGO1:string="LOGO1"; …

typescript singleton シングルトン

// インスタンスを保存するためのstatic変数 private static instance: Singleton; // constructorをprivateにすることで、外部からの新しいインスタンス作成を制限 private constructor() { // 初期化処理 } // インスタンスを取得するためのstaticメソッド…

簡易circle packing

import * as THREE from 'three'; import { Matrix4, Mesh, Texture, TextureLoader, Vector3 } from 'three'; import waveRender_vert from "../glsl/waveRender.vert"; import waveRender_frag from "../glsl/waveRender.frag"; import { CircleObj } from…

RenderToTexture

オフスクリーンレンダリング github.com typescript 昔は material.map = this.renderTarget; で行けたきがするがいつからから material.map = this.renderTarget.texture; になった模様 import * as THREE from 'three'; import { Camera, Matrix4, Object3…

強制キャスト

エラーが消えない時に使った。 let hoge:string = fuga as any;

パクリ応用・拡張方法

使いたいエフェクト・ギミック・アルゴリズム・話などを選ぶ 変化可能なパラメータを列挙する 素材を変える・形を変える・色を変える 質感を与える(フォトリアル)/質感を除去する(グラフィカル) 量を極端に増やす・減らす 2Dなら3Dに、3Dなら2Dに 秩序…

tsconfig

threejsでObject3Dなどを継承しようとしたらes6からじゃないとダメだった tsconfig { "compilerOptions": { "target": "es6",//"es5", "module": "es2015", "types":["node"], "lib": [ "es2019", "dom" ], "allowJs": true, // jsコンパイル用 "checkJs": t…

inspectorでボタン作ってクリップボードにコピー

ジェネラティブなものを作った時、再生を止めるとデータは消えてしまうが 情報を保持しておきたい時がある。それにはいろいろなやり方があるが最も簡単なのは データをクリップボードにコピーし、コードにペーストすることだろう。 Plane tgt = target as Pl…

イラレでアートボードのサイズ、オブジェクト合わせる

サイズを合わせたいオブジェクトを選択し、「オブジェクト」メニューの「アートボード」から「選択オブジェクトに合わせる」を選びます。

typescript threejs 雛形

import * as THREE from 'three'; import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' import Stats from 'three/examples/jsm/libs/stats.module' import { GUI } from 'lil-gui' import { TorusGeometry, MeshPhongMaterial, Dir…

HTMLのタグにデータを仕込む

同じjsを使いつつ、処理を出し分けたい時に使った。 注意!タグに書くのは小文字、大文字を書いても小文字になる。ただマイナスを入れるとjs側はマイナスのところは大文字になる(キャメルケースがケバブケースになる) I used it when I wanted to use the …

Webページをpause

// ウィンドウをフォーカスしたら指定した関数を実行 window.addEventListener('focus', ()=>{ console.log('onFocus'); }, false); // ウィンドウからフォーカスが外れたら指定した関数を実行 window.addEventListener('blur', ()=>{ console.log("onBlur")…

blink using gasp

brink with gasp. i dont know this way is correct. this.count=0; gsap.to(this,{ duration:0.3, onUpdate:()=>{ this.count++; if(this.count%2==0) this.hoge.style.opacity="0"; else this.hoge.style.opacity="100%"; }, onComplete:()=>{ this.hoge.s…

event js

DOMContentLoadedイベントとloadイベントの違い[タイミング]

domをセンターに

setCenter(dom:HTMLElement,zIndex:number){ dom.style.position = "absolute"; dom.style.zIndex= ""+zIndex; let tgW = dom.clientWidth; let tgH = dom.clientHeight; dom.style.left = (window.innerWidth/2-tgW/2)+"px"; dom.style.top = (window.inner…

typescript 継承

import * as THREE from 'three'; import { MeshBasicMaterial } from 'three'; import gsap from 'gsap'; export class Hoge extends THREE.Mesh{ mat: THREE.MeshBasicMaterial; count: number = 0; constructor(m:THREE.Mesh){ let mat = new MeshBasicMa…

gasp使い方

callbackとか忘れる this.count=0; gsap.to(this,{ count: 99, duration: 5, ease: "power3.inOut", onComplete:()=>{window.alert("unko")} }) gsap.delayedCall(5,()=>{ this.hoge(); })

unityEditorでは問題ないのにwebcamを使うアプリが落ちる時

usage descriptionに記述がないのが原因

"FOOTER"