MINERVA/Unreal 2024. 1. 12. 05:56
반응형

Release UEVR Initial Beta Release · praydog/UEVR · GitHub

 

Release UEVR Initial Beta Release · praydog/UEVR

It's been a long road, but we're finally here. This is the initial release of UEVR, a universal tool for enabling VR in UE4 and UE5 games. Just looking for the download? Here: https://github.com/pr...

github.com

개인적으로, 이거 진짜 혁신(?)을 뛰어넘는 게임체인저? 인데요.

 

기존의 언리얼 엔진 기반의 PC게임을 VR로 바로 만들어 준다.

이거 신기한게 VR로 개발되지 않은 게임도 VR로 바꿔줌.

 

대박이다. 전 철권을 해봤는데, 진짜 대박임.

 

PC게임을 VR로 하게 되다니....

 

 

 

 

 

반응형
posted by choiwonwoo
:
MINERVA/Python 2024. 1. 5. 00:32
반응형

개인적으로 문의를 주신 분이 있어 간단하게 설명을 드립니다.

 

1. PyQt5

https://choiwonwoo.tistory.com/entry/QT-%EB%9D%BC%EC%9D%B4%EC%84%A0%EC%8A%A4-%EC%A0%95%EC%B1%85

 

[QT] 라이선스 정책

며칠간 유니티 가격정책(https://www.asiatime.co.kr/article/20230918500098#_mobwcvr) [e와글] '가격 정책 논란'에 백기 든 유니티⋯ 개발자들은 여전히 '냉소' 유니티 테크놀러지 수수료 정책 변경 발표 유니티 "

choiwonwoo.tistory.com

결론적으로 PyQt5는 GPL과 LGPL이 혼재되어 있지만, 상업용 버젼을 개발하는데는 문제가 없습니다.

그렇지만, IOS기반의 App을 개발할때는 dynamic-linking이 지원되지 않기 때문에 문제가 될수 있습니다.

 

2. PyQt6 - GPL

라이선스 정책이 GPL이기 때문에 라이센스가 반드시(?)필요합니다.

만약 개발된 앱이 대박(?)을 치면 분명히 라이선스 문제가 발생함.

그래서, 상업용 버젼의 APP 개발을 생각한다면 라이선스를 구매해야 함.

 

3. PySide6 - LGPL

결론부터 설명을 한다면, 상업용 버젼의 APP을 개발을 생각한다면 이것을 사용하는게 맞음

dynamic-linking만 사용한다면 소스공개의 의무를 피하면서, 상업용 개발도 가능함.

 

 

4. 결론

PyQT를 사용하는 경우, PyQt5를 사용해서 개발을 진행하고 있으며, 신규 프로젝트인 경우는 PySide6를 사용하고 있음

그런데, 한가지 문제가 이전 개발 버젼(특히, 32Bit 지원...휴...)은 PySide6가 지원되지 않기 때문에, PyQt5를 사용해야함.

 

반응형
posted by choiwonwoo
:
MINERVA/C_CPP 2024. 1. 4. 13:06
반응형

시그널(Signal)과 슬롯(Slot)은 Qt에서 '이벤트'를 처리하고 객체 간 통신을 쉽게 구현할 수 있도록 도와줍니다.
처음 해당 내용을 공부할때는 WINDOW MFC에서 사용되는  BEGIN_MESSAGE_MAP( theClass, baseClass) 매크로가 생각되어 살짝 공포(?)감이 생각났습니다.
(https://learn.microsoft.com/ko-kr/cpp/mfc/reference/message-map-macros-mfc?view=msvc-170)

하지만, QT의 경우는 MFC 메시지 맵에 비해 매우 직관적이고, 사용방법에 일관성이 있어 매우 쉽게 익히고 사용을 하게 해주어 매우 만족스럽네요.

 

 

1. 시그널 (Signal):
시그널은 특정 이벤트가 발생했음을 나타내는 것입니다. 
예를 들어, 버튼이 클릭 또는 텍스트가 변경될 때와 같은 이벤트가 발생하면 시그널이 발생합니다.
Qt 객체, 특히 QWidget을 기반으로 하는 클래스들은 다양한 종류의 시그널을 가지고 있습니다.

2. 슬롯 (Slot):
슬롯은 시그널에 대한 반응으로 실행되는 함수나 메서드를 의미합니다.
슬롯은 사용자가 정의한 함수일 수도 있고, 이미 존재하는 함수일 수도 있습니다.
시그널과 슬롯은 1:N 또는 N:M 관계를 가질 수 있습니다. 
즉, 하나의 시그널은 여러 개의 슬롯에 연결될 수 있고, 여러 개의 시그널이 하나의 슬롯에 연결될 수도 있습니다.

3, 연결 (Connection):
시그널과 슬롯을 연결하여 시그널이 발생하면 연결된 슬롯이 실행됩니다. 
연결은 connect 메서드를 사용하여 설정됩니다.
시그널과 슬롯을 연결할 때, 시그널의 시그니처와 슬롯의 시그니처가 일치해야 합니다.

#include <QApplication>
#include <QPushButton>
#include <QObject>

class MyWidget : public QObject {
    Q_OBJECT

public slots:
    void onButtonClicked() {
        qDebug() << "버튼이 클릭되었습니다.";
    }
};

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    QPushButton button("클릭하세요!");
    MyWidget myWidget;

    // 버튼의 clicked() 시그널과 myWidget의 onButtonClicked() 슬롯을 연결합니다.
    QObject::connect(&button, SIGNAL(clicked()), &myWidget, SLOT(onButtonClicked()));

    button.show();
    return a.exec();

 

이 예제에서는 QPushButton의 clicked() 시그널과 MyWidget 클래스의 onButtonClicked() 슬롯을 연결하고 있습니다. 
버튼이 클릭되면 시그널이 발생하고, 연결된 슬롯이 실행되어 콘솔에 메시지를 출력합니다

반응형
posted by choiwonwoo
: